UniCampus ERP
A full-stack College ERP built to replace the college's existing third-party system with a custom, institution-owned platform — designed for permanent adoption by the institution.
Role · Solo full-stack engineer
The brief
What began as a first-semester assignment grew into a professional-grade system: a ground-up replacement for the college's incumbent ERP, owned and operated by the institution itself. It's scoped against a formal 15-section SRS covering 11 modules on a 32-week delivery timeline.
Architecture
Security and traceability are enforced structurally, not left to convention.
- Role-based access control enforced at two layers — API middleware and PostgreSQL row-level security.
- A structured error-code system (ERR-MODULE-NNN) with a UUID on every response for traceability.
- Zod-validated environment, Winston logging, and a global error handler.
- Bulk operations run as all-or-nothing transactions with per-row error reports; plaintext passwords are never persisted (JWT in HttpOnly cookies, bcryptjs hashing, lockout after 5 attempts).
Modules shipped so far
Built out module by module against the SRS timeline.
- Auth — login/logout, OTP reset, and account lockout.
- Students — CRUD with ownership enforcement and HOD academic holds.
- Admissions — auto-generated credentials and all-or-nothing bulk Excel import.
- Timetable, Notices, and Attendance — the attendance module supports a 24-hour edit window, class rosters, HOD batch summaries, and a 75% attendance calculator on the frontend.
Stack
Node.js + Express + TypeScript on the backend; React 18 + Vite + Tailwind on the frontend; PostgreSQL 14 with Drizzle ORM; BullMQ + Redis for background jobs; ExcelJS exports; Razorpay payments.
Work in progress
A deeper walkthrough of the module architecture, with screenshots, is being added as the build progresses.