React + FastAPI Tutorial
📂 Chapter 1: Python Fundamentals — Variables, Types and Operators
📂 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
📂 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
📂 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
📂 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
→