An Enterprise-Grade, Multi-Tenant Education & School Management Platform
Built with .NET 8 Clean Architecture & Angular 20 with dynamic GSAP animations.
TSWD Education Management is a comprehensive, multi-tenant SaaS platform designed to streamline school operations, academic administration, fee management, and communication. Every school operates as an independent tenant with custom configurations, academic sessions, departments, staff hierarchies, and role-based permissions.
- π True Multi-Tenancy: Data isolation per school/tenant with tenant-scoped configurations, academic terms, and branding.
- ποΈ Clean Architecture: Separation of concerns across Domain, Application, Infrastructure (EF Core & Dapper), and Presentation layers.
- β‘ Hybrid Data Access: Combines Entity Framework Core 8 for rich domain mutations with Dapper for high-speed, read-optimized queries and reporting.
- π Dynamic RBAC & Permissions: Fine-grained access control where roles and permissions can be customized per tenant dynamically without schema modifications.
- π¨ Premium UI/UX: Built with Angular 20, Bootstrap 5, Bootstrap Icons, and smooth animations powered by GSAP and Locomotive Scroll.
This repository is structured as an integrated monorepo containing both the C# backend API and the TypeScript/Angular frontend application:
TSWD.EducationManagement/ # Root Monorepo
βββ TSWD.EducationManagement/ # βοΈ C# .NET 8 Backend Solution
β βββ TSWD.EducationManagement/ # API / Presentation Layer (Controllers, Middlewares, Program.cs)
β βββ ...Application/ # Application Layer (Services, Interfaces, DTOs, CQRS)
β βββ ...Domain/ # Domain Layer (Entities, Enums, Value Objects, Tenant Models)
β βββ ...EntityFrameworkCore/ # EF Core Infrastructure (DbContext, Migrations, Repositories)
β βββ ...Dapper/ # Dapper Infrastructure (High-performance SQL read queries)
β βββ ...Shared/ # Shared Utilities & Extensions
β
βββ TSWD.EducationManagement.UI/ # π¨ Angular 20 Frontend Application
βββ src/
β βββ app/
β β βββ components/ # Dashboard, Tenants, School Settings, Users, Classes
β β βββ pre-home/ # Interactive Landing Pages & Feature Tours
β β βββ proxy/ # Auto-generated & typed API service proxies & DTOs
β β βββ shared/ # Reusable UI components (Toasters, Loaders, Modals)
β βββ environments/ # Environment configuration files
β βββ styles.css # Global design tokens & responsive utilities
βββ angular.json # Angular Workspace configuration
βββ package.json # Frontend dependencies and scripts
graph TD
UI["π¨ TSWD.EducationManagement.UI (Angular 20 / TypeScript)"]
API["π TSWD.EducationManagement (API / Presentation Layer)"]
APP["π¦ TSWD.EducationManagement.Application (Application Services & DTOs)"]
EF["ποΈ TSWD.EducationManagement.EntityFrameworkCore (EF Core 8 Repositories)"]
DAP["β‘ TSWD.EducationManagement.Dapper (Dapper Read Queries)"]
DOM["ποΈ TSWD.EducationManagement.Domain (Entities, Tenant Rules, Enums)"]
SHR["π§ TSWD.EducationManagement.Shared (Shared Utilities)"]
UI -->|REST / JSON / JWT| API
API --> APP
APP --> EF
APP --> DAP
EF --> DOM
DAP --> DOM
DOM --> SHR
APP --> SHR
All 10 core institutional modules are Fully Implemented & Operational across both the C# .NET 8 Backend (Clean Architecture + EF Core/Dapper) and the Angular 20 Standalone Frontend UI:
- General Configuration: School Name, Code, Branding (Logo, Themes), Locale, Timezones.
- Academic Rules: Custom Grading Policies (A+, A, B), Promotion Criteria, Attendance Logic (Half-day/Full-day).
- Finance Configuration: Fee structures, late fine calculation rules, scholarships, discount policies.
- Faculty & Departments: Manage Academic & Administrative departments with dynamic teacher allocation.
- Staff Onboarding & Hiring: Integrated modal workflow to onboard new teachers with employee ID, salary, and designation.
- Teacher Replacement Workflow: Replace departing/retiring faculty while preserving historical subject mapping and class schedules.
- Student Directory & Admissions: Interactive enrollment workflow with parent/guardian demographics and emergency contacts.
- 360Β° Academic Tracking: Status tracking (Enrolled, Admitted, Graduated, Transferred) with automated enrollment number generation.
- Institutional Catalog: Track stationary, lab equipment, IT assets, sports gear, and classroom furniture stock levels.
- Staff Asset Issuance & Return: Allocate laptops, projectors, keys, and teaching materials to staff members with check-in/out logging.
- Fee Structure & Ledgers: Tuition, Library, Transport, and Lab fee heads with payment frequency schedules.
- Receipts & Collections: Automated receipt generation, payment mode tracking (Cash, Card, Bank Transfer, Online), and scholarship concessions.
- Bus Fleet & Routes: Manage vehicle numbers, assigned driver contact details, pickup/drop station stops, and seat utilization counters.
- Term Schedules: Mid-Term, Final, and Unit Test scheduling with target classes and max/passing mark criteria.
- Automatic Grading: Student marks recording with automatic percentage and grade calculation (
A+,A,B,C,D,F).
- Daily Logs: Timestamped check-in and check-out logs for staff and students.
- Leave Application Workflows: Interactive leave approval/rejection modal with approver remarks for Casual, Sick, and Maternity leaves.
- Institutional Feed: Publish PTM announcements, holiday notices, and sports circulars with priority badges (High, Medium, Normal).
- Institutional KPIs: Real-time demographic counters, financial collection summaries, library book circulation, and fleet active route metrics.
The security model allows each school tenant to independently customize role permissions:
AppTenants (Tenant Root)
β² β²
β β
AppUsers AppRoles
β²
β
AppRolePermissions (Tenant-Scoped Mappings)
β²
β
AppPermissions (Dynamic Action Tokens)
- Dynamic Access: New system permissions can be registered without altering database schemas.
- Tenant Isolation: An
Adminrole in Tenant A can have entirely different fine-grained permissions than anAdminin Tenant B.
- .NET SDK: version 8.0 or later
- Node.js: version 18.x or later
- Angular CLI: version 20.x (
npm install -g @angular/cli) - Database: Microsoft SQL Server (or SQL Server Express / Docker container)
- Navigate to the API presentation folder:
cd TSWD.EducationManagement/TSWD.EducationManagement - Restore .NET dependencies:
dotnet restore
- Update database connection strings in
appsettings.json/appsettings.Development.json. - Run EF Core Database Migrations / Scaffolding (if needed):
dotnet ef database update --project ../TSWD.EducationManagement.EntityFrameworkCore
- Start the backend server:
The API server will launch with Swagger documentation enabled in development mode.
dotnet run
- Navigate to the frontend directory:
cd TSWD.EducationManagement.UI - Install NPM dependencies:
npm install
- Start the Angular local development server:
(or run
npm start
ng serve) - Open your browser and navigate to:
The app will automatically reload whenever you modify any source files.
http://localhost:4200/
For developers updating Entity Framework Core models directly from an existing database schema:
# Scaffolding command for SQL Server
Scaffold-DbContext "Server=YOUR_SERVER;Database=EducationDb;Trusted_Connection=True;TrustServerCertificate=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities -Context EducationDbContext -Project TSWD.EducationManagement.EntityFrameworkCore -StartupProject TSWD.EducationManagement