A comprehensive full-stack platform designed to streamline college administration, timetable scheduling, and attendance tracking.
The Student Management System is a robust, scalable web application designed to digitize and manage the entire lifecycle of college administration. It features powerful role-based access control, dynamic timetable generation, and advanced attendance tracking (including geolocation verification).
- Core Framework: Express.js
- Database: PostgreSQL (Direct SQL queries using
pg) - Authentication: JSON Web Tokens (JWT), bcrypt for password hashing
- Data Validation: Joi
- Utilities: Nodemailer (Email/OTP), Haversine Distance (Geolocation for attendance)
- Framework: Next.js (App Router) & React 19
- Styling: Tailwind CSS v4, shadcn/ui, Radix UI primitives
- State Management: Zustand (Global State), TanStack React Query v5 (Data Fetching & Caching)
- Forms & Validation: React Hook Form + Zod
- Visuals: Recharts (Data visualization), Embla Carousel
- Distinct access levels and dashboards for Admin, College, Teacher, and Student.
- Secure authentication with token versioning and password reset capabilities.
- Hierarchical structure mapping: Colleges -> Departments -> Streams -> Courses -> Classes -> Subjects.
- Store geographical locations of colleges for proximity-based features.
- Version-controlled timetable system to handle semester-wise schedule changes.
- Conflict-free time slot allocations connecting classes, subjects, and teachers.
- Structured daily and weekly views.
- Session-based attendance tracking handled by teachers for specific periods.
- Support for multiple marking sources (Student self-marking, Teacher, Class Teacher).
- Geolocation validation using Haversine distance to ensure students are physically present within the college premises.
Student Management/
├── backend/ # Node.js + Express API
│ ├── controllers/ # Business logic for routes
│ ├── middleware/ # Auth and Validation middlewares
│ ├── postgresModel/ # Raw SQL schema definitions (DDL)
│ ├── routes/ # Express route definitions
│ ├── db/ # Database connection config
│ ├── service/ # External services (Email, etc.)
│ └── app.js # Entry point
└── frontend/ # Next.js Application
├── app/ # Next.js App Router (Auth, Dashboard)
├── components/ # Reusable UI components (shadcn/ui)
├── lib/ # Utility functions
└── package.json # Frontend dependencies
- Node.js (v18+)
- PostgreSQL
- Navigate to the
backenddirectory:cd backend - Install dependencies:
npm install
- Configure your environment variables. Create a
.envfile:PORT=8080 DATABASE_URL="postgresql://user:password@localhost:5432/student_management" JWT_SECRET="your_jwt_secret" # Add other required variables (e.g., Nodemailer credentials)
- Start the backend server:
npm run start # or for development: npx nodemon app.js
- Navigate to the
frontenddirectory:cd frontend - Install dependencies:
npm install
- Start the Next.js development server:
npm run dev
Built with ❤️