OpenSchool
OpenSchool is a self-hosted school management system built for the way Sri Lankan schools actually run - houses, grades, streams, terms, attendance, guardians, and the admin/teacher/student/parent roles around them. It's a monorepo with a Go REST API backend and a React (Carbon Design System) frontend, authenticating through ThunderID.
It's free and open source under the Apache License 2.0 - you run your own instance, on your own infrastructure, and you own your data. There's no hosted version and no vendor relationship: OpenSchool doesn't operate a service on anyone's behalf.
For what the product actually does today, see the Features & Modules page. This documentation section covers how to run it and how it's built.
Getting started
New to the project? Work through these in order:
- Local Development Setup - clone the repo and get Postgres, the backend, and the frontend running locally.
- ThunderID Setup - one-time identity-provider configuration. OpenSchool has no login system of its own; ThunderID is a hard dependency.
- Setup Walkthrough - first-run admin registration, the school setup wizard, and a hands-on tour of every module.
Once you're up and running, Architecture explains how the pieces fit together, and the Architecture Decision Records capture the why behind the non-obvious choices.
Source & community
- Source code: github.com/openschool-org/openschool
- Contributing: see the Local Development Setup guide
and the project's
CONTRIBUTING.mdfor the PR workflow. - Questions, issues, and security reports: see the Community page.
This project is fully maintained and operated by open source contributors; see the contributors graph for everyone who's helped.