A comprehensive university management system built with Next.js, Prisma, and PostgreSQL. This application serves as a central hub for students, faculty, and administrators to manage academic activities and institutional operations.
- Multi-step application process for different student types:
- Undergraduate
- Graduate
- Transfer
- International
- Document upload and management
- Application status tracking
- Automated email notifications
- Role-based authentication (Student, Faculty, Admin)
- Secure login system with JWT
- User profile management
- Course enrollment and management
- Assignment submission and grading
- Schedule management
- Calendar system for events and deadlines
- User management dashboard
- System-wide announcements
- Performance monitoring
- Activity tracking
- Report generation system
-
Frontend:
- Next.js 14 with App Router
- TailwindCSS for styling
- Framer Motion for animations
- React Hook Form for form management
-
Backend:
- Next.js API Routes
- Prisma ORM
- PostgreSQL (Neon)
- JWT Authentication
-
Development:
- TypeScript
- ESLint
- Prettier
src/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ │ ├── applications/ # Application management
│ │ ├── auth/ # Authentication
│ │ ├── courses/ # Course management
│ │ └── users/ # User management
│ ├── apply/ # Application pages
│ │ ├── undergraduate/
│ │ ├── graduate/
│ │ ├── transfer/
│ │ └── international/
│ └── portal/ # Protected routes
│ ├── admin/ # Admin dashboard
│ ├── faculty/ # Faculty portal
│ └── student/ # Student portal
├── components/ # Reusable components
│ ├── forms/ # Form components
│ ├── dashboard/ # Dashboard components
│ └── ui/ # UI components
├── lib/ # Utility functions
│ ├── prisma.ts # Prisma client
│ └── auth.ts # Authentication utilities
└── types/ # TypeScript types
prisma/
├── schema.prisma # Database schema
├── migrations/ # Database migrations
└── seed.mjs # Seed script
- Clone the repository:
git clone https://github.com/your-username/greenfield-university.git
cd greenfield-university
- Install dependencies:
npm install
- Set up environment variables:
Create a
.env
file in the root directory:
DATABASE_URL="your-postgresql-connection-string"
JWT_SECRET="your-jwt-secret"
- Set up the database:
npx prisma generate
npx prisma db push
npm run seed
- Run the development server:
npm run dev
The system uses JWT-based authentication with HTTP-only cookies. Different user roles (ADMIN, FACULTY, STUDENT) have access to different parts of the application.
Admin:
- Email: admin@school.edu
- Password: password123
Faculty:
- Email: faculty@school.edu
- Password: password123
Student:
- Email: student@school.edu
- Password: password123
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request