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.
Recommended project characteristics¶
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.