03Freelancing
Student Management System
Non-Profit Education Platform
Student records, attendance tracking, and progress monitoring for a non-profit education programme, with role-based access.
- Company
- Freelance Client
- Role
- Freelance Full-Stack Developer
- Category
- Full-Stack
/images/work/student-management/cover.webp
Full-bleed project cover. Wide editorial crop of the interface or its subject matter.
01Impact
By the numbers.
RBAC
Role-based access
Live
Real-time sync
Prod
In production
Auth
Secured sign-in
02Overview
The brief.
A non-profit running education programmes needed to move student records off spreadsheets. The system covers enrolment records, attendance, and progress monitoring, with administrative tooling scoped by role so volunteers, teachers, and administrators each see only what they should.
Problem
Spreadsheet-based records break down as soon as more than one person maintains them — no access control, no audit of who changed what, and no reliable way to see attendance trends across a cohort.
Solution
A Firebase-backed application with authentication and Firestore security rules enforcing role boundaries at the data layer rather than only in the UI, so access control holds regardless of how a request arrives.
03Features
What it does.
Student records
Enrolment details and history as the single source of truth for each student.
- Firestore
- Next.js
Attendance tracking
Session-level attendance capture that aggregates into cohort-level views.
- Firestore
- React
Progress monitoring
Per-student progress recorded over time rather than as a single current snapshot.
- Firestore
Role-based access
Permissions enforced in Firestore security rules, so the boundary holds at the data layer, not just the interface.
- Firebase Auth
- Security rules
Real-time updates
Multiple staff working simultaneously see each other’s changes without refreshing.
- Firestore listeners
04Architecture
How it's built.
frontend
- Next.js
- React
- Responsive layouts
backend
- Firebase
- Firestore
- Cloud-hosted
security
- Firebase Auth
- Firestore security rules
- Role claims
data
- Students
- Attendance
- Progress records
05Challenges
What was hard.
Access control with no backend server to enforce it
Pushed authorisation into Firestore security rules so permissions are evaluated server-side on every read and write, independent of the client.
Concurrent edits by multiple staff
Real-time listeners so the interface reflects the current state rather than a stale local copy.
06Gallery
A closer look.
/images/work/student-management/01.webp
Interface detail. Crop tight on one screen or one interaction — not a full-page screenshot shrunk down.
/images/work/student-management/02.webp
Interface detail. Crop tight on one screen or one interaction — not a full-page screenshot shrunk down.
/images/work/student-management/03.webp
Interface detail. Crop tight on one screen or one interaction — not a full-page screenshot shrunk down.
/images/work/student-management/04.webp
Interface detail. Crop tight on one screen or one interaction — not a full-page screenshot shrunk down.
07Stack
Built with.
- Next.js
- Firebase
- Firestore
- Authentication
Outcomes
- Student records moved off spreadsheets into a permissioned system
- Attendance and progress tracked per student over time
- Access boundaries enforced at the data layer