Orange Field University - Student Portal
A Next.js web application for managing student courses and academic progress.
Features:
- User authentication with email
- Course enrollment system
- Academic progress tracking
- GPA and credits updates
- Responsive design for all devices
Tech Stack:
- Next.js 14
- React 18
- TypeScript
- Material-UI
- Prisma
- NextAuth
- Postgres
- Emotion (for styling)
Getting Started:
-
Install dependencies: npm install run "node /script/seed.js" to seed the database
-
Create a .env file in the root directory view .env.example for the variables Note: the database url is already set up for the azure postgres database
-
Run development server: npm run dev
-
Build for production: npm run build npm start
Project Structure: /src /app /(pages) # Route pages /components # Shared components /contexts # Context providers /styles # CSS modules /shared-theme # MUI theme setup /utils # Utility functions /types # TypeScript types
Key Features:
-
Course Management:
- View available courses
- Enroll in courses
- Track enrolled courses
- Automatic course removal from available list after enrollment
-
Academic Progress:
- View current GPA
- Track completed credits
- Persistent data storage
-
User Experience:
- Toast notifications
- Responsive design
- Clean, modern UI
- Easy navigation
-
Admin Features:
- View all courses
- View all users
- View all enrollments
- View all departments
- View all instructors
-
Faculity Features:( to be added)
- View all courses
- View all users
- View all enrollments
- View all departments
- View all instructors
Getting Started:
- Clone the repository
- Install dependencies
- Run development server
- Create a .env file
- Run the application
- Create and login with your email and password
- Enroll in courses(using your profile page in the navbar)
- View your academic progress(using your profile page in the navbar)
- View your courses(using your profile page in the navbar)
- View your enrollments(using your profile page in the navbar)
- Create an naturally and make it an admin account(inside of your database)
Contributing:
- Fork the repository
- Create a feature branch
- Commit changes
- Push to the branch
- Open a pull request
License: MIT License