School Management System
Simplifying report generation and administrative processes in resource-constrained schools.
Problem Statement
Schools in resource-constrained environments rely on manual processes for academic reporting—teachers fill spreadsheets, administrators compile reports by hand, and errors compound over time.
Generating end-of-term reports, tracking student performance, and managing class rosters are time-consuming tasks that pull staff away from teaching.
Existing school management systems are designed for well-resourced institutions with stable infrastructure, making them impractical for schools operating under power and connectivity constraints.
System Goal
Automate academic reporting workflows - grade tracking, report card generation, and attendance monitoring — while remaining operational under unreliable power and limited connectivity.
Constraints Handled
Limited technical infrastructure
Many schools lack dedicated IT staff or reliable computers. The system is designed for deployment on low-cost hardware with minimal setup.
Intermittent power
Frequent power outages mean the system must recover gracefully from unexpected shutdowns without data loss or corruption.
Multi-user workflows
Administrators, and registrars work concurrently. The system enforces role-based permissions and prevents conflicting updates to shared data.
Compliance and audit requirements
Academic records must be auditable and tamper-resistant. The system logs all changes and prevents unauthorized modifications to historical data.
Key Engineering Decisions
Batch-oriented report generation
Instead of generating reports on-demand (which is slow and resource-intensive), the system pre-computes reports in background jobs. Users retrieve already-generated documents, making the UI fast and responsive.
Immutable academic records
Once grades are finalized, they cannot be modified directly. Changes require creating a new record with a justification. This ensures audit trails and prevents accidental overwrites.
Role-based access control with explicit permissions
Teachers can only modify grades for their assigned classes. Administrators can view all records but cannot edit finalized grades. Registrars manage enrollment. Permissions are enforced at the database level, not just in the UI.
Versioned data model for historical tracking
Student records, class rosters, and grade entries are versioned. When a change occurs, a new version is created. This allows the system to reconstruct state at any point in the academic year.
Offline-compatible PDF generation
Report cards and transcripts are generated as PDFs that can be printed locally without requiring cloud services or external dependencies.
Tech Context
Built with PostgreSQL for reliable data storage and transactional integrity.
Used background job queues to handle report generation asynchronously, preventing UI blocking.
Designed for deployment on local networks within schools, minimizing reliance on external internet connectivity.
Used server-rendered templates for PDF generation, ensuring consistent formatting across different environments.
System Model
Actors
Teachers, administrators, registrars, students
Resources
Students, classes, grades, attendance records, reports
Actions
Enroll student, assign class, record grade, mark attendance, generate report
Constraints
Finalized grades are immutable, teachers can only modify assigned classes, reports must be auditable