Create a Video Membership Web App from Scratch with Python, NoSQL, & FastAPI
Create a Video Membership app using FastAPI & NoSQL. In this series, we’re going to explore building a membership application using FastAPI and a managed Cassandra database called AstraDB (https://dtsx.io/3hO4c4w).
In this one, we’ll learn how to implement a number of key features from scratch in building a video membership site including:
– Creating Users (with custom fields) from scratch
– Saving Secure, Hashed, Passwords
– Authentication
– Video Analytics & Resumable Videos
– Search Engine
– And much more
Links:
⦿ Code: https://github.com/codingforentrepreneurs/video-membership
⦿ Subscribe: https://www.youtube.com/codingentrepreneurs?sub_confirmation=1
⦿ Project Tutorials: https://cfe.sh/projects
⦿ AstraDB Sign up: https://dtsx.io/3lAUmnG
⦿ 30 Days of Python: https://www.youtube.com/playlist?list=PLEsfXFp6DpzQjDBvhNy5YbaBx9j-ZsUe6
⦿ FastAPI Docs: https://fastapi.tiangolo.com/
00:00:00 Welcome
00:05:27 Requirements
00:06:51 Setup VSCode & Python Virtual Environment
00:12:12 Hello World with FastAPI
00:18:58 Picking a Database
00:24:56 Create our NoSQL Database with AstraDB
00:27:48 Basic AstraDB Configuration for FastAPI
00:35:54 Configuration & Environment Variables
00:43:30 Create our User model with Python & Cassandra
00:51:08 Sync Cassandra Tabels via FastAPI On Startup
00:58:40 Create a user via shell
01:02:05 List Stored Values on API Endpoint
01:05:15 User Create Method & Email Validation
01:13:12 Security & Password Hashing
01:22:45 Interactive Notebook to Analyze New Features
01:32:18 Automated Tests
01:50:25 Jinja Templates to Render HTML
02:00:00 Jinja Template Inheritance & More
02:06:44 FastAPI Forms FastAPI Login & Sign Up Forms
02:15:16 User Data Validation with pydantic
02:26:10 Implement pydantic Data Validation
02:35:44 Pydantic Valid Data or Error Method
02:44:06 Experiment with JWT Tokens
02:58:02 Implement Auth Methods for JWT Tokens
03:07:53 Shortcut Method for Rendering Jinja Templates
03:19:53 Using Cookies & httponly within FastAPI
03:27:54 Login & Set JWT
03:37:09 Redirect Shortcut
03:41:53 Login Required Decorator
03:52:36 Render a template for HTTP Errors
04:04:24 Authentication Middleware Backend
04:20:50 Video Model
04:27:57 YouTube Video ID Extraction
04:35:17 Notebook to Verify Video Add Feature
04:41:51 Custom Exception Classes for Videos
04:46:21 Routers for Sub Modules in FastAPI
04:52:51 Video Create Schema
05:02:59 Video Create View
05:06:00 Video Create View Form
05:18:52 Video List View & Title Field
05:29:43 Dynamic URL Routing & Video Detail View
05:40:50 Render Video on Detail Page
05:46:56 The YouTube JavaScript Player
06:34:13 Video Watch Events Endpoint in FastAPI
06:45:17 Watch Event Model
06:55:30 Drop Table from Cassandra Database via Notebook
07:03:45 More Watch Event Data
07:09:24 Pydantic Model for Watch Event Data
07:17:40 Watch Event Router
07:22:32 Get Video Resume Time
07:30:07 Playlist Model & Cassandra List Column
07:34:42 Playlist Tests in Notebooks
07:45:25 Playlist Routing & Templates
07:55:36 HTMX, FastAPI, & Jinja
08:04:07 Use HTMX to Handle Form Data
08:16:36 Get or Create Video for Playlists
08:24:49 Playlist Routers for Handling Video Additions
08:37:23 Playlist Video Schema
08:48:58 Remove Playlist Item via HTMX
09:01:13 Edit or Remove Video
09:11:04 Edit or Remove Video via HTMX
09:27:16 Add Bootstrap & Improve Usability
10:07:19 Login Required HTMX Redirect Header
10:11:10 Logout View
10:18:58 Prepare our Search Index
10:33:00 Implement Algolia Client & API
10:41:43 Update Search Index
10:49:46 Search View & Update Index Method
11:03:25 Thank you and next steps
https://www.youtube.com/watch?v=KQ-u4RcFLBY
#financialfreedomllc #businesstips #business #entrepreneur #businessowner #entrepreneurship #marketing #smallbusiness #businesscoach #digitalmarketing #success #entrepreneurlife #motivation #businessideas #businessgrowth #businesswoman #businessman #businessquotes #businessowners #businessstrategy #startup #businesslife #businessmindset #businessminded #entrepreneurs #businessadvice #entrepreneurmindset #marketingtips #onlinebusiness #branding