An academic platform with three portals and one source of truth
Student, teacher and admin portals for a CBSE and GSEB tuition centre: enrolment, attendance, fees and performance on one Postgres schema.

The problem
Attendance, fees and grades were spread across spreadsheets and messaging apps. Data was duplicated, reports were assembled by hand, and access control depended on who had the file.
What we built
A role-based platform on Next.js and Supabase. Each role sees a portal shaped around its day; attendance and fee status feed shared analytics; access is enforced in the database with row-level security; and the public site carries admissions and curriculum.
Decisions, and why
Authorization in the database
Row-level security means a student cannot read another student's record even if a screen forgets to check.
One codebase, three portals
Shared schema and components keep the roles consistent, while routes and navigation are shaped per role.
Scope
- Admin command centre: students, faculty, classes, subjects, materials
- Attendance capture, including QR codes
- Fee status tracking: paid, partial, unpaid
- Bulk student import from CSV and Excel
- Public admissions and curriculum site
