Python Tutorial: Build a SaaS App with Django, Stripe, Neon PostgreSQL, TailwindCSS, GitHub Actions

preview_player
Показать описание

Topics:
✅ Python web development with Django
✅ Sending Emails with Gmail
✅ Django AllAuth + GitHub Login
✅ Deploy to Railway
✅ Integrate Neon Postgres
✅ Django Groups and User Permissions
✅ Django + Stripe Integration
✅ Stripe reoccurring payments via Products/Prices API
✅ Django Management commands to sync Users subscription status with correct permissions
✅ Django management commands for pulling vendor css/js (tailwind/flowbite) for container-based builds plus
✅ Django with whitenoise
✅ Scheduled GitHub Actions Workflows to sync prod database with stripe status (e.g replacing a Celery beat server)
✅ Using Neon Branching for Postgres in GitHub Actions to leverage production data without touch production data
✅ Python Decouple for env vars

Chapters
00:00:00 Welcome
00:00:33 Overview
00:06:10 What you need to know
00:08:19 Start Django Project
00:18:57 Your First HTML Webpage with Python Functions
00:28:27 Rendering HTML Documents
00:33:33 Using Django Templates
00:43:46 Django Template Inheritance, Conditions, & Include
00:53:39 Store and Retrieve Data Part 1
01:03:59 Store and Retrieve Data Part 2
01:11:17 Push to GitHub via Git
01:18:12 Prepare for Production Environment
01:25:28 Deploy Django to Railway with Docker Containers
01:41:57 The Hard Way to Manage Environment Variables
01:48:00 dotenv and Python Decouple to Manage Environment Variables
01:56:33 Provision a Serverless PostgreSQL Database with Neon
02:03:50 Integrate PostgreSQL with Django
02:11:21 Neon in Production + Database Branching
02:18:06 Styling with CDN for TailwindCSS and Flowbite
02:25:42 Configure Django Static Files in Dev
02:38:57 Download Url to Local File Helper Function
02:43:16 Custom Django Management Command to Pull Vendor Files
02:55:06 Missing Args with Container Build in Railway
03:01:19 Using WhiteNoise to Serve Django Static Files
03:12:09 Configure Django to use Email with Gmail
03:22:15 Django Admin User + User Passwords
03:33:20 Django Login View Logic
03:41:45 HTML Login Form and Template
03:52:46 Register Users the Hard Way
04:03:19 Configure Django AllAuth
04:15:10 User Email Verification with Django AllAuth
04:17:25 Better UI for Django AllAuth
04:28:24 Navbar Links for Auth
04:35:31 Login with GitHub via Django AllAuth
04:44:20 Password Protected Page with Django Sessions
04:52:22 User-required Pages via login_required Decorator
04:55:43 Staff User Required
05:01:22 User Profile View
05:09:43 User Permissions and has_perm
05:20:32 User Permissions in Django Templates
05:29:45 Groups & Group-level Permissions
05:33:18 Custom Permissions for Django Users
05:41:27 Groups and Permissions within Subscriptions
05:49:07 Syncing Subscription Groups and Permissions
05:56:35 Sync User Subscription with the User Group Part 1
06:02:58 Sync User Subscription with the User Group Part 2
06:12:41 Getting Started with Stripe
06:19:49 Django Customer Model
06:24:48 Override Django Save to Create Stripe Customer
06:37:10 DjangoAll Auth Signal to Confirm Django Stripe Customers
06:51:40 Our Django Subscription Model as a Stripe Product
06:57:01 Subscription Price Model
07:09:33 Manage Prices in Django Admin with Tabular Inlines
07:15:41 Featured and Ordered Pricing
07:24:26 Subscription Pricing View & Template
07:29:39 Pricing Table based on QuerySets
07:42:16 Pricing Interval Toggle Views
07:50:26 A Django Session Based Checkout Process
08:01:55 Stripe Checkout Session
08:12:57 Stripe Checkout Finalize View in Django
08:22:27 Successful Purchase to User Subscription Model
08:35:03 Auto Cancel Subscription on New Plan
08:44:54 Adding Subscription Billing Period Dates
08:58:20 User Subscription Status Field
09:04:59 User Subscription View and Refresh
09:18:16 User Subscription Cancel View
09:30:35 Cancel Dangling User Subscriptions
09:41:21 Custom Django Management Command with Arguments
09:47:23 Subscription Refresh Utility Function
09:56:40 Custom Django Model QuerySets and Model Managers
10:05:03 Filtering Django Models with Datetime Objects
10:18:57 Hello World from GitHub Actions
10:28:45 Testing Django Basics with GitHub Actions
10:35:18 Environment Variables in GitHub Actions
10:41:00 Github Actions Secrets for Database URL
10:47:38 Branch Neon DB for Django Tests
11:01:41 Scheduled Production Worker with Django Neon Stripe and GitHub Actions
11:18:00 A Better Landing Page with Flowbite
11:27:19 Using the SaaS Theme to Fix Missing Tailwind Classes
11:31:39 Dashboard View
11:37:12 Decouple Dashboard
11:49:13 Thank you and next steps
Рекомендации по теме
Комментарии
Автор

This guy low-key is the reason I still have a job. God bless you my friend!

NyihaNgotho
Автор

You deserve a big THANK YOU because there is hardly any content of this advanced level on YouTube. All the channels and videos I've been watching from and learning from are mediocre, and I was unable to level up from them. They all exaggerate the same fundamentals over and over again, and the projects are the almost same. There's nothing new out there. Then I came across your video, which made me think, "yeah! I can learn from this guy even more than I expected..
A Big Thank you again!

priyadugg
Автор

YouTube viewers aren't fair with you. how are you still less than 1m subscribers with all the value you provide without up selling anything. Any thank for another wonderful project.

momodoubjallow
Автор

I can only say THANK YOU. there are not many channels out there that think about coding as a business so well explained. for entrepreneurs it is really hard to find this kind of videos focused on creating business.

martingarcia
Автор

May God bless you for putting so much content for free

DisabledCookie
Автор

It's been 2 yrs in webdev and I still feel its way too difficult to understand the logics. Oh God Give Me Brain For Coding )))

TheMarketingManU
Автор

Justin was one of my first teachers when I started out. My career took me more on the front-end path, but his teaching style was/is incredible. I cannot recommend him highly enough.

farid
Автор

I started watching this tutorial and as a a beginner I can say this is the best video that will teach you how to create your web app. Thank you so much for creating this tutorial

smvignesh
Автор

This is GOLD. I can't thank you enough. As a junior Django developer myself, your courses are so valuable to me. ❤

Minarctic
Автор

Thank you so much for this amazing tutorial! Building a SaaS app with Django, Stripe, Neon PostgreSQL, TailwindCSS, and GitHub Actions seemed daunting at first, but your clear explanations and step-by-step guidance made it all manageable. I've learned a ton and can't wait to apply these skills to my own projects. Keep up the fantastic work!

gamingLiberationFrontOfficial
Автор

You are an absolute genius when it comes to Django.

tesfahiwettruneh
Автор

Was desperately waiting for this tutorial. 🙏🙏🙏

gambomaster
Автор

It's like watching Sean Strickland teaching you about how to build a SaaS, the way he talks, but it's great content love it

ridabrahim
Автор

I'm not a web dev but I watch your videos because your method of teaching is so understandable and satisfying ❤

raphaelmatthew
Автор

This is probably the best technical instruction video I've ever watched. Thank you so much!

thomaswyrick
Автор

Love it, thank you for teaching me how to fish. Mad respect!! 💯

bobrob-ewly
Автор

This course is fantastic. Thank you for the quality content!

DesignsbyBlanc
Автор

I was waiting for this thank you very much from the bottom of my heart

shivamkumar-qpjm
Автор

Wtf 😮, i just search for django and it showed me your free course with recent technologies. I shouted with people looking at me .

Thank you so much 🙏❤, I have been following you for a long time and I am glad i did

judevector
Автор

I love the content and am very happy to see this new resource 👏👍
If I may, for such long courses/tutorials, showing a demo of the end product at the beginning of the video would help. I would personally be interested in giving the architecture and the process a thought before following the course to challenge my own way of going about it.
Keep up the good work man

Omar