Skip to content

Latest commit

Β 

History

340 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

College ERP

πŸŽ“ College ERP System

Enterprise Resource Planning System for Modern Academic Institutions


React Node.js Express.js MySQL TailwindCSS Vite Sequelize License: ISC


A complete, production-ready full-stack ERP platform that digitizes and automates every academic and administrative operation of a college β€” from student enrollment to result generation, fee payments to hall tickets β€” all under a secure, role-based system.


🏫 Sardar Vallabhbhai Global University


πŸ“‘ Table of Contents


🌟 What is this Project?

The College ERP System is a full-stack web application built to replace manual, paper-based college management with a unified digital platform. Every operation β€” from marking attendance to printing hall tickets β€” happens inside one system.

It is built as a monorepo with two independent, well-structured applications:

Application Technology Purpose
βš™οΈ Backend Node.js + Express + MySQL REST API, business logic, database, security
πŸ–₯️ Frontend React 19 + Vite + Tailwind CSS Role-based UI, dashboards, PDF generation

The two applications communicate entirely through REST APIs, with JWT authentication stored in HTTP-only cookies for maximum security.


✨ System Highlights


  πŸ” Secure               πŸ“Š Complete              πŸš€ Fast
  ──────────────          ─────────────────        ─────────────────
  JWT + HTTP-only         32 database tables       React 19 + Vite 7
  cookies (XSS-safe)      across 15+ modules       with lazy loading

  🎨 Responsive           πŸ“„ PDF Ready             🚩 Flexible
  ──────────────          ─────────────────        ─────────────────
  Tailwind + dark mode    Hall tickets &            Admin-controlled
  on every screen         fee receipts as PDF       feature flags

  • 3 Roles β€” Admin, Faculty, Student β€” each with fully isolated dashboards and routes
  • 15+ Academic Modules β€” attendance, timetable, exams, results, backlogs, fee, feedback, and more
  • 32 Database Tables β€” fully relational schema with Sequelize ORM migrations
  • PDF Generation β€” hall tickets (client-side) and fee receipts (server-side)
  • Auto-Generation Services β€” enrollment IDs, faculty IDs, class timetables, exam results
  • Security-First β€” bcrypt, helmet, rate limiting, Zod validation, CORS, parameterized queries
  • Dark / Light Mode β€” full theme support across every screen
  • Feature Flags β€” Admin toggles features on/off at runtime without redeployment

πŸ— Full System Architecture

╔════════════════════════════════════════════════════════════════╗
β•‘                    COLLEGE ERP SYSTEM                          β•‘
╠════════════════════════════════════════════════════════════════╣
β•‘                                                                β•‘
β•‘   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β•‘
β•‘   β”‚               FRONTEND  (React 19 + Vite)              β”‚   β•‘
β•‘   β”‚                                                        β”‚   β•‘
β•‘   β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚   β•‘
β•‘   β”‚  β”‚    ADMIN    β”‚  β”‚   FACULTY   β”‚  β”‚    STUDENT      β”‚ β”‚   β•‘
β•‘   β”‚  β”‚   PANEL     β”‚  β”‚    PANEL    β”‚  β”‚     PANEL       β”‚ β”‚   β•‘
β•‘   β”‚  β”‚  30+ pages  β”‚  β”‚  10+ pages  β”‚  β”‚   9+ pages      β”‚ β”‚   β•‘
β•‘   β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚   β•‘
β•‘   β”‚                                                        β”‚   β•‘
β•‘   β”‚   Protected Routes β”‚ Context API β”‚ Axios β”‚ jsPDF       β”‚   β•‘
β•‘   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β•‘
β•‘                               β”‚  HTTPS + HTTP-only JWT Cooki   β•‘
β•‘   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β•‘
β•‘   β”‚               BACKEND  (Node.js + Express.js)           β”‚  β•‘
β•‘   β”‚                                                         β”‚  β•‘
β•‘   β”‚   Helmet β”‚ CORS β”‚ Rate Limiter β”‚ Morgan β”‚ Compression   β”‚  β•‘
β•‘   β”‚                                                         β”‚  β•‘
β•‘   β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚  β•‘
β•‘   β”‚   β”‚  Auth MW β†’ Role MW β†’ Feature Flag MW β†’ Zod      β”‚   β”‚  β•‘
β•‘   β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚  β•‘
β•‘   β”‚                            β”‚                            β”‚  β•‘
β•‘   β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚  β•‘
β•‘   β”‚   β”‚  Routes    β”‚β†’ β”‚  Controllers    β”‚β†’ β”‚  Services  β”‚   β”‚  β•‘
β•‘   β”‚   β”‚ (28 files) β”‚  β”‚  (27 files)     β”‚  β”‚ (7 utils)  β”‚   β”‚  β•‘
β•‘   β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚  β•‘
β•‘   β”‚                                                         β”‚  β•‘
β•‘   β”‚   Multer (uploads) β”‚ PDFKit (receipts) β”‚ Nodemailer     β”‚  β•‘
β•‘   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β•‘
β•‘                               β”‚  Sequelize ORM                 β•‘
β•‘   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β•‘
β•‘   β”‚                   MySQL DATABASE                       β”‚   β•‘
β•‘   β”‚                  32 Tables / Models                    β”‚   β•‘
β•‘   β”‚   Identity β”‚ Academic β”‚ Exams β”‚ Results β”‚ Fee β”‚ Misc   β”‚   β•‘
β•‘   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β•‘
β•‘                                                                β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

πŸ‘₯ Who Uses This System?

πŸ›‘οΈ Admin πŸ‘¨β€πŸ« Faculty πŸŽ“ Student
The super-user of the entire system Subject-level academic manager Read-access to personal academic data
Manages students, faculty, classes, courses, subjects Takes & updates attendance daily Views attendance, timetable, results
Creates fee structures & collects payments Creates topic-wise session plans Downloads hall tickets as PDF
Schedules exams & publishes results Enters exam marks per component Prints fee receipts as PDF
Sends broadcast or targeted notifications Uploads learning resources for students Browses learning materials by subject
Evaluates student feedback on faculty Views their own student feedback Submits ratings and comments for faculty
Toggles feature flags at runtime Views date-wise and class-wise reports Tracks backlog subjects & attempts
Generates class & student reports Changes login credentials securely Manages personal profile & photo

πŸ“¦ Module Overview

# Module Admin Faculty Student
1 πŸ” Authentication & Password Reset βœ… βœ… βœ…
2 πŸ‘€ Student Management βœ… β€” β€”
3 πŸ‘¨β€πŸ« Faculty Management βœ… β€” β€”
4 🏫 Class & Course Management βœ… β€” β€”
5 πŸ“š Subject & Components Management βœ… β€” β€”
6 πŸ“… Timetable (Manual + Auto-Generate) βœ… πŸ‘οΈ View πŸ‘οΈ View
7 βœ… Attendance (Mark / Update / Report) πŸ“Š Reports βœ… Mark πŸ‘οΈ Own
8 πŸ“ Session Planning β€” βœ… πŸ‘οΈ View
9 πŸŽ“ Exam Scheduling & Timetable βœ… β€” β€”
10 πŸ“Š Marks Entry & Result Generation βœ… Generate βœ… Enter πŸ‘οΈ View
11 πŸ† Rankings & Backlogs βœ… β€” πŸ‘οΈ View
12 🎟️ Hall Ticket (PDF) β€” β€” βœ…
13 πŸ’° Fee Structure & Payment βœ… β€” β€”
14 🧾 Fee Receipt (PDF) βœ… β€” βœ…
15 πŸ”” Notifications βœ… Send πŸ‘οΈ View πŸ‘οΈ View
16 πŸŽ‰ Events βœ… Manage πŸ‘οΈ View πŸ‘οΈ View
17 πŸ’¬ Faculty Feedback πŸ“Š Evaluate πŸ‘οΈ View βœ… Submit
18 πŸ“‚ Learning Materials β€” βœ… Upload πŸ‘οΈ View
19 πŸ“ˆ Reports & Analytics βœ… πŸ“Š Class β€”
20 🚩 Feature Flags βœ… Toggle β€” β€”

πŸ“ Repository Structure

college_ERP_system/
β”‚
β”œβ”€β”€ πŸ“‚ frontend/                  # React 19 + Vite frontend application
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ api/                  # Axios instance
β”‚   β”‚   β”œβ”€β”€ context/              # ThemeContext, SidebarContext, ToastContext, ConfirmContext
β”‚   β”‚   β”œβ”€β”€ routes/               # ProtectedRoute component
β”‚   β”‚   β”œβ”€β”€ Components/           # Shared layout (Navbar, Sidebar, Panels)
β”‚   β”‚   β”œβ”€β”€ ui/                   # Button, Card, Template UI primitives
β”‚   β”‚   β”œβ”€β”€ Pages/                # 70+ screens (Admin / Faculty / Student / Public)
β”‚   β”‚   └── utils/                # auth.js, pdfGenerator.js
β”‚   β”œβ”€β”€ tailwind.config.js
β”‚   β”œβ”€β”€ vite.config.js
β”‚   └── πŸ“„ README.md              # ← Detailed Frontend Documentation
β”‚
β”œβ”€β”€ πŸ“‚ backend/                   # Node.js + Express REST API
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ config/               # DB connection + Sequelize CLI config
β”‚   β”‚   β”œβ”€β”€ middleware/           # Auth, RateLimiter, FeatureFlag, Upload, Logger
β”‚   β”‚   β”œβ”€β”€ model/                # 32 Sequelize models + associations
β”‚   β”‚   β”œβ”€β”€ migrations/           # 32 versioned DB migration files
β”‚   β”‚   β”œβ”€β”€ controllers/          # 27 controller files (business logic)
β”‚   β”‚   β”œβ”€β”€ routes/               # 28 route files (one per module)
β”‚   β”‚   └── services/             # 7 reusable utility services
β”‚   β”œβ”€β”€ uploads/                  # Stored uploaded files
β”‚   β”œβ”€β”€ app.js                    # Server entry point
β”‚   └── πŸ“„ README.md              # ← Detailed Backend Documentation
β”‚
β”œβ”€β”€ πŸ“„ README.md                  # ← You are here (Project Overview)
└── .gitignore

⚑ Quick Start

Prerequisites: Node.js v18+, MySQL 8.0+, npm v9+, Git

Step 1 β€” Clone the Repository

git clone https://github.com/your-username/college_ERP_system.git
cd college_ERP_system

Step 2 β€” Start the Backend

cd backend
npm install
cp .env.example .env          # Fill in your DB, JWT, and Email credentials
mysql -u root -p -e "CREATE DATABASE college_erp_db;"
npx sequelize-cli db:migrate
npx nodemon app.js            # Starts at http://localhost:5000

Step 3 β€” Start the Frontend

cd ../frontend
npm install
cp .env.example .env          # Set VITE_API_BASE_URL=http://localhost:5000/api
npm run dev                   # Starts at http://localhost:5173

Step 4 β€” Open the App

🌐  http://localhost:5173

βœ… Ensure both servers are running. The frontend will call the backend at port 5000.


πŸ“– Detailed Documentation

For in-depth technical documentation of each part of the system, refer to the dedicated READMEs inside each folder:

Documentation Location Covers
πŸ“„ Backend README backend/README.md Node.js API, all 27 controllers, 32 models, 28 routes, middleware stack, services layer, DB commands, env variables, API reference table
πŸ“„ Frontend README frontend/README.md React 19 pages (70+), routing architecture, context system, component/UI library, PDF generation, Axios setup, all screen references, Tailwind theming

πŸ‘¨β€πŸ’» Meet the Team

This project was built as part of academic coursework at Sardar Vallabhbhai Global University.


πŸ‘€ Name Role
πŸ§‘β€πŸ’» Aayush Bhavsar Frontend Developer
πŸ§‘β€πŸ’» Yug Panchal Frontend Developer
πŸ§‘β€πŸ’» Dhwanit Khatri Backend Developer
πŸ§‘β€πŸ’» Jiken Patel Backend Developer


πŸ“„ License

This project is licensed under the ISC License and was developed for educational and academic purposes at Sardar Vallabhbhai Global University.


Built with ❀️ by the SVGU Team

⭐ Found this useful? Give it a star on GitHub!

About

Full-stack College ERP system for managing students, faculty, attendance, results, and timetables with role-based authentication using Node.js, Express, and MySQL.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Used by

Contributors

Languages