Flagship project · In production · Open source

Open School ERP

A free, self-hostable, white-label management platform for K-12 schools. One deployment serves many schools, each with its own isolated database, branding and mobile app — built to replace the paper registers, spreadsheets and WhatsApp groups most schools still run on.

73
permission-gated features
15
modules
~1,750
automated tests
~900
students on the live deployment
Why it exists

Affordable or owned — schools shouldn't have to choose

School ERP software is a solved problem for well-funded institutions and an unsolved one for everyone else. Commercial platforms charge per student, hold the data and put customisation behind support tickets.

Schools that can't afford them run on paper. A parent learns their child was absent at the monthly meeting. A fee receipt exists as one carbon copy. Report-card season means a week of manual arithmetic.

This project exists so that a school with no IT budget can self-host a system that handles all of it, brand it as their own and never pay per student.

Self-hostable

The school's data lives on infrastructure the school controls — never on a vendor's servers.

White-label

School name, logo, colours and its own app on the Play Store. Parents never see our brand.

Multi-tenant

One deployment serves many schools, each with an isolated database. A district or operator can host several.

Free, forever

No per-student fee. Open source, so a school can deploy, modify and rebrand without asking anyone.

What it does

Every screen below is built and in daily use

73 permission-gated features across 15 modules. The eight largest:

01

Students

Admissions, promotion, siblings, documents, bulk Excel import with preview, transfer certificates that follow the school's own register numbering.

02

Attendance

Daily student and staff marking, offline-capable on mobile, calendar-aware registers and automatic absence alerts to parents.

03

Fees

Structures, installments, stackable discounts, fines, carry-forward dues, editable receipts under the same number, UPI payments approved from the office.

04

Examinations

Term formulas defined as data, split papers, report cards and tabulation sheets as school-owned HTML templates, frozen published results.

05

Transport

Routes, vehicles, fee tiers, monthly generation with clubbing, mid-session fare revision, per-month waivers and opt-outs.

06

Accounting

Accounts and heads, income and expense, cheque lifecycle, vendors and statements — fee collection posts automatically with double-entry integrity.

07

Communication

Direct messaging and broadcasts to school, staff, students or specific sections, with push notifications via Firebase.

08

Administration

Role-based access with 231 permission keys, per-school sessions and calendar, full before/after audit log and per-school backup and restore.

How it's built

Security audited before a single school went live

  • Structured audit across 40 categories

    Multi-tenant isolation, session handling, money math, concurrency, accessibility, backup integrity. 326 findings catalogued; fixes are cited by ID at the exact line in code so a future maintainer knows which failure a check prevents.

  • Server-side enforcement, always

    Client-side gating is user experience, never security. Where a feature hides something, the API returns nothing — an outdated app build or a direct call is equally covered.

  • Every change logged, tamper-evident

    Full before-and-after copy of each record, who changed it and from which device, alongside a hash-chained business log. Per-school backup and restore with a safety copy before any restore.

Stack

Web
Next.js 16 · React 19
Mobile
Expo SDK 55 · React Native
Data
PostgreSQL — one database per school
Deploy
Docker behind Nginx Proxy Manager
Licence
Apache 2.0
Tests
~1,750 across web and mobile
Read the architecture docs on GitHub

Run your school on software you actually own

We can host it for you, help your team self-host it, or tailor report cards and workflows to your board — the platform stays free either way.