
Build an ecommerce site with Django, featuring a custom user model, product variants including color and size, guest cart, image gallery, reviews, and AWS deployment with S3 and Elastic Beanstalk.
Explore building a Django ecommerce site from homepage to product detail, cart, checkout, reviews, and admin management, using a custom user model with email login and product variants.
Install Atom editor from atom.io and Git from git-scm, then configure your Git identity with a name and email.
Create a dedicated virtual environment to isolate your Django ecommerce project from global Python packages. Use Git Bash to create and activate the env, then verify isolation with pip freeze.
Install Django via pip, pinning to version 3.1, then create a Django project in a virtual environment, run the server with python manage.py runserver, and verify installed packages.
Define the home url pattern and create a views home function that returns an http response; confirm the home page loads by running the server.
download the great cart bootstrap template from the resource zip, extract it, then configure django to render home.html via a templates folder and update settings.py to enable template rendering.
Learn to integrate a bootstrap template into a Django project by configuring static files, creating a static directory, updating settings, collecting static files, and loading them in templates.
Create a base template in Django, extend it in pages, define block content, and modularize header, navbar, and footer with includes and static loading for assets.
Download free bootstrap practice templates featuring login, registration, ecommerce components, product cards, and a cart; copy html into your project, but never use in production without the required license.
Create a category model for a Django e-commerce app with name, slug, description and image fields; register it in admin, run migrations, and fix the plural name for proper display.
Learn how to replace Django's default username login with a custom user model that uses email authentication, overriding the built-in auth while preserving Django features.
Create a Django custom user model in an accounts app, use a custom account manager to log in with email, and apply migrations for a clean ecommerce database.
Configure the django admin for a custom user model by making the password read-only, customizing list display and links, and setting read_only_fields and ordering to date_joined.
Configure django media files by adding media url and media root, update urls with static, and verify media uploads for category images while preparing slug auto-population in the next lesson.
Pre-populate category slugs in django by configuring a slug field, updating admin to auto-fill slugs from category names, and running migrations; data lives in sqlite3.
Install SQLite Studio to download, launch, and connect to your SQLite3 database, then explore tables and data such as category and its structure.
Create a store app and a product model with fields for name, slug, description, price, image, stock, available, and a category foreign key with cascade delete; configure admin and migrations.
Add products to the Django ecommerce site by uploading images, entering name, description, price, stock, availability, and category, then save and prepare to display them in the template.
Fetch all available products in the home view, pass them to the template context, and use a for loop to render each product’s name, price, and image url.
Set up the store page by creating a store URL, wiring the project and store app urls, implementing a store view, and rendering store.html with base.html and static assets.
Display all available products on the store page by querying is_available true products, pass them to the store template, and render name, price, image, and dynamic item count.
Learn how to display products by category in a Django ecommerce site by creating a slug-based url, retrieving the category with get_object_or_404, and filtering products by category.
Learn to create a Django context processor that fetches all categories and exposes them to every template, enabling navbar links that route to category-specific product pages.
Display store categories by looping over links from a context processor, showing category names with their get_url and adding an all products store link to the store page.
Create a category and product slug based url to render a product detail page, wiring a product_detail view to store templates, load static assets, and prepare for dynamic stock indicators.
Develop a single product view in Django ecommerce app by querying the product model, obtaining the category slug, and rendering dynamic details—name, price, description, and image—in the product detail template.
Add a get_url method on the product model using reverse with category slug and product slug to link to the product detail page, and update templates for product links.
Replace the demo banner by swapping the image in the static images folder and updating home.html to use cover.jpg.
Product out of stock tag guides handling no-stock scenarios by toggling the add to cart button with a stock check in product detail.html and rendering a red out-of-stock tag.
Initialize a git repository for your Django ecommerce project and push it to GitHub. Configure your identity with git config and set a gitignore for media files.
Create a Django carts app, wire its urls and views, and design a cart page using a bootstrap template with static images.
Define Django cart and cart item models with cart_id, date_added, product and cart foreign keys, and cart_quantity; configure on_delete cascade, register in admin, and run migrations to enable cart functionality.
Add to cart uses the session key as the cart ID to add a product, update cart item quantity, and redirect to the cart page.
Learn to build a Django cart view that retrieves a cart by id, gathers active cart items, calculates total and quantity, and passes data to the cart template.
Build the cart page by iterating cart items, showing images, titles, and price, updating quantities with plus/minus, and calculating subtotal, tax, and grand total.
Calculate tax and grand total in the cart by applying a 2% tax to the total, adding it to get the grand total, and pass both to the template.
Learn to decrement product quantities and remove cart items in a django ecommerce app by wiring minus and remove actions in views, URLs, and templates.
Check cart state and render items if present; otherwise show an empty cart message with a continue shopping button to the store, and support adding, updating quantities, removing items.
Fix add to cart links in the Django ecommerce app by wiring the store template to the add_cart URL, linking titles to detail pages and enabling view cart.
Explain how to check if a product is in the Django cart using cart item filters and the session key, and toggle add to cart and view cart buttons.
Develop a Django context processor to compute cart item quantities and expose cart_count to templates for a dynamic navbar cart icon.
Replace the add to cart with a view details button on product listings, guiding users to the product detail page to check stock, select variations, and purchase.
Learn to implement a Django paginator that matches Bootstrap styling, show six products per page, capture the page number from the query, and pass paginated items to the template.
Learn how to implement category-based product pagination in Django, adding next, previous, and dynamic page numbers to the store template while handling edge cases and template logic.
Fix the store page unordered object list warning by ordering by id, and fix cart errors by handling object does not exist and initializing tax and grand total to zero.
Build a Django ecommerce search: add a search URL, create a view, update the navbar form, and filter products by keyword in name or description using Q.
Explore implementing color and size variations for products in a Django ecommerce app. Use a form with get/post requests, select dropdowns, and a dynamic variation model to feed the cart.
Implement a Django variation model linked to a product via a foreign key, with category (color or size), value, created date, and active flag, plus admin list edits and filters.
Fetch dynamic color options from the product variation model and render a color dropdown, enforce required selection, and prepare the add-to-cart flow for future size integration.
Implement a Django variation manager to separate color and size for product variations, filtering colors and sizes, and switch from get to post with CSRF protection to capture selections.
Learn to robustly handle dynamic product variations in a Django ecommerce app by looping through post data, validating against the variation model, and supporting color, size, brand, and other attributes.
Debug and implement product variation handling in a Django ecommerce app by mapping variations to products, adding a many-to-many variations field to cart items, and updating admin displays after migrations.
Welcome to the Project-Based Django Web Development Course where you will learn to develop a fully-featured eCommerce website and redesign any Django-based web applications.
I designed this course for anyone seeking to learn and build a Django-based custom web application. By the end of the course, you will be able to analyze, design, and develop your own eCommerce application and deploy it on the Amazon AWS Server with a custom domain name.
We’ll be building a fully custom-featured eCommerce application using a Python Django web framework. You will learn how to make your own custom user model, categories and products, Carts, Incrementing, Decrementing, and removing car items, Unlimited Product image gallery, Orders, and Payments, also we’ll be making “after order functionalities” such as reducing the quantity of sold products, send the order received email, clearing the cart, Order completion page as well as generating an invoice for the order. Also, we’ll be making a Review and Rating system where we’ll be designing interactive rating stars from scratch that even allows you to rate a half-star rating. We’ll also make my account functionalities for the customer who can easily edit his profile, profile pictures, change his account password, and manage his orders.
Finally, we will deploy this application on AWS Elastic Beanstalk with RDS Postgres DB and use AWS S3 Bucket for media storage. Additionally, we’ll configure a custom domain name, set up AWS Route 53, and install the Free SSL Certificate provided by AWS.