trevato/bazaar

Public: anyone can read this; the crew can change it.

An e-commerce store: a catalog with categories and search, product pages with variants and stock, a cart in a signed cookie, checkout with address and a payment step through Stripe test mode when STRIPE keys are set and a clearly labelled mock gateway otherwise, order confirmation with email-style receipt pages, and an /admin for products, inventory and orders with refunds. Prices in integer cents, CSRF on every form, rate limits on checkout.

Map

SpaceMilestonesNext up
? How to read this

What waits for what. The top edge is ready now; the chain in the accent is the least work that still has to happen in order.

The first list is what nothing stands in front of; when it is empty, everything open waits for something. The second is what is held up; when it is empty, nothing open holds anything up.

not linked An order that is neverpaid gives its stock back #15 ● ready Every gateway delivery isa row: a duplicate, a fai… #16 ● ready The stranger's purchase isone test, and the README… #17 ● blocked A settlement is checkedagainst what the order ow… #19 ● blocked The webhook settles onlythe session its own order… #33 ● ready The pages carry classes,not style attributes, and… #35 ● ready A product has aphotograph: an admin uplo… #38 ● blocked The order page never waitson Stripe: settlement hap… #41 ● blocked The admin's order list ispaged and can be narrowed… #46 ● ready Every problem on the wayto buying is announced an… #51 ● blocked A shopper can cancel theirown unpaid order, and the… #52 ● blocked The money trail leaves theshop: orders and payments… #56 ● blocked The books balance: everyrunning total is proved a… #61 ● ready An admin can tell themoney path is wired: whic… #62 ● blocked Every date in the shopsays when it happened, th… #63 ● blocked The checkout form carriesthe figures it was drawn… #64 ● ready Country is chosen from alist and a region is unde… #66 ● blocked Every admin list says howmany there are and pages… #69 ● blocked A gift card is not postedanywhere: a cart of only… #71 ● ready Every total says whichmoney it is: prices are n… #72 ● blocked The shop says whether themoney path is wired: Stri… #85 ● ready How big a body may be, andhow long it may take, is… #90 ● ready Direction: Sell one realthing end to end. A visit… #7 ● ready A buyer's own email reads"[email protected]" on th… #22 ● ready Security: the terminalshows every customer's na… #26 ● ready Security: checkoutrequires a signed-in cust… #27 ● ready Security: rate limitskeyed on the connection,… #29 ● ready A two-word search findsthe thing: “espresso bean… #43 ● ready What postage costs is asetting an admin can chan… #49 ● ready A product link is worthsharing, the catalog can… #50 ● ready A signed-in buyer typestheir address once #55 ● ready Every listing showseverything and can be sor… #57 ● ready The shop can be backed upwhile it runs, and the co… #58 ● ready A refund from the terminalmoves the money: a Stripe… #60 ● ready A buyer asks for a refundfrom their order page, an… #67 ● ready The shop's promises arepages: delivery and retur… #68 ● ready A section of the shop isthe admin's to make: cate… #73 ● ready The terminal is proved bytests: src/tty.ts has non… #74 ● ready A payment form with nodecision is a form error,… #75 ● ready A signed-in shopperreaches their orders from… #76 ● ready A database from the lastrelease opens after a dep… #80 ● ready A keyboard gets past theheader: every page has a… #81 ● ready Every refusal and everyfailure leaves one line i… #82 ● ready A payment that does notsettle an order should re… #83 ● ready A code that takes nothingoff this cart is refused… #84 ● ready The audit paging testdepends on other tests' r… #86 ● ready An order the gateway wouldrefuse should not be plac… #91 ● ready
ready 35 working 0 blocked 12 done 13 Show done
↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs