Skip to content
back to home

GET /work/lms

Learning Management System

Role-based LMS for students, teachers, and management — 30+ REST endpoints covering enrollment, grading, attendance, notices, and fees.

ReactNode.jsExpressMicrosoft SQL ServerJWT

ARCHITECTURE

React clientstudent · teacher · mgmtExpress API30+ endpoints · JWTSQL ServerMicrosoft

A React client serving three roles — students, teachers, and management — calls an Express API with 30+ REST endpoints enforcing role-based access with JWT, backed by Microsoft SQL Server.

SECTION /decisions

Key Decisions

Authorization is the spine

This is a system with three kinds of user in it — students, teachers, and management — so authorization is the spine of the design. Each role sees a different slice of the same data, enforced with JWT on the API rather than hidden in the UI.

A relational domain on a relational database

The domain is classically relational — enrollment, grading, attendance, notices, and fees all reference the same students, courses, and terms — which is why it sits on Microsoft SQL Server. The API surface grew to 30+ REST endpoints organized around those five domains.

SECTION /challenges

Challenges

The width of the API was the challenge: 30+ endpoints across five domains, each needing consistent role checks, error shapes, and validation so the three client roles could rely on uniform behavior.

SECTION /result

Result

A role-based LMS where students, teachers, and management each work against the same Express API — 30+ REST endpoints covering enrollment, grading, attendance, notices, and fees.