All BlueprintsCommerce
Second-hand marketplace
A place to sell the things you no longer want. Sellers put them up with photographs, buyers ask about them in a thread attached to the item, and the moment one is sold it stops wasting everybody else's time. Both sides are members of the public, either of them can behave badly, and the product is the only thing standing between them.
What you’ll build.
A place to sell things you no longer want. Sellers list items with photos. Buyers find them, ask questions in a thread only those two can read, and hear about replies without sitting on the page. Sold items disappear for everybody, and anything reported comes down.
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.
File uploads
You can upload a file from the browser, store it somewhere the application does not own, and show it again on a later request — and say where the bytes travelled and what the database actually holds.
Search and filtering
You can search a list by keyword, combine that with filters, and say what the database does to answer the query — including which part uses an index and which part cannot.
Comments and replies
You can store threaded comments, render a thread without a query per comment, and handle a comment deleted with replies under it.
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.
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.
Moderating what gets published
You can hold content for review, let a moderator approve or reject it, and show the author what state theirs is in.
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.
Who you are dealing with
Somebody can make an account, come back to it, and be looked at by a stranger before they deal with them.
5 tasks
- Anybody can make an account and land signed in
- Coming back tomorrow, and leaving a shared laptop
- A profile a stranger can look at before dealing with you
- Repeated wrong passwords stop being worth trying
- Moderator accounts exist, and cannot be self-issued
Something to sell
Somebody can put an item up for sale with photographs of it, and take it down again.
5 tasks
- A seller can put one item up for sale
- A listing carries photographs of the actual thing
- A file from a stranger is not what it says it is
- Your own listings in one place, and nobody else's to edit
- Taking a listing down, and putting it back up
Finding it
Somebody can find another person's item among everything else that is for sale.
5 tasks
- Everything for sale, on one page, newest first
- Searching by what the thing is called
- Narrowing by price, condition, category and distance
- Page two does not repeat page one
- Nothing matched, and the page still says something useful
Asking about it
A buyer can ask the seller about one item, in a thread only the two of them can read.
5 tasks
- A buyer can ask the seller about a listing
- The conversation shows the item it is about
- One inbox for the things you are buying and selling
- Nobody but the two of them can read it
- A listing that has gone leaves the conversation standing
Telling the other person
The other person finds out a message is waiting without sitting on the page, and can stop being told.
5 tasks
- A new message reaches somebody who is not looking
- A count of what is waiting, right wherever you look
- Being told less, without disappearing
- A notification that points at something that is gone
- When nobody has answered, both of them can see it
Sold
A seller marks an item sold, it stops showing to everybody, and only one buyer can be the one who got it.
5 tasks
- A seller marks it sold, and it stops showing
- Holding it for somebody who says they are coming
- The other buyers hear it from the product
- Two buyers, one bicycle, and only one of them gets it
- A sold item cannot quietly become unsold
Behaving badly
Anybody can report a listing, a message or a person, and what is reported comes down.
5 tasks
- Reporting a listing, a message or a person
- A queue a moderator can actually work
- Taking down something that is already out there
- Banning a person, and deciding what happens to their things
- What the product cannot see, it cannot protect
In front of strangers
It is on the internet at its own address, and a release that turns out to be wrong can be undone while people are mid-deal.
5 tasks
- A stranger can reach it without you
- The photographs are still there after the next deploy
- Values that only existed on your laptop
- Mail that genuinely leaves, from an address worth typing
- A release that turns out to be wrong, on a Saturday
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 strangers it sits between, and what finished means.
How a second-hand sale actually works
Domain you will not have: why listings go stale, why nobody answers, and what trust is made of when neither side has any power.
More commerce Blueprints.
Corner shop storefront
A small shop sells online. The shelf shows what is genuinely there, a basket survives the tab it was made in, the shop never takes money for a tin it does not have, and the buyer can follow their order until they pick it up.
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.
Restock waitlist
A waiting list for what a small shop has run out of. People ask to be told when it returns, and when three come back the stock goes down the line in the order they asked: held long enough to act on, offered to nobody behind them until that window closes, and never offered to the same person twice.
Build second-hand marketplace.
Start your free week. Adaeze runs your kickoff, and Lars reviews every pull request.