Getting Started with QuickKart
What is QuickKart?
QuickKart is a Blinkit-style quick-commerce marketplace built in Rust (Axum + Maud + HTMX + PostgreSQL). A single server binary hosts three surfaces: the customer storefront at the site root, the Seller Hub at /seller, and the Admin panel at /admin.
It is a demo application: no real SMS is sent (the login OTP is shown on screen), payments run through a sandboxed mock gateway called QuickPay (no real money moves), and every product image is locally generated SVG placeholder art — no uploads, no external assets.
The three roles
- Customer — browses categories, searches, fills a cart, checks out with UPI/Card (sandbox) or Cash on Delivery, tracks orders live, and writes reviews. Any phone number that logs in becomes a customer automatically.
- Seller — any customer can register a store from
/seller. Once an admin approves the store, the seller can submit products. Each product (and every later edit) goes through the admin approval queue before appearing in the storefront. - Admin — runs the whole operation from
/admin: advances orders through delivery, approves sellers and products, manages the catalog, banners, users, store settings, and reads sales reports.
Demo accounts
Login is phone + OTP. In demo mode the 6-digit OTP is displayed right on the login modal after you press Send OTP — no SMS ever arrives, just type in what you see.
| Phone number | Role | What you get |
|---|---|---|
| 9999999999 | Admin | The seeded admin account. The Account menu gains an "Admin Panel" link to /admin. |
| 8888888888 | Seller | A pre-seeded, already-approved demo store with a product — explore the Seller Hub with zero setup. |
| Any other 10-digit number | Customer | A fresh customer account is created on first login. Fill in your name later under Account → Profile. |
Starting the stack
Two things must run: the bundled portable PostgreSQL, then the app itself.
- Start PostgreSQL (portable install, data directory
pgdata, port 15432). In PowerShell:
Wait for& "C:\Users\Magnet Brains\blinkit-tools\pgsql\bin\pg_ctl.exe" start -D "C:\Users\Magnet Brains\blinkit-tools\pgdata" -o "-p 15432"server started. (Stop it later with the same command, usingstopinstead ofstart.) - Run the app from the project root:
On first start the app connects usingcargo runDATABASE_URLfrom.env(pointing at port 15432), runs its migrations automatically, and seeds demo data — categories, products, banners, the admin account and the demo seller. Later starts skip seeding. - Open http://localhost:3000 in your browser. You should see the home page with banners, a category grid and product rails.
Tip: if port 3000 is busy, set BIND_ADDR (for example 127.0.0.1:3001) in .env and restart. If startup fails with "failed to connect to PostgreSQL", the database simply isn't running yet — do step 1 first.