Skip to main content

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:

  1. Local Development Setup - clone the repo and get Postgres, the backend, and the frontend running locally.
  2. ThunderID Setup - one-time identity-provider configuration. OpenSchool has no login system of its own; ThunderID is a hard dependency.
  3. 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

This project is fully maintained and operated by open source contributors; see the contributors graph for everyone who's helped.