All paths

Software capstone: your own project

The end of the Coding track: design and ship a project of your own on a Raspberry Pi, milestone by milestone, from the problem and the spec through modules, slices, tests and polish to a demo you can share.

Raspberry Pi 4 Model BFree7 lessons8 h4 chapters3,720 XPCoding · Expert+400 XP

0 of 7 done

What you will build

3 projects, built step by step

7 lessons in 4 chapters, about 8 hours on a simulated Raspberry Pi 4 Model B. Free, in your browser, every step checked by the simulator.

Chapter 1 project

Write the spec

Turn the problem into a written spec with user stories and an out-of-scope list, then into acceptance checks the program prints: a boundary bug the spec catches, a spec change made test first, and the spec run against the hardware.

Open it in the simulator
Chapter 2 project

Build in slices

Grow Sprout one vertical slice at a time, each a command that goes from typed text through every layer to a result: status, water, history and a setting, with bad input answered instead of crashing.

Open it in the simulator
Chapter 3 project

Polish and docs

Make Sprout feel finished: a version string and --help from argparse, options that change behavior, logging with levels, errors that are logged instead of crashing, help text that documents itself, and a README and docstrings for the next reader.

Open it in the simulator
The map

Chapter by chapter

Each lesson opens when the one before it is done, and each chapter ends in a project.

Chapter 1

Plan

Pick a problem worth solving and write a spec the program can check.

  1. Open350 XP

    Pick a problem

    Start the capstone: what makes a problem worth a portfolio project, evidence that a sensor can see it, the smallest program that helps, the edge case that would fool it, and a one-sentence problem statement for your own project.

    0 of 6 steps

  2. ProjectLocked800 XP

    Write the spec

    Turn the problem into a written spec with user stories and an out-of-scope list, then into acceptance checks the program prints: a boundary bug the spec catches, a spec change made test first, and the spec run against the hardware.

    0 of 7 steps

Chapter 2

Build

Give every job a module, then grow the product one working slice at a time.

  1. Locked350 XP

    Architecture

    Split the working script by job: pure care rules, a sensor adapter behind a read() interface with a fake for tests, JSON storage, and a report layer, so each part can change, or be tested, without touching the others.

    0 of 6 steps

  2. ProjectLocked800 XP

    Build in slices

    Grow Sprout one vertical slice at a time, each a command that goes from typed text through every layer to a result: status, water, history and a setting, with bad input answered instead of crashing.

    0 of 7 steps

Chapter 3

Prove

A test suite with fakes that finds bugs first, then polish a stranger can use.

  1. Locked400 XP

    Tests

    A test suite of plain asserts with a tiny runner that counts: boundary tests from the spec, the command handler tested through a fake probe and a fake lamp, a test that finds a real bug before you fix it, and a gate that will not start the app until every test passes.

    0 of 7 steps

  2. ProjectLocked700 XP

    Polish and docs

    Make Sprout feel finished: a version string and --help from argparse, options that change behavior, logging with levels, errors that are logged instead of crashing, help text that documents itself, and a README and docstrings for the next reader.

    0 of 6 steps

Chapter 4

Ship

A demo that cannot go wrong, a write-up, and a link to share.

  1. Locked320 XP

    Demo and write-up

    Finish the capstone: a scripted --demo mode that runs every command, a live moment with the lamp, the spec's acceptance checks run against the finished code, a one-line share card, then your README, a 60 second demo script and the Mokxi project link.

    0 of 6 steps

Syllabus

Every lesson in the course

All 7 lessons, in order, each with what it covers. Any of them opens in the editor right away.

Chapter 1

Plan

  1. Pick a problemStart the capstone: what makes a problem worth a portfolio project, evidence that a sensor can see it, the smallest program that helps, the edge case that would fool it, and a one-sentence problem statement for your own project.
  2. Write the specTurn the problem into a written spec with user stories and an out-of-scope list, then into acceptance checks the program prints: a boundary bug the spec catches, a spec change made test first, and the spec run against the hardware.
Chapter 2

Build

  1. ArchitectureSplit the working script by job: pure care rules, a sensor adapter behind a read() interface with a fake for tests, JSON storage, and a report layer, so each part can change, or be tested, without touching the others.
  2. Build in slicesGrow Sprout one vertical slice at a time, each a command that goes from typed text through every layer to a result: status, water, history and a setting, with bad input answered instead of crashing.
Chapter 3

Prove

  1. TestsA test suite of plain asserts with a tiny runner that counts: boundary tests from the spec, the command handler tested through a fake probe and a fake lamp, a test that finds a real bug before you fix it, and a gate that will not start the app until every test passes.
  2. Polish and docsMake Sprout feel finished: a version string and --help from argparse, options that change behavior, logging with levels, errors that are logged instead of crashing, help text that documents itself, and a README and docstrings for the next reader.
Chapter 4

Ship

  1. Demo and write-upFinish the capstone: a scripted --demo mode that runs every command, a live moment with the lamp, the spec's acceptance checks run against the finished code, a one-line share card, then your README, a 60 second demo script and the Mokxi project link.
Kits

Build it on your bench too

Every lesson runs in the simulator with nothing to buy. When you want the real thing, these kits have the parts.

Have a kit already?

Find your kit

Pick the starter kit you own and run every lesson in its manual with the same parts on the same pins.

See every kit
Questions

About Software capstone: your own project

Is Software capstone: your own project free?

Yes. All 7 lessons of Software capstone: your own project are free and run in your browser, with nothing to install and no parts to buy before you start.

Do I need a real Raspberry Pi 4 Model B?

No. Every lesson runs on a simulated Raspberry Pi 4 Model B with its parts on the canvas, and the simulator checks each step as you go. When you want to build it for real, the same wiring and code work on a real board.

How long does Software capstone: your own project take?

About 8 hours: 7 lessons in 4 chapters, each one a few short steps. Your progress is kept, so you can stop after any lesson and pick up where you left off.

What will I build?

Each chapter ends in a project that puts it together: Write the spec, Build in slices and Polish and docs.

Where do I start?

With "Pick a problem", and each lesson builds on the one before it. New to circuits? Electronics basics is the course that starts from zero.