React + FastAPI Tutorial

📂 Chapter 1: Python Fundamentals — Variables, Types and Operators

1010 What is Python and Why Use It for Full-Stack Development Beginner 1020 Variables and Data Types in Python Beginner 1030 Strings — Working with Text in Python Beginner 1040 Numbers, Arithmetic and the Math Module Beginner 1050 Booleans, Comparison and Logical Operators Beginner

📂 Chapter 2: Control Flow — if/else, Loops and Comprehensions

2010 if, elif and else — Conditional Statements in Python Beginner 2020 for Loops, range() and Iterating Collections Beginner 2030 while Loops, break, continue and else on Loops Beginner 2040 List Comprehensions — Pythonic Collection Building Beginner 2050 Dict, Set and Generator Comprehensions Beginner

📂 Chapter 3: Functions — Definitions, Arguments and Scope

3010 Defining Functions — def, Parameters and return Beginner 3020 Function Arguments — Positional, Keyword, Default, *args and **kwargs Beginner 3030 Scope — Local, Enclosing, Global and Built-in (LEGB) Beginner 3040 Lambda Functions and Higher-Order Functions Beginner 3050 Docstrings, Type Hints and Function Best Practices Beginner

📂 Chapter 4: Collections — Lists, Tuples, Dicts and Sets

4010 Lists — Python's Most Versatile Collection Beginner 4020 Tuples — Immutable Ordered Sequences Beginner 4030 Dictionaries — Key-Value Storage and Lookup Beginner 4040 Sets — Unique Collections and Set Operations Beginner 4050 The collections Module and Pythonic Data Patterns Beginner

📂 Chapter 5: Object-Oriented Programming in Python

5010 Classes and Instances — Defining Custom Types Intermediate 5020 Inheritance, Polymorphism and Method Overriding Intermediate 5030 Class Methods, Static Methods and Properties Intermediate 5040 Dunder Methods — Making Classes Pythonic Intermediate 5050 Dataclasses and OOP Design Patterns Intermediate

📂 Chapter 6: Modules, Packages and the Standard Library

6010 Modules and Imports — Organising Python Code Intermediate 6020 Packages, __init__.py and Project Structure Intermediate 6030 Standard Library Essentials — os, pathlib, datetime and more Intermediate 6040 Virtual Environments, pip and Dependency Management Intermediate 6050 Python's Third-Party Ecosystem for Web Development Intermediate

📂 Chapter 7: File I/O, Exceptions and Context Managers

7010 Reading and Writing Files — open(), read(), write() Intermediate 7020 Exception Handling — try, except, else, finally and raise Intermediate 7030 Custom Exceptions and FastAPI Error Handling Intermediate 7040 Context Managers — with Statements and Resource Management Intermediate 7050 Working with CSV, JSON and .env Files Intermediate

📂 Chapter 8: Working with Data — JSON, CSV and HTTP

8010 JSON Deep Dive — Serialisation, Schemas and Validation Intermediate 8020 Advanced CSV Processing — Validation, Transformation and Export Intermediate 8030 Making HTTP Requests with httpx Intermediate 8040 Calling External APIs from FastAPI Intermediate 8050 Data Transformation Patterns in Python Intermediate

📂 Chapter 9: Decorators, Closures and Functional Patterns

9010 Closures in Depth — Capturing State in Functions Advanced 9020 Decorators — Wrapping Functions to Add Behaviour Advanced 9030 Practical Decorators — Timing, Caching, Retry and Logging Advanced 9040 Class Decorators, Stacking and Decorator Factories Advanced 9050 Functional Patterns — Partial Application, Currying and Composition Advanced

📂 Chapter 10: Generators, Iterators and Memory Efficiency

10010 Iterators and the Iteration Protocol Advanced 10020 Generators — Lazy Sequences with yield Advanced 10030 Generator Expressions and Lazy Pipelines Advanced 10040 itertools — The Standard Library for Iterators Advanced 10050 Memory-Efficient Patterns for FastAPI Advanced

📂 Chapter 11: Async Python — asyncio and async/await

11010 Concurrency vs Parallelism — The Event Loop Model Advanced 11020 async def and await — Writing Asynchronous Functions Advanced 11030 asyncio Tasks, gather() and Concurrent Execution Advanced 11040 Async Context Managers, Iterators and Queues Advanced 11050 Async in FastAPI — When to Use async def vs def Advanced

📂 Chapter 12: Type Hints, Protocols and Pydantic Basics

12010 Type Hints Fundamentals — Annotating Variables, Functions and Classes Advanced 12020 Generic Types — List, Dict, Optional, Union and Literal Advanced 12030 Protocols — Structural Subtyping and Duck Typing with Types Advanced 12040 Pydantic Models — Validation, Serialisation and Configuration Advanced 12050 Advanced Pydantic — Custom Types, Discriminated Unions and Settings Advanced

📂 Chapter 13: Introduction to PostgreSQL and Relational Databases

13010 Relational Database Concepts — Tables, Rows, Columns and Keys Beginner 13020 Installing PostgreSQL and Connecting with psql Beginner 13030 Creating Tables — Data Types, Constraints and Defaults Beginner 13040 Primary Keys, Foreign Keys and Table Relationships Beginner 13050 PostgreSQL Roles, Permissions and Your First Application Schema Beginner

📂 Chapter 14: SQL Fundamentals — SELECT, INSERT, UPDATE, DELETE

14010 SELECT — Reading Data from Tables Beginner 14020 INSERT — Adding Rows and Using RETURNING Beginner 14030 UPDATE and DELETE — Modifying and Removing Rows Beginner 14040 The WHERE Clause — Filtering with Operators and Conditions Beginner 14050 Transactions — ACID Properties and Data Consistency Beginner

📂 Chapter 15: Filtering, Sorting, Grouping and Aggregates

15010 ORDER BY — Sorting Query Results Beginner 15020 Aggregate Functions — COUNT, SUM, AVG, MIN, MAX Beginner 15030 GROUP BY and HAVING — Grouping and Filtering Aggregates Beginner 15040 Built-in Functions — String, Date and Math Operations Beginner 15050 Conditional Expressions — CASE, COALESCE, NULLIF and GREATEST Beginner

📂 Chapter 16: Joins, Subqueries and Set Operations

16010 INNER JOIN and LEFT JOIN — Combining Rows from Multiple Tables Intermediate 16020 RIGHT JOIN, FULL JOIN, CROSS JOIN and Self-Joins Intermediate 16030 Subqueries — Queries Within Queries Intermediate 16040 Set Operations — UNION, INTERSECT and EXCEPT Intermediate 16050 Practical Multi-Table Queries for FastAPI Intermediate

📂 Chapter 17: Schema Design — Keys, Constraints and Relationships

17010 Normalisation — Designing Tables That Scale Intermediate 17020 Advanced Constraints — CHECK, EXCLUSION and Partial Indexes Intermediate 17030 Schema Evolution — ALTER TABLE and Migration Strategies Intermediate 17040 JSONB, Arrays and Custom Enum Types Intermediate 17050 Schema Design Patterns — Audit Logs, Soft Delete and Versioning Intermediate

📂 Chapter 18: Indexes, EXPLAIN and Query Performance

18010 How Indexes Work — B-tree, Hash and Index Types Intermediate 18020 Creating and Managing Indexes — Strategies and Maintenance Intermediate 18030 EXPLAIN and EXPLAIN ANALYZE — Reading Query Plans Intermediate 18040 Query Optimisation — Slow Query Patterns and Fixes Intermediate 18050 Connection Pooling, VACUUM and Database Maintenance Intermediate

📂 Chapter 19: Advanced SQL — Window Functions, CTEs and Triggers

19010 Window Functions — Ranking, Running Totals and Peer Comparisons Advanced 19020 CTEs — Common Table Expressions and Recursive Queries Advanced 19030 Triggers — Automating Database Logic Advanced 19040 Full-Text Search — tsvector, tsquery and GIN Indexes Advanced 19050 Advanced Query Patterns — Lateral Joins, RETURNING and Upserts Advanced

📂 Chapter 20: PostgreSQL with Python — psycopg2 and asyncpg

20010 psycopg2 — The Synchronous PostgreSQL Driver Advanced 20020 asyncpg — The Async PostgreSQL Driver Advanced 20030 Raw SQL vs ORM — When to Use Each Advanced 20040 Result Serialisation — Mapping PostgreSQL Types to Python Advanced 20050 Database Migrations with Alembic Advanced

📂 Chapter 21: Introduction to FastAPI

21010 What is FastAPI — ASGI, Pydantic and Automatic Docs Beginner 21020 Installing FastAPI and Running Your First Application Beginner 21030 Path Operations — Decorators, HTTP Methods and Response Models Beginner 21040 Request Body — Pydantic Models and Automatic Validation Beginner 21050 Error Handling — HTTPException and Custom Error Responses Beginner

📂 Chapter 22: Path Params, Query Strings and Headers

22010 Path Parameters — Types, Validation and Enum Constraints Beginner 22020 Query Parameters — Filtering, Pagination and Optional Values Beginner 22030 Request Headers, Cookies and the Request Object Beginner 22040 Response Headers, Cookies and Custom Responses Beginner 22050 APIRouter — Organising Routes into Modules Beginner

📂 Chapter 23: Pydantic Models and Validation

23010 Schema Separation — Create, Update and Response Models Intermediate 23020 Nested Models — Embedding Related Resources Intermediate 23030 Custom Validators — field_validator and model_validator in FastAPI Intermediate 23040 Pagination Schemas — Standardising List and Page Responses Intermediate 23050 Application Settings — pydantic-settings and Environment Config Intermediate

📂 Chapter 24: SQLAlchemy ORM

24010 SQLAlchemy Setup — Engine, Session and Declarative Models Intermediate 24020 ORM Relationships — One-to-Many, Many-to-Many and Back-Populates Intermediate 24030 Querying — select(), filter(), order_by() and Joins Intermediate 24040 Create, Update and Delete — Session Operations and Transactions Intermediate 24050 Async SQLAlchemy — AsyncSession and asyncpg Integration Intermediate

📂 Chapter 25: Alembic Migrations

25010 Alembic Setup — Initialising and Configuring env.py Intermediate 25020 Generating Migrations — Autogenerate and Manual Scripts Intermediate 25030 Applying and Rolling Back Migrations Intermediate 25040 Migration Patterns — Safe Online Changes and Data Migrations Intermediate 25050 Alembic in CI/CD — Automated Migrations in Deployment Intermediate

📂 Chapter 26: CRUD Endpoints

26010 CRUD Architecture — Repository Pattern and Service Layer Intermediate 26020 Read Endpoints — List with Pagination and Single Resource Intermediate 26030 Write Endpoints — Create, Update and Partial Update Intermediate 26040 Delete Endpoints — Hard Delete and Soft Delete Patterns Intermediate 26050 Putting It Together — Complete Blog Post CRUD API Intermediate

📂 Chapter 27: Table Relationships

27010 Comments — One-to-Many with Ownership and Moderation Intermediate 27020 Tags — Many-to-Many with the Association Table Intermediate 27030 User Profile — One-to-One Relationship Intermediate 27040 Likes and Reactions — User-to-Post Association with Counts Intermediate 27050 Follow System — Self-Referential Many-to-Many Intermediate

📂 Chapter 28: FastAPI Dependencies

28010 Dependency Injection — How Depends() Works Intermediate 28020 Common Dependencies — Database Sessions and Application Settings Intermediate 28030 Authentication Dependencies — Current User and Role Guards Intermediate 28040 Query Dependencies — Reusable Pagination and Filtering Intermediate 28050 Dependency Overrides — Testing with Fake Dependencies Intermediate

📂 Chapter 29: JWT Authentication

29010 JWT Fundamentals — Structure, Claims and Signing Intermediate 29020 Password Hashing and User Registration Intermediate 29030 Login and Token Issuance — Access and Refresh Tokens Intermediate 29040 Token Refresh and Revocation — Secure Session Management Intermediate 29050 OAuth2 Password Flow and Social Login Integration Intermediate

📂 Chapter 30: File Uploads and Background Tasks

30010 File Uploads — UploadFile and Form Data Intermediate 30020 Image Processing — Validation, Resizing and Cloud Storage Intermediate 30030 Background Tasks — Running Work After the Response Intermediate 30040 Task Queues — Durable Background Jobs with ARQ and Redis Intermediate 30050 Email Sending — Transactional Emails with FastAPI-Mail Intermediate

📂 Chapter 31: WebSockets

31010 WebSocket Fundamentals — Protocol, Lifecycle and Use Cases Advanced 31020 FastAPI WebSocket Endpoint — Accept, Send and Receive Advanced 31030 Connection Manager — Broadcasting to Multiple Clients Advanced 31040 Authenticated WebSocket Rooms — Per-User and Per-Resource Channels Advanced 31050 Server-Sent Events — One-Way Real-Time Streams Advanced

📂 Chapter 32: Testing FastAPI

32010 Testing Setup — pytest, TestClient and conftest.py Advanced 32020 Unit Testing — Services, Repositories and Pure Functions Advanced 32030 Integration Testing — Full API Endpoint Tests Advanced 32040 Async Testing — AsyncClient and WebSocket Testing Advanced 32050 Test Coverage, Mocking and CI Integration Advanced

📂 Chapter 33: Intro to React and Vite

33010 What is React — Component Model, Virtual DOM and Declarative UI Beginner 33020 Vite Project Setup — Fast Tooling for Modern React Beginner 33030 JSX — JavaScript + HTML Syntax and Expressions Beginner 33040 Components and Props — Building Reusable UI Pieces Beginner 33050 Project Structure — Organising a Real React Application Beginner

📂 Chapter 34: Components, JSX, Props

34010 Component Composition — Building UIs from Small Pieces Beginner 34020 Prop Design — Required Props, Defaults and PropTypes Beginner 34030 Conditional Rendering — Patterns for Showing and Hiding UI Beginner 34040 Lists and Keys — Rendering Dynamic Collections Beginner 34050 Putting It Together — Blog UI Component Library Beginner

📂 Chapter 35: State and useState

35010 What is State — React's Memory Between Renders Beginner 35020 useState Patterns — Primitives, Objects and Arrays Beginner 35030 Lifting State Up — Sharing State Between Components Beginner 35040 Controlled Inputs — Forms Driven by State Beginner 35050 State Patterns in Practice — Blog Application State Beginner

📂 Chapter 36: useEffect and Data Fetching

36010 useEffect Fundamentals — Side Effects and the Dependency Array Intermediate 36020 Fetching Data — fetch() and the Loading/Error/Data Pattern Intermediate 36030 Cleanup and Race Conditions — Avoiding Stale Data Intermediate 36040 Axios and the API Layer — Centralised HTTP Client Intermediate 36050 Custom Data Hooks — Reusable Fetching Logic Intermediate

📂 Chapter 37: React Router

37010 Routing Fundamentals — Client-Side Navigation in SPAs Beginner 37020 Routes and Links — Defining Pages and Navigation Beginner 37030 Protected Routes — Authentication-Based Navigation Beginner 37040 Programmatic Navigation — useNavigate and Redirects Beginner 37050 Router Patterns — Complete Blog Application Routing Beginner

📂 Chapter 38: Forms and Controlled Components

38010 Form Submission and Validation — Handling User Input Beginner 38020 Auth Forms — Login and Registration with API Integration Beginner 38030 Post Editor Form — Rich Text, Tags and File Upload Beginner 38040 Reusable Form Components — Input, Select and FormField Beginner 38050 Form UX Patterns — Loading States, Success Messages and Accessibility Beginner

📂 Chapter 39: Global State with Context API

39010 Context API — Sharing State Without Prop Drilling Intermediate 39020 Auth Context — Global Authentication State Intermediate 39030 useReducer with Context — Predictable State Updates Intermediate 39040 Zustand — Lightweight Global State Store Intermediate 39050 Toast Notifications — Global UI State with Context Intermediate

📂 Chapter 40: Redux Toolkit

40010 Redux Fundamentals — Store, Actions and Reducers Intermediate 40020 createSlice and Store Setup — Writing Modern Redux Intermediate 40030 Async Thunks — Data Fetching with createAsyncThunk Intermediate 40040 RTK Query — Data Fetching Cache Built into Redux Intermediate 40050 Redux vs Alternatives — Choosing the Right State Tool Intermediate

📂 Chapter 41: Custom Hooks

41010 Custom Hook Fundamentals — Extracting Reusable Logic Intermediate 41020 Browser Hooks — useLocalStorage, useMediaQuery and useOnline Intermediate 41030 useForm — A Reusable Form State Hook Intermediate 41040 usePagination and useInfiniteScroll — Navigation Hooks Intermediate 41050 Hook Composition — Building Complex Hooks from Simple Ones Intermediate

📂 Chapter 42: Connecting React to FastAPI

42010 CORS and Vite Proxy — Connecting Dev Environments Intermediate 42020 Environment Config — API URLs Across Dev, Staging and Production Intermediate 42030 API Client Integration — Wiring RTK Query to FastAPI Endpoints Intermediate 42040 Error Handling — Consistent API Error UX Across the App Intermediate 42050 End-to-End Post CRUD — The Complete Data Flow Intermediate

📂 Chapter 43: JWT Auth End-to-End

43010 Auth Flow Overview — Tokens, Storage and the Full Lifecycle Intermediate 43020 Registration and Login — Full Stack Integration Intermediate 43030 Token Refresh — Silent Renewal with the RTK Query Reauth Wrapper Intermediate 43040 Protected UI — Ownership-Based Rendering and Route Guards Intermediate 43050 Logout and Session Management — Clean Token Revocation Intermediate

📂 Chapter 44: File Uploads and Images

44010 File Input and Preview — Selecting and Displaying Images Before Upload Intermediate 44020 Avatar Upload — Profile Image with Crop and Preview Intermediate 44030 Post Cover Image — Uploading with the Post Create/Edit Flow Intermediate 44040 Drag and Drop — File Upload with Visual Drop Zone Intermediate 44050 Image Display — Lazy Loading, Fallbacks and Responsive Images Intermediate

📂 Chapter 45: WebSockets Full-Stack

45010 useWebSocket — A Reusable WebSocket Client Hook Advanced 45020 Live Notifications — Real-Time Push from FastAPI to React Advanced 45030 Live Comment Feed — Real-Time Room Subscriptions Advanced 45040 Presence and Live Counts — Who is Viewing Right Now Advanced 45050 WebSocket Reliability — Reconnection, Heartbeats and Fallbacks Advanced

📂 Chapter 46: Testing Full Stack

46010 Testing Strategy — What to Test and at Which Layer Advanced 46020 React Component Testing — Vitest and React Testing Library Advanced 46030 Mock Service Worker — Intercepting API Calls in Tests Advanced 46040 End-to-End Testing — Critical Flows with Playwright Advanced 46050 CI Test Pipeline — Automated Testing on Every Commit Advanced

📂 Chapter 47: Deploying to Production

47010 Docker — Containerising FastAPI and React Advanced 47020 Nginx — Reverse Proxy, Static Files and SSL Termination Advanced 47030 Environment Variables and Secrets — Secure Configuration Management Advanced 47040 Database Migrations in Production — Alembic on Deploy Advanced 47050 Deploying to a VPS — Full Stack on a Single Server Advanced

📂 Chapter 48: Security, Performance, CI/CD

48010 API Security — Rate Limiting, Input Sanitisation and Audit Logging Advanced 48020 FastAPI Performance — Profiling, Caching and Query Optimisation Advanced 48030 Frontend Performance — Bundle Analysis, Code Splitting and Core Web Vitals Advanced 48040 Complete CI/CD Pipeline — Lint, Test, Build, Deploy Advanced 48050 Monitoring and Observability — Logs, Metrics and Error Tracking Advanced

📂 Chapter 49: Capstone — Full-Stack Blog

49010 Project Architecture Review — The Complete Stack at a Glance Advanced 49020 Backend Capstone — FastAPI Application Walkthrough Advanced 49030 Frontend Capstone — React Application Walkthrough Advanced 49040 Feature Integration Checklist — Verifying Every User Story Works Advanced 49050 Where to Go Next — Extending the Blog and Your Career Path Advanced