All work

Case study 03

School Management Platform

Designed, built, and operated solo. A 1,000-student school runs on it daily.

Freelance Software DeveloperH.A.K Academy2025 - Present · part-time
React 18ViteRTK QueryNode.jsExpressMongoDBDigitalOceanZKTeco BioTime
1,000+
students
across 12 grade levels
2-3k
biometric punches/day
7
user roles
35 role-gated pages
137
REST endpoints
23 data models

Solo project: every model, endpoint, page, and deployment is mine, and I operate it in production.

Context

A private school in Gazipur ran admissions, attendance, fees, exams, and guardian communication on paper. I designed and built their entire platform solo, and still operate it: 23 data models, ~137 REST endpoints, JWT auth with per-route role middleware for seven user roles, running on Vercel and a DigitalOcean VPS under a PM2 cluster.

What I built

Biometric attendance pipeline

  • ZKTeco fingerprint devices polled through an adaptive, holiday-aware pipeline.
  • Every punch classified as entry, exit, or absent against per-class schedule windows; guardians receive an SMS within seconds.
  • Handles 2,000-3,000 punches a day with cron reconciliation, health monitoring, and automatic recovery.

Academic core

  • Exam results with auto-computed GPA and merit positions, behind a draft-to-publish workflow.
  • Student promotion with per-step rollback and a full audit trail.
  • CSV import/export for bulk exam results and admissions data.

Bengali-typography PDFs

  • Client-side PDF generation with embedded Bengali fonts (@react-pdf/renderer): progress cards, admit cards, seat plans, and printable admission applications, all self-service instead of office queues.

Guardian messaging

  • Rate-limited SMS service with retry/backoff, per-student deduplication, per-message delivery status, and an emergency kill switch.

Operational views

  • 35 role-gated dashboard pages across seven roles, on a tag-invalidated RTK Query data layer with offline-persisted sessions.
  • A full-screen “Now Teaching” board auto-refreshing every 30 seconds under a locked-down display account, plus attendance dashboards with absentee lists.

Decisions & trade-offs

An SMS kill switch as a first-class feature

A bug in an SMS loop is a real-money incident and a thousand angry guardians. The global kill switch, per-student deduplication, and rate limiting were built before scale, not after the first incident.

Holiday-aware adaptive polling

School calendars are irregular. The poller adapts its frequency to schedule windows instead of hammering the device around the clock, and cron reconciliation backfills anything missed.

Solo-operable by design

One engineer runs this part-time. Health monitoring, automatic recovery, and audit trails aren't nice-to-haves; they're what makes that possible.

Outcome

  • The school runs on the platform daily. Attendance, results, fees, admissions, and printing are self-service.
  • Guardians are notified of attendance within seconds of a fingerprint punch.
  • Operated in production by one part-time engineer, by design.