Skip to main content

One platform for your entire school's records

Academic years, classes, students, guardians, attendance, and timetables - in one self-hosted system. No more spreadsheets. No more paper registers.

Backend CIFrontend CIApache 2.0 LicenseContributor Covenant 2.1
Students at a Sri Lankan school
4
Role-Based Portals
LK
Built for Sri Lanka
Quick Start

Ready to self-host OpenSchool for your school?

Clone the repo, start Postgres, and run the backend and frontend locally in a few commands. The setup guide walks through the rest - first-run admin registration, the school setup wizard, and every module hands-on.

Read the Setup Guide
Run it locally
git clone https://github.com/openschool-org/openschool.git
cd openschool

# Postgres
cd backend && docker compose up -d

# Backend - migrations run automatically
go run ./cmd/api/main.go

# Frontend
cd ../frontend && pnpm install && pnpm dev
What We Automate

Every school operation, one platform

From opening an academic year to marking today's attendance, OpenSchool replaces disconnected tools with one consistent, API-driven system that scales with your school.

01

School Management

The school profile and the first-run Setup wizard that gets a fresh instance from empty to operational.

02

Guardian Management

A searchable guardian directory with notification history and portal-login status.

03

Attendance Management

Daily sessions for students and staff, with locking and guardian notifications.

04

Promotion & Class Reassignment

Preview-then-commit promotion between academic years, with marks-based or random auto-fill.

05

Timetable

A config → build → review → publish pipeline, one class at a time.

06

Notifications

In-app notifications with role-scoped recipient targeting and a per-user Notification Center.

Built On Open Standards
Students talking together at schoolStudents playing together at school
About OpenSchool

Infrastructure built for how Sri Lankan schools actually run

Most schools still track students, grades, and attendance across paper registers and disconnected spreadsheets. OpenSchool gives every school a structured, secure, self-hosted system of record - modeled around the full Grade 1-13 flow, from Scholarship years through O/Level and A/Level streams, and the people who keep a school running.

Learn more about our mission
Join the Community

We're building OpenSchool with you

It's a volunteer-run, open-source project - no sales team, no support inbox. Everything happens on GitHub.

Contribute

Help shape OpenSchool by submitting features, fixes, or improvements.

Local Development Setup

Report an Issue

Found a bug or have an idea? Open an issue and help make the platform better.

Open an issue

Join the Discussion

Ask questions, share ideas, and talk with other people running OpenSchool.

GitHub Discussions