<aside> <img src="/icons/document_blue.svg" alt="/icons/document_blue.svg" width="40px" />

A3 · Software Design Specification · Version 2.0 · Issued 6 October 2026

57 pages. Replaces A3 — SDS v1.0 (Sprint 1)

</aside>

<aside> <img src="/icons/target_blue.svg" alt="/icons/target_blue.svg" width="40px" />

Controlled document


Document Software Design Specification

ID SE-SDS-002

Version 2.0

Date 6 October 2026

Status Issued

</aside>

<aside> <img src="/icons/checklist_gray.svg" alt="/icons/checklist_gray.svg" width="40px" />

Companion documents


System Document v2.0

Testing Document v2.0

Application Manual v2.0

</aside>


Contents

The design is described through seven specifications, then shown in motion.

Specification What it answers
Customer journey maps What visitors and the administrator go through, and what the design does at each step
Software architecture (SAD) How the system is organised, the patterns it follows, and the 4+1 views
Abstract specification (ASD) What each subsystem offers and the rules the whole system keeps
Interface design (ISD) Screens, public and admin HTTP interfaces, sign-in, internal interfaces
Component design (CSD) Components, their parts and how they are wired
Data structure design (DSDS) Domain model, values that travel between layers, data design decisions
Algorithm design (ADS) Upcoming or past, name matching, cover framing, photo preparation, page refresh, rate limits, first sign-in enrolment
Behaviour models Sequence, communication, state machine and timing diagrams

Changes from v1.0

Area v1.0 (7 Sep) v2.0 (6 Oct) Decision
Scope Professor's personal site with research groups The lab's website; the professor is the director and a team member ADR-016, ADR-017
Teams and profiles Fixed groups Teams created by the admin; each profile section switched per person ADR-020
Look and navigation Top tab bar Intaglio: pinned header, side menu, photo cards, green palette ADR-018
Photos Cropped on upload Stored whole; card covers re-croppable at any time ADR-019
Running cost Not budgeted Cost of every page measured and kept inside free plans ADR-021
Admin sign-in Password only Password plus emailed code, backup codes and reset by code; mandatory ADR-022, ADR-023
Hosting and data safety Staging only, one database Production on Vercel; Neon standby every 6 hours; daily keep-alive ADR-024

Design rules

<aside> <img src="/icons/checklist_gray.svg" alt="/icons/checklist_gray.svg" width="40px" />

  1. A route handler holds no business logic.
  2. The database library is used in one kind of file only: a repository.
  3. Every input is checked on the server.
  4. One administrator signs in with a password and a code emailed to the team mailbox.
  5. Nothing published has a status or lifecycle. Saving publishes.
  6. A module never reaches into another module's storage.
  7. Secrets stay on the server.
  8. Every change is recorded in the same database transaction as the change itself.
  9. Anything that can be worked out when a page is built is worked out, not stored.
  10. English only, one light appearance, and every screen meets WCAG 2.1 AA. </aside>