Context
An earlier project, and I present it as exactly that: a complete e-commerce platform I built in my learning years to cover the entire product surface of a Django backend — not a tutorial follow-along, but a from-scratch build of everything a small shop needs. It doesn't represent how I architect systems today, but it shows the foundation those skills grew from.
Scope
- Customers: registration and login with an OTP verification-code flow, full password-reset journey, profile management, multiple delivery addresses, and a wishlist.
- Catalog and orders: categorized product listings, cart, discount codes, and order history.
- Comments: product reviews wired into the catalog.
- API layer: a dedicated DRF app exposing the store over REST, side by side with the server-rendered storefront.
Engineering details
- Custom DRF permission classes — object-level ownership checks (
IsOwner) and role gates (SuperUserCanSee) instead of view-level ad-hoc conditionals. - PostgreSQL + Docker Compose — the whole stack starts with a single
docker-compose up --build. - Tests — model tests plus live-server tests, an early habit that stuck.
- Constants, validators, and custom model managers pulled into dedicated modules rather than scattered through views.
What it demonstrates
Breadth at the foundation level: authentication flows beyond the happy path, permission design, relational modeling for a real domain, REST alongside server-rendered pages, and a containerized development environment — the groundwork underneath the microservices and async systems I build professionally now.