Full-stack grocery delivery platform with three roles: Customer, Shop Owner, and Delivery Agent.
- Next.js 15 (App Router) · MongoDB + Mongoose · NextAuth v5
- Pusher (real-time) · Stripe + COD · OpenAI (chat suggestions)
- Framer Motion · Tailwind CSS · Leaflet · Vercel
Foundation npm packages are installed (see docs/IMPLEMENTATION_CONTEXT.md QC-05 for versions).
| Role | Entry after login |
|---|---|
| Customer | /customer/shops |
| Owner | /owner/dashboard |
| Agent | /agent/available |
- Copy env:
cp .env.example .env.localand fill values. - Install:
npm install - Run:
npm run dev - Open http://localhost:3000
See docs/IMPLEMENTATION_CONTEXT.md for per-issue implementation notes.
Board: https://github.com/DarshanCode2005/Quickcart/issues
65 atomic issues (QC-00–QC-64) with Learn / Build / Acceptance sections. See docs/ISSUE_MAP.md for QC ID → issue number mapping.
Re-create issues (idempotent): python3 scripts/create_github_issues.py
Work through GitHub Issues in milestone order (M0 → M8). Each issue has Learn, Build, and Acceptance criteria sections.
| Milestone | Focus |
|---|---|
| M0 | Repository setup |
| M1 | Foundation, models, auth |
| M2 | Customer flow |
| M3 | Owner flow |
| M4 | Agent flow |
| M5 | Pusher + chat + AI |
| M6 | Payments |
| M7 | UI polish + tracking |
| M8 | Deployment |
app/
(auth)/ login, signup
(customer)/ shops, cart, checkout, orders
(owner)/ dashboard, inventory, orders
(agent)/ available, delivery
api/ REST + webhooks
components/ ui, map, chat, order
lib/ db, auth, stripe, pusher, ai
models/ Mongoose schemas
hooks/ usePusher, useLocation, useCart
- Pusher: required for live tracking and chat on Vercel (no custom Socket.io server).
- OpenAI:
/api/ai/suggestonly — never exposeOPENAI_API_KEYclient-side. - OTP: hashed with bcrypt; emailed via Nodemailer.
- Stripe INR: amounts in paise (smallest unit).
MIT