About the project
The back office of a small online shop: orders, products and stock. Filter and search 300 orders, open one and move it on — pending, paid, packed, shipped — and only along moves a real shop allows. Packing takes the items off the shelf in the same database transaction as the status change, so if any line is short the whole move is refused and nothing changes. The browser never touches the database: pages read on the server, and every change goes through REST routes that validate it again with Zod.
Next.jsReactTypeScriptPostgreSQLREST APITailwind
