Back to blog
8 min read

How I Built SchoolHub — A School ERP That Serves Thousands

From concept to production: the architecture, challenges, and lessons learned building a multi-tenant school management platform.

Next.jsArchitectureCase Study

The Problem

Schools in Nepal still rely heavily on paper records, spreadsheets, and fragmented tools for administration. Teachers spend hours on manual attendance, report cards are prepared by hand, and parents have no visibility into their child's progress.

When Sunshine Academy approached me, their principal put it simply: "We need one system that does everything — admissions, attendance, exams, billing, and communication."

The Approach

Instead of building a single-purpose app, I designed SchoolHub as a multi-tenant ERP platform. Every school gets its own isolated instance, but the core engine is shared — making updates and maintenance manageable.

Architecture Decisions

  • **Next.js** for the frontend — SSR for public pages, client components for the dashboard
  • **Node.js + Express** for the API layer — RESTful with role-based access control
  • **MongoDB** for flexibility — different schools have different data schemas, and document models handle that gracefully
  • **Multi-tenant by database** — each school gets its own database for isolation and security

Key Modules

Student Management

From enrollment to alumni tracking. Digital records replace physical files, and authorized staff can access any student's history in seconds.

Billing & Accounting

Automated fee calculation, due-date reminders, and receipt generation. The accounting module integrates with the student database so billing is always accurate.

Examination & Marksheet

Teachers enter marks per subject, and the system calculates totals, percentages, grades, and ranks — then generates a printable marksheet PDF with a single click.

Transportation Management

Route planning, vehicle assignments, and real-time GPS tracking (via a companion mobile app) for school buses.

Challenges & Solutions

Challenge: Schools have wildly different workflows.

Solution: Configurable modules — each school enables only what they need, and the UI adapts dynamically.

Challenge: Non-technical staff need to use it daily.

Solution: Clean, role-based dashboards. Teachers see only what they need — marks entry, attendance, and communication.

Challenge: Data migration from legacy systems.

Solution: Built a CSV/Excel import wizard that maps columns to database fields with preview before commit.

Results

  • **60% reduction** in administrative paperwork
  • **Zero** lost student records since deployment
  • **2,500+** students managed across 4 schools
  • Report cards that used to take **2 weeks** now take **2 hours**

What I'd Do Differently

If I rebuilt SchoolHub today, I'd start with a proper design system from day one. The UI components grew organically and needed a refactor midway. I'd also invest in automated end-to-end testing earlier — manual testing across 4 schools with different configurations is time-consuming.

Need help with a similar project?

I build custom ERP systems, web platforms, and automation tools. Let's discuss your project in a free 15-minute audit call.

Book a Free Audit