Skip to content

About

Open digital platform for Sri Lankan schools.

Resources

Code of conduct

Contributing

Security policy

Stars

40 stars

Watchers

0 watching

Forks

OpenSchool

The open-source platform for digitising the day-to-day operations of Sri Lankan schools.

Backend CI Frontend CI License: Apache 2.0

Overview

OpenSchool brings everyday school work into one system: student and staff records, classes, attendance, curriculum, timetables, marks, notifications, reports, and administration. It replaces paper records and disconnected tools with a single source of truth.

It is designed to be self-hosted. A school or public-sector organisation can run it on infrastructure it controls, which keeps student and administrative data under local control. It is released under the Apache License 2.0, with no licence fees and no vendor lock-in.

Status: OpenSchool is pre-1.0 and under active development. Interfaces and data models may change between releases. See the changelog.

Features

  • School setup: academic years, grades, classes, houses, and streams
  • People: student, teacher, guardian, and non-academic staff records
  • Attendance: daily student and staff attendance
  • Academics: subjects, curriculum choices, term marks, and promotions
  • Timetables: planning, review, and publishing
  • Operations: in-app notifications, reports, dashboards, and automation checks
  • Portals: separate interfaces for administrators, teachers, students, and parents

The feature guide describes each module in detail.

Tech stack

Layer Technology
Backend Go, Gin
Frontend React, TypeScript, Vite
Database PostgreSQL
Identity and access ThunderID

The backend is a modular monolith: one application, one database, and clear feature modules. See the architecture guide for details.

Quick start

Prerequisites: Go 1.25+, Node.js 18+ with pnpm, Docker with Docker Compose.

git clone https://github.com/openschool-org/openschool.git
cd openschool

make setup   # start PostgreSQL and ThunderID, configure environment, install dependencies
make dev     # run the backend (:8080) and the frontend (:5173)

Open http://localhost:5173 and create the first administrator account.

make setup starts ThunderID with OpenSchool's resources preloaded, generates a client secret, and writes the .env files. To configure ThunderID by hand, see the ThunderID guide. For a step-by-step manual setup, see the setup guide.

Documentation

Document Description
Setup Run OpenSchool locally and set up a new school
ThunderID Configure the identity provider
Features What the system can do, by module
Architecture Project structure and data model
Architecture decisions Why key technical decisions were made
Changelog Release history

Contributing

Contributions are welcome. Read CONTRIBUTING.md before opening an issue or pull request, and follow the Code of Conduct.

Security

Do not report security issues in a public issue. Follow the process in SECURITY.md.

License

OpenSchool is licensed under the Apache License 2.0.

About

Open digital platform for Sri Lankan schools.

Resources

Code of conduct

Contributing

Security policy

Stars

40 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages