Skip to main content

Personal Project

School Management System

Web-based platform for managing students, teachers, attendance, and results with role-based access.

  • ASP.NET Core
  • ASP.NET Core Web API
  • Angular
  • SQL Server
  • Entity Framework Core
  • REST APIs
  • HTML
  • CSS
  • JavaScript

Overview

A full-stack web application for running the day-to-day operations of a school: enrolling students, managing teachers, recording attendance, and publishing results — with each role seeing exactly the functionality it needs.

The problem

Schools typically juggle registers, spreadsheets, and disconnected tools. Attendance lives in one place, results in another, and there is no single source of truth — and no meaningful access control over who can see or edit what.

The solution

A database-driven platform with a clean separation between an Angular frontend and an ASP.NET Core Web API. A normalized SQL Server schema models students, teachers, classes, attendance, and results, while JWT authentication and role-based access control give administrators, teachers, and students distinct, safe views of the system.

System architecture

Angular SPA

Role-aware dashboards with route guards

REST API

ASP.NET Core Web API + JWT authentication

Business Services

Enrollment, attendance, results logic

EF Core

Code-first models and migrations

SQL Server

Students, teachers, classes, attendance, results

Architecture

Classic three-tier architecture: an Angular SPA calling a RESTful ASP.NET Core Web API, with EF Core mapping a normalized SQL Server schema. Authorization is enforced server-side per role, with route guards mirroring it on the client.

Key features

  • Student admission, profiles, and class assignment
  • Teacher management and subject allocation
  • Daily attendance recording per class
  • Exam results entry and report generation
  • Role-based dashboards for admin, teacher, and student roles
  • Authentication with JWT and guarded Angular routes

My contribution

  • Designed the relational schema for students, classes, attendance, and results
  • Built the Web API with JWT authentication and role-based authorization
  • Developed the Angular frontend with role-specific dashboards
  • Implemented attendance and result workflows end to end

Technical challenges

Modeling role-based access cleanly

Admins, teachers, and students overlap in what they can see but not what they can change. Role claims in the JWT combined with per-endpoint authorization attributes kept the rules explicit and testable.

Attendance data volume

Attendance grows by one row per student per day. Composite indexes on (class, date) and paginated API responses keep register views fast as the table grows.

Outcome

A complete, working demonstration of database-driven full-stack development: schema design, secure APIs, and a role-aware Angular frontend working together as one system.