1. Courses
  2. Ship a Project End to End
  3. Capstone

Capstone project for Ship a Project End to End

Ship the Partner app's delivery slot checker

Mangrove Market's 1,800 partner corner shops keep phoning the distribution centres to ask when their next delivery arrives. Imran, the product manager for the Partner app, wants a small delivery slot checker: a shop enters its shop code and sees its next delivery slot (date, time window and DC), or a clear error for an unknown or badly formed code. Build it the way this course ships software, in a public GitHub repository: a small Node and TypeScript API with a JSON file standing in for the database, and a plain web page that calls it. You may start from the store stock checker in the first lesson. Take it from an issue to v1.0.0 through CI, a ruleset, a reviewed PR and a tag-triggered release, then plant and report a realistic bug (for example, shop codes with a new prefix are rejected) and ship v1.0.1 as a test-first hotfix. Add the team playbook files, and finish with a short delivery report from your repo's own data. If you cannot deploy the API to a server, run the image locally and say so in the README.

What you hand in

  1. A public GitHub repo with at least four merged PRs (CI, feature, release workflow, hotfix), each linked to an issue
  2. CI on Node 22 and 24, a ruleset that requires both checks, and a tag-triggered release workflow with job-level permissions
  3. Tags v1.0.0 and v1.0.1 with GitHub Releases and a CHANGELOG.md, where v1.0.1 fixes the reported bug and the failing test came first
  4. CONTRIBUTING.md, a PR template and CODEOWNERS, plus an AGENTS.md if you used an AI assistant
  5. A one-page delivery report: lead time for each PR, number of deploys, change fail rate, and one playbook change you would make

Check your work

Tick each item when your project meets it. Be strict: this is the rubric the reviewer uses.

  • Every change to main after the first commit arrived through a PR with green CI
  • Only a version tag deploys, and the README says how to check what is live (the latest tag or /health)
  • Workflow permissions are set per job, and no secret or ${{ }} expression is pasted directly into a run: script
  • The hotfix PR shows the new test failing before the fix and passing after, and bumps only the patch version
  • Unknown codes return 404, badly formed codes return 400, and the page shows a clear message for both and for a network timeout
  • The playbook fits on two screens, gives a reason for each rule, and says which rules GitHub enforces
  • The delivery report shows its arithmetic, uses team-level numbers, and proposes one measurable change
  • If an AI assistant helped, the PR descriptions say what it did, and the author can explain every line

0 of 8 checked

Model answer

The model answer opens once your capstone passes the review, so you can compare your work with an outline of a strong submission.

Hand in your capstone

Your links are checked automatically, then the work is scored against the rubric above, item by item, with comments. A pass counts toward the course certificate and shows on your profile.

Loading…