Skip to main content
Releases

Changelog

Every OpenSchool release, with what shipped and a link back to the source on GitHub.

Latest: v0.2.0Released September 15, 2026All releases on GitHub

v0.2.0

Latest

Released on September 15, 2026

View on GitHub

OpenSchool v0.2.0 delivers a major backend architecture refactor and improves the project’s reliability, developer experience, and documentation. The backend is now organised as a modular monolith, with each feature owning its routes, business logic, database access, and API contracts. This release also adds broader integration testing, stronger CI checks, and fixes API compatibility issues found in the frontend.

Get this release

OpenSchool is self-hosted - clone the repository and follow the Setup Guide to run this release.

What's Changed
What's Included

This release includes the following improvements and new functionality:

  • NIC-based default passwords for teacher/guardian accounts and index-number defaults for students, plus a universal self-service password reset and forced first-login password change
  • Class medium (language of instruction) support, wired into the setup wizard and promotion's auto-distribution logic
  • Analytics dashboard covering student, staff, academic, and school-wide aggregates
  • PDF report export for attendance and marks
  • Staff management, including non-academic staff records and staff attendance
  • Expanded student profile portfolio including progress reports, activities, leadership roles, awards, and disciplinary records
  • In-app position/leadership hierarchy including Principal, Vice Principal, Section Head, Class Teacher, and Subject Teacher, layered on top of the base ThunderID roles
  • Position-scoped notification permissions and a role-differentiated teacher dashboard
  • Academic year promotion and class reassignment, including marks-based and random auto-distribution assist tools
  • Full timetable module covering settings, grade sections, classrooms, subject period requirements, teacher availability, and a draft → validate → submit → review → approve/publish workflow
  • In-app notification system with role/position-scoped recipient targeting and a per-user notification center
  • Guardian directory with search, shared-guardian linking, and orphan filtering
  • House colors and a self-balancing (least-populated-house) assignment algorithm for students and staff
  • Audit log for sensitive changes, including house reassignment and attendance-lock overrides
  • Attendance session locking for 24 hours with admin override
  • Guardian absence notifications
  • First-run onboarding with one-time admin registration and a guided School Setup wizard covering school profile, houses, grades, classes, and mediums
  • Switched identity provider integration to ThunderID, previously Asgardeo, behind a provider-neutral internal/identity.Provider seam
Backend Architecture

The backend modular-monolith refactor has been completed.

Each feature now owns its:

  • HTTP routes
  • Business logic
  • Database adapter
  • API contracts

The old shared handler, service, repository, model, and route layers were removed.

This release also introduces API-wide per-IP rate limiting, which was previously limited to the first-run admin registration endpoint only.

Database connection pool sizing has also been tuned for expected load.

Reliability and Security

This release fixes several important issues and adds stronger protections:

  • Fixed broken access control on attendance and term-marks endpoints
  • Batched two N+1 query patterns in list endpoints
  • Swagger UI is no longer served outside development builds
  • Restored the snake_case JSON API fields used by class and curriculum screens
  • Added audit logging for sensitive changes
  • Added attendance session locking with admin override
  • Added API-wide per-IP rate limiting
Documentation

This release significantly expands and updates the project's documentation:

  • Added docs/FEATURES.md, the current as-built feature reference
  • Added docs/ARCHITECTURE.md
  • Added docs/adr/ (Architecture Decision Records) for significant, easy-to-relitigate design decisions
  • Added audit.md, a standing code-quality and security audit with tracked severity/status
  • Added SECURITY.md
  • Added CODE_OF_CONDUCT.md
  • Added this changelog
  • Corrected stale claims in docs/SETUP.md, including the teacher dashboard mock-data note and the "starting over" TRUNCATE TABLE table list, which was missing ~20 tables added by later migrations
  • Added backend and frontend README files
  • Refreshed the root README and contributor guide
  • Simplified environment example files
Contributors (2)

v0.1.0

Released on August 11, 2026

View on GitHub

OpenSchool v0.1.0 is the first public release of OpenSchool, an open source, self-hosted school management system built specifically for Sri Lankan schools. OpenSchool provides a modern alternative to paper-based processes and expensive proprietary school management software, while allowing schools to retain full control of their data and infrastructure.

Get this release

OpenSchool is self-hosted - clone the repository and follow the Setup Guide to run this release.

What's Changed
What's Included

This release includes the core functionality required for day-to-day school operations:

  • Student, teacher, and guardian record management
  • Class, subject, and curriculum management
  • Attendance tracking with present, absent, late, and excused statuses
  • Attendance editing controls with audit logging
  • School house management with automatic balancing
  • Role-based access for Principals, Vice Principals, Section Heads, Class Teachers, and Subject Teachers
  • Academic year promotion with an administrative preview before changes are committed
  • Teaching and non-teaching staff management
  • Staff attendance and leave tracking
  • Student profiles including progress reports, activities, leadership roles, awards, and disciplinary records
  • Prefect board management with year-by-year history
  • Analytics dashboard for attendance, student and staff statistics, and academic performance
  • PDF reports for attendance and marks
  • Authentication through ThunderID
  • Login using NIC numbers or student index numbers as default credentials
Built for Sri Lankan Schools

OpenSchool is designed around the structures and workflows commonly found in Sri Lankan schools, including:

  • Houses
  • Grades and classes
  • Sinhala, Tamil, and English mediums
  • Academic streams
  • Terms
  • School leadership and teaching roles

These concepts are part of the platform's core design rather than workarounds added to a generic school management system.

Technology

OpenSchool is built as a monorepo using:

  • Backend: Go REST API
  • Frontend: React with Carbon Design System
  • Authentication: ThunderID
Out of Scope

The following features are not part of this release:

  • Full learning management and online classroom functionality
  • School fee and finance management
  • Public-facing mobile applications

These may be considered for future development.

Contributors (2)

Want the full history?

Every release, tag, and diff lives on GitHub - including source downloads.

Browse releases on GitHub