All BlueprintsCommerce

Event ticketing with door check-in

Tickets for one event: they sell until the allocation runs out, every seat carries its own code, and the door admits each code once, whatever the signal is doing.

L2–L4Level range
8Sprints
40Tasks
Backend and frontendBuilt as

What you’ll build.

By the last sprint

A ticket shop and a door scanner. People buy tickets until the event sells out, and each gets their own code even if somebody else paid. On the door a phone scans that code and says let them in, says already used the second time, and keeps working where there is no signal.

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.

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.

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.

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.

Background jobs

You can hand work to a worker, tell the user it is in progress, and show the result when it lands — and say what happens to that work if the process dies halfway.

Realtime updates

You can push a change from the server to an open page and have a second browser see it — and say what happens to a client that was disconnected while it changed.

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. 8 sprints, 40 tasks.

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

Sprint 01

Accounts, and borrowed phones

Somebody can make an account, and a phone signed in for one night stops being signed in.

4 tasks
  1. A buyer can register and land signed in
  2. Signing back in survives a week away
  3. Organiser and door accounts exist, and cannot be self-issued
  4. A venue phone can be signed out from somewhere else
Sprint 02

Putting an event on sale

An event goes on sale with a fixed allocation, and sells out at exactly that number.

5 tasks
  1. An organiser can put an event on sale
  2. A buyer can find an event and see what is left
  3. A buyer takes up to six tickets in one go, or none at all
  4. Three hundred buyers and a hundred tickets produce a hundred sales
  5. Selling out is a state of the product, not an error
Sprint 03

A code of their own

Every seat sold reaches the person who will use it, carrying a code nobody can guess.

6 tasks
  1. Every seat in a sale gets its own code
  2. A code cannot be worked out from a code you already hold
  3. A buyer can pass a ticket to whoever is using it
  4. A ticket opens on a phone with no account and no signal
  5. An organiser can issue a ticket nobody bought
  6. A ticket link that no longer means anything says so
Sprint 04

Working the door

Somebody on the door scans a code and gets an answer they can act on without reading.

5 tasks
  1. A doorkeeper can scan a code and admit somebody
  2. Only the people working this door can admit anybody
  3. The answer is readable at arm's length in the dark
  4. A doorkeeper picks the event they are working
  5. A ticket is found by name when the phone is dead
Sprint 05

Once, and only once

A code admits its holder exactly once, and two phones scanning it together produce one admission.

5 tasks
  1. A second scan of the same code is refused, with a time and a door
  2. A ticket can only take the steps that make sense
  3. Two phones scanning one code at the same instant admit one person
  4. A doorkeeper can undo an admission they made by mistake
  5. Every scan leaves a record, including the refused ones
Sprint 06

When the signal drops

The door keeps scanning with no connection, and what it sends afterwards is counted once.

5 tasks
  1. The door keeps answering with no connection
  2. Scans made offline reach the server when the signal returns
  3. The same scan arriving twice is one admission, not a refusal
  4. A code admitted twice offline is surfaced, not hidden
  5. The doorkeeper can see what has not been sent
Sprint 07

Taking a ticket back

A ticket taken back stops working at the door, and the organiser watches the count without pressing anything.

5 tasks
  1. An organiser can take a ticket back, and the seat goes back on sale
  2. A ticket that was taken back is refused, with its own reason
  3. A phone that was away catches up before it admits anybody
  4. The organiser watches the count climb from the back of the room
  5. A refund and a scan in the same second have one winner
Sprint 08

Somewhere a stranger can reach

The product is on the internet at its own address, the door works at the venue, and a bad release can be undone while people are queueing.

5 tasks
  1. A stranger can buy a ticket without the developer's laptop
  2. Every value the product needs comes from where it runs
  3. Ticket messages genuinely leave and arrive
  4. The door works on a phone at the venue, camera and all
  5. A bad release can be undone while people are queueing

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

One event, two products sharing a database, and the one promise the whole thing rests on.

The ninety minutes at the door

Domain you will not have: queue rates, venue wifi, volunteers, comps, and why the door is a different product from the shop.

Build event ticketing with door check-in.

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