Ready to Start Learning?

Sign in to check if you already have access, or get started with a purchase or membership.

Course Platform

Learn to Build a Course Platform with Django, Cloudinary, HTMX, Tailwind, and more.

0:00
9/15/2024
Learn how to build a Course Platform from scratch using Python, Django, TailwindCSS, HTMX, and Cloudinary.
Topics include:
  • Use Python 3.12 and Django 5
  • Learn image upload basics with Django (plus the challenges with hosting images)
  • Integrate Cloudinary Image & Hosting
  • Optimize images sizes with a simple argument with thumbnails and large format
  • Build an Email-first opt-in workflow
  • Automatically resize videos to fit playback
  • Custom email verification process from scratch
  • Integrate TailwindCSS with django-tailwind
  • Use HTMX to render and handle Forms
  • Send Emails from Django with Gmail
  • Customize the Django Admin to fully manage and view videos and courses
  • Implement custom helper functions that can be re-used across Python projects
  • Stylize the frontend using Flowbite
  • Use the CloudinaryField on Django models to automatically handle images and videos
  • and much more

References

Course Platform

Lifetime access to this course

or get access to 500+ courses with a membership

Sections

1

Welcome

0:00

2

Demo

0:00

3

Python Virtual Environment

0:00

4

Create the Django Project

0:00

5

Roadmap for this Course

0:00

6

Baseline Django Course Model

0:00

7

Django ImageField and Pillow

0:00

8

Syncing Code with Migrations

0:00

9

Django Admin to Manage Course Model

0:00

10

Handling Image Uploads in Development

0:00

11

How Django Manages Image Uploads

0:00

12

Configure Cloudinary for Django

0:00

13

Using the CloudinaryField for Django Image Hosting

0:00

14

Customize the Django Admin to Render HTML Images

0:00

15

On Demand Image Adjustments with Cloudinary Images

0:00

16

Model Methods for Image Sizes

0:00

17

Understanding Foreign Keys with the Lesson Model

0:00

18

Lesson Publish Status and Preview

0:00

19

Cloudinary Video + Thumbnail Fields for Lessons

0:00

20

Foreign Key Stacked Model Admin

0:00

21

Ordering with a Model Field

0:00

22

CloudinaryField Upload Options

0:00

23

Generate a Public ID Field

0:00

24

Reusable CloudinaryField Functions

0:00

25

Decoupling Cloudinary Helper Services from Models

0:00

26

Get Cloudinary Video Object Service

0:00

27

Signed Private Video URL in Admin

0:00

28

Embed Cloudinary Video with Pure HTML

0:00

29

Using Django Templates to Render Video

0:00

30

Using JavaScript for Video Embed Basics

0:00

31

Django & the Cloudinary Video Player

0:00

32

Override Django Admin Templates

0:00

33

Render Multiple Videos in One Page

0:00

34

View Logic and Database Lookup Services

0:00

35

URL View Routing for Database Lookups

0:00

36

Public ID As URL Path Lookups

0:00

37

Rendering Templates from Views

0:00

38

Render the Course List View

0:00

39

Course Detail View and Template Snippets

0:00

40

Lesson QuerySet for Different Status Values

0:00

41

Lesson Detail View

0:00

42

Render the Video Player for Users

0:00

43

Configure Django to Send Email with Gmail

0:00

44

Email Verification Models

0:00

45

Create the Email Model Form

0:00

46

Handing HTML Forms with Django

0:00

47

Rendering a Django Model Form

0:00

48

Email Validation & Verification Event

0:00

49

Email Verification Event Service

0:00

50

Send Email from Verification Event

0:00

51

Unique Verify Link with UUID

0:00

52

Verfiy Confirmation Token Service

0:00

53

Enrich the Session With Verified Email ID

0:00

54

Email Required on Lesson Detail View

0:00

55

Using HTMX To Dynamically Load Forms

0:00

56

HTMX with POST Data

0:00

57

Using HTMX to Handle Logout

0:00

58

But Why Tailwind with Django

0:00

59

Install Django Tailwind

0:00

60

Setup Flowbite with Django Tailwind

0:00

61

Login & Logout Views

0:00

62

Tailwind in the HTMX-Driven Login Form

0:00

63

Improved Course List View

0:00

64

List View wit Thumbnail Images

0:00

65

Video Frame as Lesson Thumbnail

0:00

66

Global CSS Spacing

0:00

67

Course Detail View

0:00

68

Improved Unlock Content Page

0:00

69

Improved Homepage

0:00

70

Thank you

0:00

71

Next up

0:00

Course Platform - Coding for Entrepreneurs