Releases: openschool-org/openschool
Release list
OpenSchool v0.2.0
OpenSchool v0.2.0
Major Backend Refactor and Platform Improvements
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.
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.Providerseam
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_caseJSON 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
Testing
Isolated PostgreSQL integration coverage has been added for every backend module.
The integration test suite has also been added to backend CI.
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 TABLEtable 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
Project Status
This release represents a major architectural and functional step forward for OpenSchool.
The backend has been reorganised into a modular monolith, with broader integration testing and stronger CI coverage. The release also expands school management functionality across staff, academics, timetables, notifications, guardians, attendance, analytics, onboarding, and reporting.
As a 0.2.0 release, continued improvements, bug fixes, security hardening, usability improvements, testing, and documentation updates are expected in future releases.
Contributors
Open Source
OpenSchool is free and open source. The project is intended to provide Sri Lankan schools with accessible, adaptable digital infrastructure without vendor lock-in.
Contributions, bug reports, testing, documentation improvements, and feature development are welcome.
What's Next
Future releases will continue to focus on improving stability, security, usability, documentation, testing, deployment, and expanding the capabilities of OpenSchool based on the needs of schools and the wider community.
Thank you for being part of OpenSchool.
OpenSchool v0.1.0
OpenSchool v0.1.0
Initial Release
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.
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
Project Status
This release represents the first public version of OpenSchool.
The core platform has been implemented and tested, with the main school management workflows available for use. As a 0.1.0 release, further improvements, bug fixes, security hardening, usability improvements, and additional testing are expected in future releases.
Schools and organizations should evaluate the system in their own environment and ensure that their deployment, security, backup, and operational requirements are satisfied before using it for critical production workloads.
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.
Notes
This is a 0.1.0 release — evaluate deployment, security, backup, and operational requirements before relying on it for critical production workloads. Feedback, bug
reports, and contributions are welcome.
Contributors
Open Source
OpenSchool is free and open source. The project is intended to provide Sri Lankan schools with accessible, adaptable digital infrastructure without vendor lock-in.
Contributions, bug reports, testing, documentation improvements, and feature development are welcome.
What's Next
Future releases will focus on improving stability, security, usability, documentation, deployment, and expanding the capabilities of OpenSchool based on the needs of schools and the wider community.
Thank you for being part of OpenSchool.