Learn Python and the Django Framework by building a e-commerce website

Overview

veryacademy

Django E-commerce Tutorial Series

Learn Python and the Django Framework by building a e-commerce website
The Django E-commerce project is an open-source initiative and tutorial series. Learn from a beginner level how to build an e-commerce website.

Please join our active, growing community:
Website (Coming Soon) | Twitter | YouTube

Aims of this course

The aims of this course is to:

  • learn the Django framework
  • learn how to build, test and deploy a Django application

Course Introduction

The Django E-commerce Tutorial Series is designed for students who wants to learn the Django Framework by building an e-commerce application. This course is a great way to start learning Python and the Django Framework. We start from a beginners level slowly moving into more advanced topics. I have tried to design this course to be modular so that you could also focus in on particular subjects, tutorials or aspects of Django should you prefer this mode of learning.

On this course you will be taught a wide range of skills, here are a few topics that we will be learning:

  • Django URLs, models, views
  • Django Templating
  • Introduction to Unittest
  • Testing with Pytest
  • Working with Django and Docker
  • Deploying Django Applications

Tutorials

The tutorials, found here on our YouTube channel take you through the steps of developing an e-commerce application with Python Django, predominately deploying the Django template system.

Prerequisites

  • Install Python onto your PC/Laptop
  • Optional - Visual Studio Code Editor
  • Tutorials use Windows OS (you can use other OS but it might require additional steps not detailed in the tutorials)

Who is this course for

This course tries to cater for many types of learners:

  • new developers,
  • not so new developers,
  • degree students,
  • Everyone else who is looking to learn Django

Course Content

Part-1 Building models, views and testing
This first tutorial is most definitely aimed at Django beginners where we cover the basics of developing Django views, URLS, models and get started with testing our application. By the end of this tutorial you will have a working product catalogue which will form the basis of our e-commerce application.

Link to Tutorial https://youtu.be/UqSJCVePEWU
Part-2 Build an e-commerce basket with session handling
In this tutorial we go through the process of building a shopping basket using sessions to handle managing data anonymous connections, saving products into a shopping cart in preparation to be purchased. We implement Ajax to handle the front-end and work through stage by stage the functionality needed to save, update and delete the basket data.

Link to Tutorial https://youtu.be/VOwfGW-ZTIY
Part-3 Build a user, payment and order management system
In this tutorial we go through the process of building the user functions needed to allow users to login and manage their account. We then work through building a payment system using stripe and finally create an ordering backend to capture the customer orders.

Link to Tutorial https://youtu.be/ncsCnC3Ynlw
Part-4 Refactoring the E-commerce Store Templates
In this tutorial we go through the process of refactoring the templates in our project.

Link to Tutorial https://youtu.be/S9-aRoLrs7U
Part-5 Multi-Product Types Database Implementation
In this tutorial we go through the process of developing a database for multiple products with multiple attributes.

Link to Tutorial https://youtu.be/hGg13rzvoNY
Part-6 Managing multiple addresses CRUD and UUID
In this tutorial we go through the process of further normalizing the accounts table to allow users to save more than one address. We build in Django a new address table and then start to update the UI in the dashboard, finally we work through a simple CRUD feature with Django views.

Link to Tutorial https://youtu.be/8SP76dopYVo
Part-7 E-commerce Customer Wish List
In this tutorial we go through the process of building a purely Django user wish list to allow users to create a list of favorite products.

Link to Tutorial https://youtu.be/OgA0TTKAtqQ
Part-8 PayPal Integration
In this tutorial we go through the first steps of integrating PayPal into our e-commerce store.

Link to Tutorial https://youtu.be/smSl2ahkfNw
Part-9 Refactor Folder Structure & Pytest Introduction
In this Django tutorial we discuss Django folder structures and prepare our application ready for scaling further. We prepare the app for the next step of testing, installing Pytest and I take you through the first steps of working with Pytest to test your application.

Link to Tutorial https://youtu.be/ZE7dM0XmUoA
Part-10 Pytest Testing 1
In this Django tutorial we start to test with Pytest, Factory Boy the apps we have build previously.

Link to Tutorial

Community Driven Content

I activity try and promote feedback to taylor courses to your needs and wishes. Here is a list of features requested by community. If you would like to request any other feature not listed here - please visit our YouTube channel and make a comment.

Next Planned Tutorials

  • Tests for whole system

Introduction Phase Suggestions

  • Create Data fixtures (if possible community support for multiple languages)
  • Setup or custom commands for project initial setup
  • Documentation - Class Diagrams and Sequence Diagrams
  • Basic/different search techniques
  • Product Tags/Search
  • Email payment confirmation and PDF receipts
  • Product filter searching
  • Rating / Feedback
  • Coupon System

Intermediate Level Suggestions

  • Internationalization
  • Change to CBV (or not - up to you)
  • PostgreSQL (via Docker)
  • Custom admin views and management tasks
  • Managing sales or season sales
  • Store locator to your project
  • Email list + bulk emailing
  • Notifications
  • Request quotations for bulk orders

Advanced Level Suggestions

  • Haystack / Elasticsearch
  • User Recommendations/Recommender systems
  • Cache
  • Live Chat - Help/Support (Channels)
  • Processing / working with images (compression etc)
  • Generating product statistics
  • Allow users to sell products

Deployment Suggestions

  • Docker deployment configuration
  • Heroku deployment
  • Digital Ocean deployment

Contributing

This course welcomes contributions and suggestions. At present, we are not accepting any code contributions. When the tutorials have finished the project will be open to welcome code contributions. If you find any errors or have trouble with any of our code - please get in contact with us through our YouTube channel.

Instructor

Zander, the founder of Very Academy has over 20 years of development and educational lecturing experience. He is now focused on developing free technical courses and resources on a range of subjects.

License

MIT License

Owner
Very Academy
Open source project initiatives, code samples, video and written tutorials
Very Academy
Vehicle registration using Python, Django and SQlite3

PythonCrud Cadastro de veículos utilizando Python, Django e SQlite3 Para acessar o deploy no Heroku:

Jorge Thiago 4 May 20, 2022
The little ASGI framework that shines. 🌟

✨ The little ASGI framework that shines. ✨ Documentation: https://www.starlette.io/ Community: https://discuss.encode.io/c/starlette Starlette Starlet

Encode 7.7k Dec 31, 2022
A BitField extension for Django Models

django-bitfield Provides a BitField like class (using a BigIntegerField) for your Django models. (If you're upgrading from a version before 1.2 the AP

DISQUS 361 Dec 22, 2022
Phoenix LiveView but for Django

Reactor, a LiveView library for Django Reactor enables you to do something similar to Phoenix framework LiveView using Django Channels. What's in the

Eddy Ernesto del Valle Pino 526 Jan 02, 2023
A beginner django project and also my first Django project which involves shortening of a longer URL into a short one using a unique id.

Django-URL-Shortener A beginner django project and also my first Django project which involves shortening of a longer URL into a short one using a uni

Rohini Rao 3 Aug 08, 2021
Management commands to help backup and restore your project database and media files

Django Database Backup This Django application provides management commands to help backup and restore your project database and media files with vari

687 Jan 04, 2023
Django Federated Login provides an authentication bridge between Django projects and OpenID-enabled identity providers.

Django Federated Login Django Federated Login provides an authentication bridge between Django projects and OpenID-enabled identity providers. The bri

Bouke Haarsma 18 Dec 29, 2020
Automated image processing for Django. Currently v4.0

ImageKit is a Django app for processing images. Need a thumbnail? A black-and-white version of a user-uploaded image? ImageKit will make them for you.

Matthew Dapena-Tretter 2.1k Jan 04, 2023
A simple demonstration of integrating a sentiment analysis tool in a django project

sentiment-analysis A simple demonstration of integrating a sentiment analysis tool in a django project (watch the video .mp4) To run this project : pi

2 Oct 16, 2021
A music recommendation REST API which makes a machine learning algorithm work with the Django REST Framework

music-recommender-rest-api A music recommendation REST API which makes a machine learning algorithm work with the Django REST Framework How it works T

The Reaper 1 Sep 28, 2021
A simple Blog Using Django Framework and Used IBM Cloud Services for Text Analysis and Text to Speech

ElhamBlog Cloud Computing Course first assignment. A simple Blog Using Django Framework and Used IBM Cloud Services for Text Analysis and Text to Spee

Elham Razi 5 Dec 06, 2022
Add a help desk or knowledge base to your Django project with only a few lines of boilerplate code.

This project is no longer maintained. If you are interested in taking over the project, email Zapier 487 Dec 06, 2022

Let AngularJS play well with Django

django-angular Let Django play well with AngularJS What does it offer? Add AngularJS directives to Django Forms. This allows to handle client side for

Jacob Rief 1.2k Dec 27, 2022
wagtail_tenants is a Django/Wagtail app to provide multitenancy to your wagtail project.

wagtail-tenants wagtail_tenants is a Django/Wagtail app to provide multitenancy to your wagtail project. You are able to run a main Wagtail Site and f

<bbr> 11 Nov 20, 2022
An orgizational tool to keep track of tasks/projects and the time spent on them.

Django-Task-Manager Task Tracker using Python Django About The Project This project is an orgizational tool to keep track of tasks/projects and the ti

Nick Newton 1 Dec 21, 2021
Streamlining Django forms to provide all the wins of single-page-applications without the pain.

nango Streamlining Django forms to provide all the wins of single-page-applications without the pain. Key features Available to all Django deployments

Nick Farrell 107 Dec 12, 2022
Stream Framework is a Python library, which allows you to build news feed, activity streams and notification systems using Cassandra and/or Redis. The authors of Stream-Framework also provide a cloud service for feed technology:

Stream Framework Activity Streams & Newsfeeds Stream Framework is a Python library which allows you to build activity streams & newsfeeds using Cassan

Thierry Schellenbach 4.7k Jan 02, 2023
☄️ Google Forms autofill script

lazrr 'Destroy Them With Lazers' - Knife Party, 2011 Google Forms autofill script Installation: pip3 install -r requirements.txt Usage: python3 lazrr.

Serezha Rakhmanov 12 Jun 04, 2022
Example project demonstrating using Django’s test runner with Coverage.py

Example project demonstrating using Django’s test runner with Coverage.py Set up with: python -m venv --prompt . venv source venv/bin/activate python

Adam Johnson 5 Nov 29, 2021
pdm-django: Django command shortcuts for PDM

pdm-django: Django command shortcuts for PDM A plugin that gives you command shortcuts for developing with PDM. pdm run python manage.py runserver -

Neutron Sync 2 Aug 11, 2022