All BlueprintsCommerce

Food ordering with options

Ordering for one restaurant, where a dish is a set of choices rather than a price. A size replaces the base price, extras add to it, some extras only exist on some sizes, and the total the customer is charged is worked out from what they chose rather than taken from the browser.

L2–L4Level range
7Sprints
36Tasks
Backend and frontendBuilt as

What you’ll build.

By the last sprint

A takeaway ordering site. Customers pick sizes and extras, order the same dish two different ways, and pay exactly the price they were shown. They follow it from accepted to ready. The restaurant runs its own menu, and an extra that runs out disappears before anybody picks it.

What you’ll learn.

Each sprint is built around one skill. You show you have it in a pull request your team reviews, then explain it in a walkthrough.

Authentication

You can register and sign in a user, keep a request authenticated without asking for the password again, and explain where the credential lives in the browser and why there rather than somewhere else.

Roles and permissions

You can give users different roles and have the server refuse what a role may not do — not merely hide the button — and show the refusal working against a request the interface never offered.

A cart that survives

You can add, change and remove items, keep the cart across a logout and login, and show a total that reflects prices as they are now.

An order that moves through states

You can move an order through its states, refuse a transition that should not happen, and show the history of how it got where it is.

Stock that cannot go negative

You can decrement stock on a sale and prove that a hundred simultaneous orders for ten items produce ten sales and ninety refusals.

Notifications people do not mute

You can notify a user when an event concerns them, show an unread count that survives a refresh, and honour a preference that says stop.

Going live

Somebody who has never met you can open a URL and use the product — and you can say what is different about the copy running there, where its secrets come from, and what you do when a release turns out to be wrong.

The roadmap. 7 sprints, 36 tasks.

Every sprint has a goal and a set of tasks. Open a sprint to see the tasks you will pick up.

Sprint 01

Getting in

Somebody can make an account and come back to it, and the counter's accounts cannot be issued from the sign-up form.

4 tasks
  1. A customer can register and land signed in
  2. Coming back next Friday to the same account
  3. Leaving the account on a borrowed phone
  4. Counter accounts exist, and cannot be self-issued
Sprint 02

A dish has a shape

The restaurant describes what it sells, including the choices a dish comes with and what each one does to the price, and nobody else can.

6 tasks
  1. The counter has a screen for the menu
  2. A dish comes in sizes, and the size is the price
  3. Extras that add, and extras that only come on some sizes
  4. A question the kitchen cannot guess the answer to
  5. A customer can read the menu the counter wrote
  6. Asking to change the menu without being the counter is refused
Sprint 03

Choosing, and what it costs

A customer builds a dish from its choices, the basket keeps each one exactly as it was built, and the total charged is worked out from the choices rather than taken from the browser.

6 tasks
  1. The price follows every choice
  2. Nothing reaches the basket with a question unanswered
  3. The same dish, chosen two ways, is two lines
  4. A basket that is still there on Friday
  5. The total is the kitchen's arithmetic, not the browser's
  6. The price changed while they were choosing
Sprint 04

The ticket the kitchen cooks from

An order is a record of exactly what was chosen and what it cost, it moves from accepted to ready, and it still says the same thing next month.

5 tasks
  1. The counter sees tonight's orders, spelled out
  2. An order still says what it said when it was placed
  3. Marking an order on, and not marking it backwards
  4. A customer follows their own order and nobody else's
  5. Stopping an order, from either side
Sprint 05

No halloumi tonight

An option can run out while the dish it belongs to does not, and nobody is sold a choice the kitchen has not got.

5 tasks
  1. Taking one thing off for the night
  2. A dish whose only cheese has gone
  3. Counting down the last six portions
  4. Twenty people, six portions
  5. It ran out while it was in their basket
Sprint 06

Telling them

A customer hears about their own order without keeping a page open, and is never told something that has stopped being true.

5 tasks
  1. A receipt that says what they chose
  2. Told the moment it is ready
  3. Nothing said about an order that no longer exists
  4. Told when the kitchen cannot make what they ordered
  5. The counter is told an order has landed
Sprint 07

Open for business

The restaurant is on the internet at its own address, taking real orders while the laptop it was built on is shut.

5 tasks
  1. A stranger can order without you
  2. Nothing it needs exists only on one laptop
  3. Messages that genuinely leave the building
  4. An address worth typing
  5. A release you can put back on a Friday night

Read before you build. The best engineers do.

Senior engineers read the docs before they touch the code. Every Blueprint comes with short documents on the product and its world, the kind a team hands a new hire. Read them well and you ask sharper questions and walk into every review prepared.

What you are building

The product, the two people who use it, and what finished means.

How a restaurant actually prices a dish

Domain you will not have: sizes, modifiers, why a size is not an extra, and what a menu price includes.

Build food ordering with options.

Start your free week. Adaeze runs your kickoff, and Lars reviews every pull request.