E-Commerce Web Application

MINIME — a minimalist, full-stack sustainable footwear & apparel store built with Django REST Framework and vanilla JS. Features product catalog with 20+ items, shopping cart, wishlist, JWT + Google/Facebook OAuth, Stripe payments, multi-language support (EN/FR/AR with RTL), and an admin analytics dashboard.

RoleSolo Full-Stack Developer
Year2025
Django 6.0.3Django REST FrameworkVanilla JS ES ModulesViteMongoDB (django-mongodb-backend)Stripe APIJWTOAuth2 (Google/Facebook via django-allauth)PWAChart.js
E-Commerce Web Application
20+Products in catalogue
3Languages (EN/FR/AR + RTL)
PWAInstallable, offline-ready
76Lighthouse Performance (mobile, Oct 2026)

The challenge

  • Problem Create a simple, stylish, and minimal e-commerce site as a first major project to learn core web fundamentals and showcase a personal/minimal aesthetic.
  • Constraints Small team of 3, but handled most work solo (cahier de charge, report, conception, diagrams, presentation); time/budget constraints; scope expanded from frontend-only to full-stack.
  • Hardest blocker Switching backend from Node.js to Django and initial failure to implement Google sign-in.
  • Root cause Steep learning curve managing stack change and authentication complexity with multiple failed attempts.
  • Fix Persistent iteration and learning the correct implementation approach.

The approach

  • Architecture Full-stack DRF + vanilla JS ES Modules (Vite); MongoDB persistence with MongoDB-compatible migrations.
  • Auth JWT authentication + social auth (Google/Facebook via django-allauth).
  • Payments Stripe with webhook handling.
  • UX Minimalist, clutter-free design; EN/FR/AR + RTL; cart/wishlist in LocalStorage with event delegation.
  • Features PWA (manifest, service worker), admin analytics dashboard with Chart.js.
  • Process Iterative development, added features over time, deployed successfully.
  • Learnings Self-reliance while open to feedback, persistence/adaptability when switching stacks, iterative learning yields best results.
Impact

Completed, presented and deployed — earned the best grade in the class.

Screenshots

What I'd do differently

  • I switched the backend from Node.js to Django mid-project. Next time I'd pin the stack against the auth and payment requirements before writing any UI.
  • Google sign-in only worked after several failed attempts — I learned to understand the flow end-to-end instead of patching symptoms.