Skip to content

Semester Project

The semester project is the integration point for the course. Teams build a small but complete software system while maintaining engineering evidence throughout the repository.

A suitable project should have:

  • Multiple user-visible workflows.
  • Persistent or meaningful domain state.
  • At least one external boundary (API, database, file, device, or service).
  • Enough complexity to justify architecture and testing decisions.
  • A scope that supports incremental delivery during one semester.

Avoid projects whose difficulty is dominated by collecting a huge dataset, learning an unfamiliar framework, or implementing one algorithm without meaningful software engineering concerns.

Required repository evidence

  • README with setup and run instructions.
  • Product scope and backlog.
  • Issues linked to changes.
  • Architecture/design documentation and ADRs.
  • Pull requests and peer review.
  • Automated tests.
  • CI workflow.
  • Release/demo instructions.
  • Retrospective and known limitations.

Suggested team workflow

flowchart LR
    B[Backlog] --> I[Issue]
    I --> BR[Branch]
    BR --> PR[Pull Request]
    PR --> CI[CI + Review]
    CI --> M[Merge]
    M --> DEMO[Increment Demo]
    DEMO --> R[Retrospective]
    R --> B

The final grade should reflect both product results and the quality of the engineering process/evidence.