About Course
Welcome to the Project-Based Python Django Web Development Course where you will learn to develop a fully-featured Multi-vendor Restaurant Marketplace website with location-based search, nearby restaurants, and many more complex functionalities.
I designed this course, for anyone seeking to learn and build a Django-based custom web application. By the end of this course, you will be able to analyze, design, and develop your own Multi-vendor Restaurant Marketplace website and deploy it on the live server with the custom domain name.
Master the Basic Fundamentals of Python Django before you dive into the custom functionalities:
This course is also for absolute beginners, you don’t need to have any prior knowledge of Django. I’ve included the Django refresher section in this course where you can start from absolute basics. You will be learning the fundamentals of Django by building an Employee Directory website and a TODO app, where you learn about CRUD operations.
If you already have a basic knowledge of Django, you can safely skip this Django refresher section and start building the Multi-Vendor Marketplace Project.
However, as a prerequisite, the basic knowledge of Python and a little bit of HTML/CSS and javascript are required to get started with this course.
You don’t need to be a master in these technologies, you just need to be able to understand what we are doing on the front end, that’s all.
What Will You Learn?
- Master the fundamentals of Django by building Employee Directory & a TODO App
- Purchase & Implement template
- Custom user model, Media files & Django signals
- Vendor registration and authentication functionalities
- User Registration, Django messages and errors
Course Content
Section 01: Introduction
-
03:39
-
08:54
Section 02: Getting Ready
-
Django Refresher
00:00 -
Download Pre-built Demo Templates for FREE
00:00 -
03:58
-
Create Virtual Environment
04:28 -
Install Django & Start Project
05:18 -
Hello World
05:18 -
GitHub Setup
06:35 -
FoodOnline Full Project Git Repository
00:00 -
Django Templates Setup
02:02 -
Creating Superuser
02:05
Section 03: Purchsing & Implementing Template
-
Purchase Foodbakery Template
03:39 -
Template Walkthrough
02:50 -
Homepage And Static Files Configuration
18:49 -
Django Collectstatic Command
05:06
Section 04: PostgreSQL Database Configuration
-
Why PostgreSQL?
03:39 -
Postgres Configuration With Django
08:22 -
Secure Sensitive Info And Push Code
12:50
Section 05: Custom user model, Media files & Django signals
-
Cutom User Model
28:45 -
Recreate Table And Register User Model
12:12 -
Make Password Readonly
05:33 -
Userprofile Overview
03:29 -
User Profile Model
13:30 -
Media Files Configuration
05:12 -
Django Signals To Create User Profile
22:26
Section 06: User Registration, Django messages and errors
-
Foodonline Flowchart
11:22 -
User Registration Path
06:11 -
Template Inheritance Base Html
16:17 -
User Registration Form Template
06:02 -
User Registration Form Implementation
24:02 -
Hash The Password From Form
06:57 -
Django Field Errors And Non Field Errors
15:27 -
Django Messages
14:12 -
Message Animation
11:07 -
Frontend Tweaks
11:43 -
Git Push
01:48
Section 07: Vendor registration and authentication functionalities
-
Vendor Model
12:21 -
Vendor Registration Template
04:43 -
Vendor Registration Feature
25:27 -
Vendor Admin Config
02:44 -
Login Page Setup
12:08 -
Login Logout Feature
18:40 -
Restrict Logged-in Users From Accessing Login page And Register Page
04:52 -
Detect User And Redirect Him To Respective Dashboard
18:26 -
Restrict The User To Access Unauthorized Pages
10:42 -
Git Push
01:30
Section 08: Token verification & Email configuration
-
Email Configuration
05:29 -
Send Verification Email
20:03 -
Activating The User
13:51 -
Forgot Password Setup
08:44 -
Forgot Password Send Validation Link
15:20 -
Reset Password Feature
13:46 -
Git Push
00:45
Section 09: Vendor approval by admin, dashboards
-
Admin Approval Email
21:44 -
Setup Customer And Vendor Dashboard Frontend
13:07 -
Dashboard Sidebar Icon Fix
01:50 -
Vendor Dashboard Url Setup
18:26 -
Load Vendor Profile Image Dynamically
10:53 -
Get Vendor Context Processor
05:15 -
Fix Anonymous User Error In Context Processors
03:08 -
Make Dashboard Cards
05:40 -
Git Push
01:02
Section 10: Make restaurant profile form & custom validators
-
Restaurant Profile Form Setup
23:37 -
Store Vendor Profile
07:28 -
Custom Validator Function Allow Only Images
16:55 -
Readonly Latlong And Apply Decorator
07:37 -
Prepare Address Field For Google Geocoding
07:52 -
Git Push
01:07
Section 11: Implement Google Autocomplete field
-
Setup Google Maps Billing Account
08:51 -
Enable Apis And Create Api Key
03:52 -
Implement Google Autocomplete
14:05 -
Get The Lat Long And Assign To Form Field
17:33 -
Loop Through Address Components And Fetch Data
15:00 -
Git Push
01:06
Section 12: Menu Builder – Category CRUD functionalities
-
Foodmenu Models Category And Fooditem Models
13:10 -
Add Test Food And Setup Admin Table
12:30 -
Menu Builder URL And View Setup
06:15 -
Menu Builder Category Frontend Part1
17:49 -
Menu Builder Fooditem Front End
20:04 -
Add Category CRUD
22:47 -
Add Category Handle Error
06:23 -
Edit Category CRUD
11:16 -
Delete Category CRUD
06:11 -
Git Push
00:59
Section 13: Menu Builder – Food Items CRUD functionalities
-
Add Food Crud
22:13 -
Edit Food Crud
13:18 -
Delete Food Crud
08:16 -
Url Path Adjustment And Availablity Badge
04:29 -
Handle Empty Value Errors
16:03 -
Mofidy The Form To Show Category Belongs To Loggedin Vendors
05:43 -
Edit Food Category For Loggedin Vendors
01:09 -
Git Push
01:05
Section 14: Marketplace Implementation
-
Show Vendors On Homepage
14:46 -
Marketplace Button And Url Setup
07:41 -
Marketplace Html And View
12:51 -
Edit Vendor Model And Add Slug Field
11:29 -
Vendor Detail Page Setup
14:47 -
Display Fooditems By Category Using Prefetch Related
15:04
Section 15: Cart functionalities with AJAX request
-
Create Cart Model
05:52 -
Add To Cart Url Setup
10:08 -
Add To Cart Sending Ajax Request
08:43 -
Add To Cart View Functionality Edited
14:12 -
Cart Counter Context Processor
10:22 -
Place The Quantiry On Each Food Item
10:47 -
Update The Cart Counter And Item Qty Realtime
11:01 -
Fix Google Maps Script Issue
01:32 -
Decrease Cart Feature Edited
15:53 -
Implement Sweetalert And Handle Messages
12:07
Section 16: Cart functionalities with frontend
-
Cart Url Setup
06:14 -
Cart Page Content Setup
10:57 -
Cart Items In The Cart
08:27 -
Fix Cart Item Quantity
00:38 -
Delete Cart Item
13:54 -
Remove Cart Item Without Reloading The Page
05:49 -
Check If Cart Is Empty
05:23 -
Handle Decrease Cart Use Cases
09:54 -
Show Vendor Name Badge And Add Order By Clause
04:50 -
Get Cart Amounts Function To Get The Subtotal And Grand Total
07:50 -
Update Subtotal Tax Grandtotal Without Refreshing The Page
12:38 -
Git Push
00:56
Section 17: Basic Search & Smart search functionalities
-
Search Functionality Setup Search Bar
22:18 -
Get Query Parameters From The Get Request
07:01 -
Add Some Restaurants And Fooditems
13:40 -
Simple Search For Restaurants
07:11 -
Smart Search For Restaurants By Fooditem Name
11:54
Section 18: Location based search functionalities with nearby restaurants
-
Location Based Search
01:24 -
Geodjango Overview
03:01 -
Install PostGIS And GDAL
09:10 -
Create Location Point And See Geometry Viewer
16:32 -
Location Based Search For Restaurants
09:25 -
Find The Nearby Restaurants
12:01 -
Git Push
01:11
Section 19: Get user’s current location & show nearby restaurant on homepage
-
Get Current Latitude Longitude
10:45 -
Send Ajax Request To Get Current Address
12:57 -
Show Nearby Restaurants On Homepage
12:05 -
Set The Location In Session Variable
11:40 -
Git Push
01:03
Section 20: Dynamic Business hours module with AJAX
-
Opening Hours Overview
02:30 -
Opening Hour Model
20:23 -
Opening Hours Url And Sidebar
05:20 -
Opening Hours Form
14:41 -
Add Hour Url And Function
09:03 -
Minor Adjustment To The Add Hour Form
06:12 -
Send Ajax Request To Add Hour Function
12:51 -
Add Hour To Database And JSONResponse
22:47 -
Handling Integrity Error
06:39 -
Remove Opening Hour Feature
21:52 -
Create Some Opening Hours-And Fix Unique Together Issue
02:00 -
List Down Opening Hours In The Front End
16:12 -
Determine Opening Hour For Vendor Detail Page
13:35 -
Is Open Member Function To Display Open Close Badge
12:07 -
Git Push
01:17
Section 21: Dynamic Tax Module
-
Dynamic Tax Module Create Model
07:52 -
Calculate Tax Amount
10:04 -
Implement Dynamic Tax In The Cart Page
07:52 -
Update Tax In The Frontend
12:00 -
Fixed Timedata Doesnot Match Issue
01:30 -
Git Push
00:56
Section 22: Customers app and profile building
-
Create Customers App
06:02 -
Customer Profile Path And Page
10:21 -
Profile Form And User Form
07:20 -
Prepopulate Forms
08:49 -
Update Customer Profile
06:41 -
Load Cover And Profile Pictures
08:24 -
Git Push
00:40
Section 23: Orders model and checkout page
-
Order, Payment, and OrderedFood Models
07:37 -
Checkout Page Setup
04:32 -
Checkout Page Part 1
03:19 -
Checkout Page Order Form Part 2
11:12 -
List Cart Items In Checkout Page
08:48 -
Prepopulate Billing Form
08:23
Section 24: Place order and generate order number
-
Payment Gateway Selection On Checkout Page
10:28 -
Payment Method Selection Validation
11:24 -
Make Place Order Path And Page
07:28 -
Place Order View
17:26 -
Generate Order Number
09:00
Section 25: Implement PayPal payment gateway
-
Create Paypal Business Account
02:48 -
Create Paypal Sandbox Accounts
09:58 -
PayPal Checkout Button Implementation
12:36 -
Send Transaction Function
16:11 -
Update Place Order Page With Review Order And Cart Items
09:56 -
Store Payment Object And Update Order
12:57
Section 26: After order functionalities
-
Move Cart Items To Ordered Food And Create Tabular Inline
11:31 -
Send Order Confirmation Email To Customer
11:22 -
Send Order Received Email To Vendor And Clear Cart
15:09 -
Order Completion Page Setup
09:11 -
Order Complete View
04:13 -
Implement Order Completion Page-Part1
14:49 -
Implement Order Completion Page Part2
12:15 -
Print Address On Order Complete Page
02:03 -
Git Push
00:34
Section 27: Implement RazorPay Payment Gateway
-
Show Payment Button Based On Payment Method Selected
02:36 -
Razorpay Basic Configuration
05:45 -
Create Razorpay Order
08:12 -
Razorpay Checkout
13:53 -
Finalize Razorpay Payments
07:28 -
Git Push
00:49
Section 28: Customer Dashboard
-
Customer Dashboard Recent Orders
14:10 -
Customer My Orders
07:27 -
Order Detail Setup
06:00 -
Order Detail Page Finish
12:07 -
Git Push
00:36
Section 29: ManyToMany Relationship & Vendor Dashboard
-
Many To Many Relationship Overview
09:52 -
Many To Many Create Field And Test Orders
11:40 -
Total Orders Vendor Dashboard
06:51 -
Recent Orders Vendor Dashboard
04:33 -
Assign Vendors To Order
05:11 -
Order Detail Page Vendor
12:17 -
Calculate Subtotal For Each Vendor
28:39
Section 30: Custom middleware, total revenue per vendor, current month’s revenue
-
Create Custom Middleware And Get Total By Vendor Function
12:31 -
Calculate Vendor Order Total Data
13:56 -
Update Total In Order Detail Page
04:16 -
Calculate Total Revenue Per Vendor
04:33 -
Calculate Current Month Revenue
06:05 -
Vendor My Orders
07:38 -
Implement Datatable Plugin For Pagination And Realtime Order Search
07:03 -
Payout System Announcement
02:07 -
Git Push
01:14
Section 31: Integrate Email Templates
-
Register User Account Email Template
10:19 -
Order Confirmation Email To Customer Template Part 1
17:04 -
Order Confirmation Email To Customer Template Part 2
07:22 -
Order Received Email Template To Vendor
18:03 -
Git Push
00:36
Section 32: Make the site mobile-friendly (responsive)
-
Responsiveness-Part-1
16:48 -
Responsiveness-Part-2
10:10
Section 33: Project Deployment on Linode Virtual Private Server
-
Linode Overview
02:15 -
Server Overview
03:38 -
How Nginx And Gunicorn Works Together
08:01 -
Deployment Checklist
03:14 -
Signup to Linode & Create Server
07:53 -
Create Domain Nameservers
05:09 -
Basic Server Setup – Create a Sudo User
09:01 -
Possible deployment issues & Get the local code ready to be pushed to server
10:24 -
Setup GIT to push code from local server to live server
11:31 -
Install & Configure PostgreSQL on Live Server
04:56 -
Setup Virtual Environment on Live Server
05:03 -
Install GDAL and PostGIS on Live Server
14:07 -
Dumpdata and Loaddata on Live Server
07:16 -
Gunicorn Configuration
04:22 -
Nginx Configuration
05:44 -
Fix Static Files on Server
02:00 -
Install SSL on Live Site
02:50 -
Uncomment user’s current location code for live website
03:09 -
Congratulations! You made it!
00:32