The Academic ERP System is a comprehensive solution for managing educational institutions. Migrated from NoSQL to PostgreSQL via Supabase, this project ensures high data integrity, type safety, and real-time capabilities.
- Centralized Data: Single source of truth for students, faculty, and administration.
- Relational Integrity: Leveraging PostgreSQL for complex academic relationships.
- Role-Based Access: Specialized dashboards for Students, Faculty, and Admins.
- Scalability: Clean modular architecture to support future expansions.
This monorepo is structured for maximum developer efficiency:
| Component | Technology Stack | Key Modules |
|---|---|---|
| Client | React 19, Vite, Tailwind v4, Zustand | Auth, Dashboards, UI Components |
| Server | Node.js, Express, TS, Supabase | API, Auth Middleware, DB Logic |
- Node.js (v18+)
- NPM or PNPM
- A Supabase Project
Create a .env file in the /server directory:
PORT=5000
SUPABASE_URL=your_supabase_project_url
SUPABASE_KEY=your_supabase_anon_key
JWT_SECRET=your_jwt_secret# Terminal 1: Backend
cd server
npm install
npm run dev
# Terminal 2: Frontend
cd client
npm install
npm run devThe current construction phase is divided into the following modules. Please refer to your assigned issue on GitHub for specific requirements.
| # | Module | Developer | Status |
|---|---|---|---|
| 1 | Course Management | LakshyaMulchandani | 🛫 Open |
| 2 | Resource Allocation | prathamjaiswal27 | 🛫 Open |
| 3 | Enrollment | g0vind-S | 🛫 Open |
| 4 | Oversight | LakshyaMulchandani | 🛫 Open |
| 5 | Attendance | prathamjaiswal27 | 🛫 Open |
| 6 | Academic Management | LakshyaMulchandani | 🛫 Open |
| 7 | Leave Management | Sharkyii | 🛫 Open |
| 8 | Student Interaction | saminali01 | 🛫 Open |
| 9 | Document Upload | g0vind-S | 🛫 Open |
| 10 | Fee Management | Sharkyii | 🛫 Open |
| 11 | Course Selection | Sharkyii | 🛫 Open |
| 12 | Viewers (Audits) | saminali01 | 🛫 Open |
| 13 | Progress Tracking | prathamjaiswal27 | 🛫 Open |
| 14 | Feedback System | Sharkyii | 🛫 Open |
| 15 | Gamification | Sharkyii | 🛫 Open |
- Branching:
feature/your-module-name(e.g.,feature/attendance) - Commits: Use descriptive messages (
feat: add attendance model) - Pull Requests: Always request a review before merging to
main.
- TypeScript: Define interfaces in
models/(server) ortypes/(client). - Styling: Use Tailwind CSS utility classes. Avoid inline styles.
- Safety: Use the
protectmiddleware for all authenticated routes.
academic-erp/
├── client/ # React Frontend
│ ├── src/app/ # State Management (Zustand)
│ ├── src/components/ # Reusable UI Components
│ └── src/services/ # API logic (Axios)
├── server/ # Express Backend
│ ├── src/config/ # Supabase & Env Setup
│ ├── src/controllers/# Business Logic (Handy Tip: Keep logic here!)
│ └── src/routes/ # Clean API definitions
└── README.md # You are here
Built with ❤️ by the SE Project BMS team. For any blockers, please reach out via the GitHub Issues board.