21. Backend Capstone Project
Backend Capstone Project — VoidShop API
Every concept you have studied across this curriculum converges here. You will build VoidShop — a complete, production-grade e-commerce backend API. This is not a tutorial to follow step by step — it is a specification for a system you must design, build, and deploy yourself, making real architectural decisions at every step.
When complete, this project will demonstrate that you can architect, implement, secure, and deploy a real-world backend. That is what you put on your portfolio and what you talk about in interviews.
System Requirements
VoidShop is an e-commerce platform API that must support the following features, implemented end-to-end:
- User authentication: Register, login, logout, password reset via email, JWT-based sessions with refresh tokens
- Product catalog: Products with categories, images, variants (size/color), inventory tracking
- Shopping cart: Persistent cart (survives browser close), add/remove/update quantities, real-time inventory checks
- Order processing: Place order, Stripe payment integration, order status tracking
- Email notifications: Welcome email, order confirmation, shipping update via background jobs
- Admin panel API: Role-based access, product management, order management, user management
Database Schema Design
API Endpoints Specification
Technical Stack
Node.js 20 + Express. Alternatively: Python 3.12 + FastAPI.
PostgreSQL 16 via Prisma ORM (Node) or SQLAlchemy (Python).
Redis via BullMQ for background jobs (emails, order processing).
Stripe (payment intents + webhook handler for fulfillment).
Nodemailer + SendGrid SMTP. All emails go through BullMQ queue.
Docker Compose for local development. Railway or Render for production.
Architecture Requirements
Your implementation must demonstrate these specific patterns from the curriculum:
- Module 1 — HTTP: Correct HTTP methods and status codes for every endpoint. Never a 200 on an error.
- Module 3 — REST: Fully RESTful URL structure. Nouns, not verbs. Proper nesting for order items.
- Module 4 — Middleware: Request logger, authentication middleware, admin authorization middleware, centralized error handler.
- Module 6 — SQL: At least one raw SQL query with a JOIN (for order history with product details).
- Module 8 — Auth: JWT access tokens (15 min) + refresh token rotation (httpOnly cookie, 30 days).
- Module 9 — Passwords: bcrypt with 12 rounds. Constant-time comparison. No information leakage on login failure.
- Module 10 — RBAC: Separate middleware for customer and admin routes. Ownership checks on orders.
- Module 11 — Webhooks: Stripe webhook endpoint with signature verification. Idempotent processing.
- Module 13 — Background Jobs: BullMQ worker for sending order confirmation emails asynchronously.
- Module 14 — Config: All secrets in environment variables. Validation on startup. Rate limiting on auth routes.
- Module 15 — Docker: Dockerfile and docker-compose.yml that spins up API + PostgreSQL + Redis.
Deployment Checklist
Before calling this project complete, verify every item on this production readiness list:
- ✅ All endpoints tested with a tool like Postman or Bruno (export the collection)
- ✅ Environment variables documented in
.env.example - ✅ No secrets committed to Git (
git log --all --full-history -- .env) - ✅ API deployed to Railway, Render, or DigitalOcean with HTTPS enabled
- ✅ Stripe webhook configured to point at your live deployment URL
- ✅ README.md documents: what the project is, how to run it locally, how to run tests, all API endpoints
Knowledge Check
Ready to test your understanding of 21. Backend Capstone Project?