Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

AdmissionFlow

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.

Live Demo

Frontend: https://admission-flow-lake.vercel.app

Backend API: https://admissionflow.onrender.com

GitHub Repository: https://github.com/Ismailkt313/admissionFlow


Overview

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

Features

Parent

  • 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

Admission Team

  • 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

Workflow

Module 1 – Authentication

  • Parent Registration
  • Parent Login
  • Admission Team Login
  • JWT Authentication
  • BCrypt Password Hashing
  • Role-Based Authorization

Module 2 – Student Registration

Parent can

  • Create Student Application
  • Edit before payment
  • View Application

Status

Application Created

Module 3 – Registration Fee

Mock payment implementation.

After successful payment

Application Created
        ↓
Registration Fee Paid

After payment

  • Student information becomes read-only
  • Parent can continue to Slot Booking

Module 4 – Entrance Exam 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

Module 5 – Exam Evaluation

Admission Team

  • View Students
  • Enter Marks (0–100)

Status

Slot Booked
        ↓
Exam Completed

Module 6 – Course Assignment

Admission Team

  • Assign Final Grade
  • View Completed Admissions

Status

Exam Completed
        ↓
Admission Completed

Tech Stack

Frontend

  • Next.js 15
  • React
  • TypeScript
  • Tailwind CSS
  • Axios

Backend

  • NestJS
  • TypeScript
  • MongoDB
  • Mongoose
  • JWT
  • Passport
  • BCrypt

Architecture

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

Validation

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

Authentication

  • JWT Access Token
  • BCrypt Password Hashing
  • Role-Based Access Control
  • Protected Routes
  • JWT Guard
  • Roles Guard

Roles

  • Parent
  • Admission Team

API Modules

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

Local Installation

Clone the repository

git clone https://github.com/Ismailkt313/admissionFlow.git

Move into project

cd admissionFlow

Backend

cd Backend

npm install

npm run start:dev

Frontend

cd Frontend

npm install

npm run dev

Environment Variables

Backend

PORT=

MONGODB_URI=

JWT_SECRET=

JWT_EXPIRATION=

Frontend

NEXT_PUBLIC_API_URL=

Project Structure

admissionFlow

Backend/

Frontend/

README.md

Highlights

  • 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

Future Improvements

  • Refresh Token Authentication
  • Email Notifications
  • Real Payment Gateway Integration
  • File Uploads
  • Admin Analytics
  • Audit Logs
  • Docker Deployment
  • CI/CD Pipeline

Author

Muhammed Ismail KT

GitHub

https://github.com/Ismailkt313

LinkedIn

https://linkedin.com/in/ismmail-kt-7117a3321

About

Full-stack school admission management system with Next.js, NestJS, MongoDB, JWT authentication, and Clean Architecture.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages