Backend / API
An academic administration API that connects student records with course registration, assessment results, and attendance. It calculates credit-weighted GPA and cumulative GPA while giving administrators and staff distinct permissions.
Academic records, results & attendance
Credit-weighted GPA & cumulative GPA
Admin / staff permissions & rotating tokens
API surface
Student Management API
/api/v1/studentsSearch, filter, sort, and paginate student records.
/api/v1/academic/registrationsRegister a student for a course.
/api/v1/academic/students/:studentId/cgpaCalculate cumulative GPA with semester breakdowns.
/api/v1/auth/refreshRotate a refresh token and issue a new token pair.
/api/v1/academic/attendanceAllow administrators and staff to record attendance.
/api/v1/audit-logsAllow administrators to inspect authentication and user-management events.
/api/v1/healthCheck database connectivity.
NestJS modules organize students, academic administration, authentication, users, audit events, and health checks into separate domains.
Prisma and PostgreSQL model faculties, departments, courses, sessions, semesters, registrations, and results. Academic services calculate grades and credit-weighted GPA.
Bearer-token authentication and role guards protect operations. Rotating refresh tokens, account status checks, and temporary login lockouts support session security.
Global DTO validation rejects unknown fields, while a Prisma exception filter translates persistence errors. Swagger documents requests and bearer authentication.
Vitest unit tests and database-backed end-to-end tests exercise application behavior. CI migrates and seeds a PostgreSQL test database before running its checks.