A full-stack School Admission Management System built with Next.js, NestJS, MongoDB, and JWT Authentication. The application digitizes the complete admission workflow from student application to final course assignment using role-based access control and Clean Architecture.
Frontend: https://admission-flow-lake.vercel.app
Backend API: https://admissionflow.onrender.com
GitHub Repository: https://github.com/Ismailkt313/admissionFlow
AdmissionFlow simplifies the school admission process by providing separate workflows for Parents and the Admission Team.
The application follows the complete admission lifecycle:
Parent Registration
↓
Login
↓
Student Application
↓
Registration Fee Payment
↓
Entrance Exam Slot Booking
↓
Exam Evaluation
↓
Course Assignment
↓
Admission Completed
- Register and Login
- JWT Authentication
- Create Student Application
- Edit Student Information before payment
- Mock Registration Fee Payment
- Student Information Lock after payment
- View Available Entrance Exam Slots
- Book Entrance Exam Slot
- View Admission Progress
- Track Application Status
- Secure Login
- Dashboard Overview
- Create Entrance Exam Slots
- Manage Exam Slot Capacity
- View Student Applications
- Enter Entrance Exam Marks
- Assign Final Course
- View Completed Admissions
- Parent Registration
- Parent Login
- Admission Team Login
- JWT Authentication
- BCrypt Password Hashing
- Role-Based Authorization
Parent can
- Create Student Application
- Edit before payment
- View Application
Status
Application Created
Mock payment implementation.
After successful payment
Application Created
↓
Registration Fee Paid
After payment
- Student information becomes read-only
- Parent can continue to Slot Booking
Admission Team
- Create Exam Slots
- Set Capacity
- Activate / Deactivate Slots
Parent
- View Available Slots
- Book Only One Slot
Status
Registration Fee Paid
↓
Slot Booked
Admission Team
- View Students
- Enter Marks (0–100)
Status
Slot Booked
↓
Exam Completed
Admission Team
- Assign Final Grade
- View Completed Admissions
Status
Exam Completed
↓
Admission Completed
- Next.js 15
- React
- TypeScript
- Tailwind CSS
- Axios
- NestJS
- TypeScript
- MongoDB
- Mongoose
- JWT
- Passport
- BCrypt
Backend follows Clean Architecture.
src
│
├── auth
│
├── students
│
├── exam-slots
│
├── domain
│
├── application
│
├── infrastructure
│
└── presentation
Layers
- Domain
- Application
- Infrastructure
- Presentation
Patterns
- Clean Architecture
- Repository Pattern
- Dependency Injection
- SOLID Principles
The project includes comprehensive validation on both frontend and backend.
Examples
- Email validation
- Password validation
- Name validation
- DOB validation
- Age validation (3–18)
- Grade validation
- Slot date validation
- Prevent booking past slots
- Prevent duplicate payment
- Prevent duplicate slot booking
- Prevent duplicate course assignment
- Score validation (0–100)
- Role authorization
- Ownership validation
- JWT Access Token
- BCrypt Password Hashing
- Role-Based Access Control
- Protected Routes
- JWT Guard
- Roles Guard
Roles
- Parent
- Admission Team
Authentication
POST /auth/register
POST /auth/login
GET /auth/profile
Students
POST /students
GET /students
PATCH /students/:id
PATCH /students/:id/pay-registration
PATCH /students/:id/book-slot
GET /students/applications
GET /students/completed-admissions
PATCH /students/:id/exam-score
PATCH /students/:id/assign-course
Exam Slots
POST /exam-slots
GET /exam-slots
GET /exam-slots/available
PATCH /exam-slots/:id
Clone the repository
git clone https://github.com/Ismailkt313/admissionFlow.gitMove into project
cd admissionFlowcd Backend
npm install
npm run start:devcd Frontend
npm install
npm run devBackend
PORT=
MONGODB_URI=
JWT_SECRET=
JWT_EXPIRATION=Frontend
NEXT_PUBLIC_API_URL=admissionFlow
Backend/
Frontend/
README.md
- Full Authentication System
- Complete Admission Workflow
- Clean Architecture
- Repository Pattern
- Role-Based Access Control
- Production-Level Validation
- Responsive Dashboard
- Professional UI
- Mobile Responsive
- REST API
- TypeScript
- MongoDB
- NestJS
- Next.js
- Refresh Token Authentication
- Email Notifications
- Real Payment Gateway Integration
- File Uploads
- Admin Analytics
- Audit Logs
- Docker Deployment
- CI/CD Pipeline
Muhammed Ismail KT
GitHub
https://github.com/Ismailkt313