Skip to main content
Navigation
HomeTechnical ReferenceJournalGitHubGitHub
Sidebar — toggle document categories via the logo
Scuba Dive Dubai — Django E-Commerce Platform

Scuba Dive Dubai — Django E-Commerce Platform

December 11, 2019

Overview

Scuba Dive Dubai is a complete Django e-commerce platform for selling scuba diving equipment online. It implements the full shopping workflow — product browsing with category filters, cart management with item increment/merge logic, coupon code application, billing and shipping address collection, and order checkout.

The admin interface provides CSV upload functionality for bulk inventory management, allowing administrators to populate or update product catalogs, categories, and pricing through spreadsheet imports. User registration automatically creates a ShopProfile via Django signals, and Django AllAuth handles all authentication routes with pre-built templates.


Key Features

  • Complete e-commerce flow: Product listing → category filtering → item detail → add to cart → checkout
  • Smart cart management: Checks for existing orders, increments quantities or adds new items intelligently
  • Coupon system: Apply discount codes during checkout
  • Address management: Collect billing/shipping addresses with option to save for future orders
  • CSV bulk import: Admin can upload spreadsheet files to populate or update inventory via Django shell command
  • Django AllAuth integration: Full authentication system — registration, login, password reset, email verification — with pre-styled templates
  • Automatic ShopProfile creation: Django signal fires on user registration to create the required profile

Architecture

ServiceRole
DjangoFull-stack web framework with class-based views
SQLiteDevelopment database (package is 471KB)
AWS S3Static files and media storage (Django Storages)
GunicornWSGI server for AWS EC2 production deployment
MDBootstrapResponsive frontend styling

E-Commerce Flow

Landing page (all items) → Filter by category → View item detail

Add to cart (check existing order)

Cart page → Apply coupon → Enter billing/shipping → Checkout

Tech Stack

LayerTechnology
FrameworkDjango (Python)
AuthenticationDjango AllAuth (registration, login, social)
FormsDjango Crispy Forms (Bootstrap 4 styling)
CountriesDjango Countries (country selection in checkout)
StorageDjango Storages + AWS S3 (media/static files)
FrontendMDBootstrap, SCSS, vanilla JavaScript
ProductionGunicorn + Heroku / AWS EC2
DatabaseSQLite (development)