Open digital platform for Sri Lankan schools.
OpenSchool is an open-source school management platform for Sri Lankan government schools. It brings everyday school work into one place: student and staff records, classes, attendance, curriculum, timetables, marks, notifications, reports, and school administration.
Many schools still depend on paper records or several disconnected tools. This makes information harder to find, update, and share safely. OpenSchool is built to give schools one clear system for managing that work.
OpenSchool can be self-hosted, so a school or public-sector organisation can run it on infrastructure it controls. Student and administrative data can remain under local control instead of depending on a commercial foreign-hosted service. It is licensed under Apache License 2.0, with no licence fees and no vendor lock-in.
- School setup, academic years, grades, classes, houses, and streams
- Student, teacher, guardian, and non-academic staff records
- Daily student and staff attendance
- Subjects, curriculum choices, term marks, and promotions
- Timetable planning, review, and publishing
- In-app notifications, reports, dashboards, and automation checks
- Separate portals for administrators, teachers, students, and parents
Read the feature guide for the full list.
| Part | Technology |
|---|---|
| Backend | Go and Gin |
| Frontend | React, TypeScript, Vite, and Carbon Design System |
| Database | PostgreSQL |
| Identity and access management | ThunderID |
The backend is a modular monolith: one application, one database, and clear feature modules. See the architecture guide for more detail.
You need Go, Node.js with pnpm, Docker, and Docker Compose.
git clone https://github.com/openschool-org/openschool.git
cd openschoolThen follow these guides:
- Set up ThunderID.
- Set up and run OpenSchool.
- Open
http://localhost:5173and create the first administrator account.
| Guide | Use it for |
|---|---|
| Setup | Running OpenSchool locally and setting up a new school |
| Features | Understanding what the system can do |
| Architecture | Understanding the project structure and data model |
| Architecture decisions | Understanding why key technical decisions were made |
| Contributing | Setting up a development environment and opening a pull request |
Contributions are welcome. Please read CONTRIBUTING.md before opening an issue or pull request, and follow the Code of Conduct.
If you find a security issue, please do not report it in a public issue. Follow SECURITY.md.
OpenSchool is licensed under the Apache License 2.0.