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 →