
School CMS Web App
A robust, session-based school management system supporting multiple schools under a unified platform. An end-to-end school administration platform for managing sessions, students, fee structures, and collections.
This is an ASP.NET MVC web application built to manage the complete academic and financial lifecycle of multiple schools โ all within a single platform. It supports multi-tenant functionality, allowing administrators to configure and manage separate institutions while sharing a common application and database layer.
Key Features are following:
โ Multi-School (Multi-Tenant) Setup
๐น Single application serves multiple schools independently.
๐น Each school has isolated data: sessions, students, classes, fees, and collections.
๐น Admin users are scoped per school to avoid cross-institutional access.
โ Session-Year Management
๐น Schools can define custom academic years and manage yearly transitions.
๐น Classes, sections, and shifts are session-specific.
โ Student Registration & Assignment
๐น Student profiles are associated with specific schools and sessions.
๐น Tracks class promotion and fee plan history across years.
โ Fee Management System
๐น Define fee heads, fee types, and class-section-based mappings per school/session.
๐น Generate automated student fee plans yearly.
๐น Support for various payment types (monthly, annual, one-time).
โ Fee Collection & Print Slips
๐น Record fee transactions with full history and breakdown.
๐น Generate PDF/printable receipts using HTML and Razor templates.
Challenges
โ Challenge 1:Supporting Multi-School Architecture Without Redundant Code:
๐น The biggest architectural challenge was enabling multi-tenant behavior (supporting multiple schools) without duplicating logic or tables, and ensuring data separation so one school's users could not access anotherโs data.
โ Challenge 2: Managing Fee Complexity Across Sessions and Schools
๐น Since every school may have different fee structures and session durations, a dynamic and isolated configuration was needed for each.
Solutions
โ Solution 1: Soft Multi-Tenancy via School-ID Keying
๐น All key entities (students, sessions, classes, fees, users) are linked to a School-ID.
๐น A global school context (via session or auth token) is set at login and used throughout all operations.
๐นAdmins and staff only view/manage data from their assigned school.
โ Solution2: Dynamic Fee Mapping Engine per School
๐น Created a Fee Head โ Fee Type โ Class โ Section โ Session โ School relational model.
๐น Each school can manage its own mappings independently.
๐น Student fee plans are generated per school-session context.
Technologies
Links
Project Gallery











