Capstone 15 · Independent

The Open Brief

Every other brief on this page told you what to build. This one does not, and that is harder than it sounds. Propose your own project and specify it well enough that somebody else could tell whether you had finished. That specification is the assessed part: a one sentence description naming a person and a problem, a version one that is genuinely the smallest thing that solves it, between eight and twelve acceptance criteria checkable by a stranger on a deployed URL, and an honest list of what you are deliberately not building. The common failure is not technical. It is a scope decided by enthusiasm, which produces something eighty percent finished and unshowable. Cut harder than feels right. A small thing that is complete, deployed and explained beats an ambitious thing that is not. Then build it to the standard the rest of this curriculum has been teaching: tested where it matters, authorized properly, accessible, deployed, and explained in a case study.

Concepts used

Product definitionScopingArchitectureSelf-directionEverything the curriculum taughtTechnical writing

Your dataset

Yours to choose, with its provenance and license recorded if it is somebody else's.

Milestones

1Write the one sentence: someone has this problem, and this helps by doing this.
2List everything it could do, then mark the smallest set that still solves the problem.
3Write eight to twelve acceptance criteria, each checkable by a stranger without reading your code.
4Write what you are deliberately not building, and why.
5Show the specification to one person and have them explain it back before writing any code.
6Deploy something trivial on day one, before the features exist.
7Build it, keeping every criterion demonstrably met as you go.
8Write the case study: the problem, two decisions you agonized over, what went wrong, and what you would change.

Your workspace

Build the full project here. Work through the milestones in order, in both languages.

SANKOFA SANDBOX
loading editor…
Your turn → Build it in Python first, then rebuild it in JavaScript. The logic transfers, only the syntax changes.
← All projectsNext: The Rebuild →