Welcome to the EduPro School Management System, an elite, high-fidelity enterprise-grade full-stack portal built with modern web technologies, sleek aesthetics, and dynamic database connectivity.
- 🌐 Live Demo (Firebase Hosting): https://edupro-portal-ankit.web.app
- 💻 GitHub Repository: https://github.com/Sg-2003/school-management-system
- Frontend Client: React.js (Vite), Lucide Icons, Recharts, Framer Motion, Axios.
- Backend Server: Node.js, Express, JSON Web Tokens (JWT), MySQL.
- Database Engine: MySQL / MariaDB (via XAMPP, Laragon, or standalone service).
- Hosting: Firebase Hosting (Frontend).
- Styling: Premium custom Vanilla CSS with modern UI layouts, glassmorphism, and responsive structures.
- 🔒 Secure Authentication & Role-Based Access Control (RBAC)
- Dynamic portals with custom dashboards for Super Admins, Teachers, Students, and Parents.
- 📋 Student & Teacher Directories
- Active, inactive, and suspended profiles with high-fidelity local assets and uniform student headshots.
- 📊 Unified Academic & Financial Dashboards
- Live fee ledger logging, collection analytics via interactive charts, and predictive AI financial modelers.
- 📅 Logistics Modules
- Hostel Allotments: Monitor room number block occupancies.
- Transportation Registry: Route logging and active bus drivers.
- Library & E-Library: Book catalog status updates (Available vs Issued).
- 🔔 Real-Time Announcements
- Direct database-driven Notice Board for broadcasting school-wide events and academic updates.
School Management System/
├── school-management-frontend/ # React Client Portal
│ ├── src/
│ │ ├── components/ # Reusable UI widgets (Topbar, Sidebar, Table)
│ │ ├── pages/ # Page components (Students, Fees, Timetable, etc.)
│ │ └── services/ # Axios network interceptors (service.jsx)
│ └── package.json
│
├── school-management-backend/ # Express API Gateway
│ ├── config/ # MySQL pool and startup seeding logic (dbInit.js, db.js)
│ ├── database.sql # Raw MySQL schema declarations
│ ├── server.js # API Routing Gateway
│ └── package.json
- Open your MySQL server control panel (e.g., XAMPP Control Panel or Laragon).
- Start the Apache and MySQL services.
- Ensure MySQL is running. If your port is
3306or3307, it will be detected automatically based on the backend.envconfiguration.
- Navigate to the backend directory:
cd school-management-backend - Verify that the
.envsettings align with your MySQL environment. For XAMPP running on port3307, specifyDB_PORT=3307:PORT=5000 DB_HOST=127.0.0.1 DB_PORT=3307 DB_USER=root DB_PASSWORD= DB_NAME=school_db JWT_SECRET=yoursecretkey123
- Install dependencies and start the server:
npm install
Note: On launch, the server runs onnpm run dev
http://localhost:5000and automatically builds/seeds the tables with rich high-fidelity demo records.
- Navigate to the frontend directory:
cd ../school-management-frontend - Install client dependencies and launch the dev environment:
npm install
npm run dev
- Open
http://localhost:5173in your browser to explore the portal!
To build and deploy the frontend application to Firebase Hosting:
- Build the production assets:
cd school-management-frontend npm run build - Authenticate with Firebase:
npx firebase-tools login
- Deploy the application:
The application will be uploaded and accessible online at https://edupro-portal-ankit.web.app.
npx firebase-tools deploy