← All projects

PDS course · 2025

Back-office management platform

Team coursework: a role-based REST API and an Angular dashboard for managing an organisation's announcements, invoices, orders, expense reports, member requests and warnings.

Problem

Centralise an organisation's internal admin — announcements, invoices, orders, expense reports and member requests — with different permissions for each role.

Context and motivation

Group project for the degree's PDS course.

My contribution

This was built as a team. The copy on my GitHub was uploaded in a single commit, so its history does not show who wrote which part, and I don't attribute specific components to myself on this page.

Technical decisions

2

Layered API

Express routes per resource, a service layer per domain (announcements, invoices, orders, expenses, requests, warnings, roles, users) and Knex migrations for the PostgreSQL schema.

Integration tests against the real API

Jest and Supertest exercise the routes against a test database prepared with the Knex migrations.

What it does

  • JWT authentication with Passport and a role model
  • Announcements, invoices, orders, expense reports, requests and warnings
  • PDF generation, scheduled jobs and notification emails
  • Angular dashboard with one view per resource

Evidence

what was checked, and how
WhatResultSourceChecked
Integration tests128 test cases in the repositoryCount of it()/test() calls in API/test; not re-run for this site (they need a PostgreSQL database)

Limitations and next steps

Known limitations

  • Coursework project; the repository documents no deployment.