From raw Python scripts to clean, production-ready microservices. A practical, hands-on course covering FastAPI, Pydantic validation, dual-database architecture (SQLite + DuckDB), and cloud deployment.
Welcome to FastAPI Core Engine. This repository contains a structured, practical course delivered through step-by-step notebook study guides and runnable Python microservices.
Instead of abstract theory, we build a working backend system designed to handle real pipelines: receiving incoming status signals, managing transactional device states, querying columnar analytical data, and exposing public endpoints.
Clean code, solid system architecture, and practical execution.
The curriculum takes you step-by-step from base HTTP endpoints to a modular, cloud-deployed API.
- Module 1: Core API & Validation – Setting up FastAPI, handling REST routes, validating data contracts with Pydantic models, managing HTTP exceptions, and testing via interactive Swagger UI.
- Module 2: Dual-Database Engine (SQLite & DuckDB) – Building a hybrid storage layer: SQLite for operational state management (OLTP) and DuckDB for fast analytical processing (OLAP).
- Module 3: Modular Architecture & Cloud Uplink – Scaling the application using Application Factories,
APIRouter, Dependency Injection (Depends),.envconfiguration, and deploying live services to Render.com and FastAPI Cloud.
By completing this course, you will be able to:
- Build clean RESTful APIs using FastAPI and automatic OpenAPI documentation.
- Validate and parse incoming data using Pydantic schemas.
- Implement a dual-database approach: SQLite for quick transactional reads/writes and DuckDB for fast analytics on structured data.
- Structure Python backend applications using Application Factories,
APIRouter, and Dependency Injection. - Manage environment variables safely using
.envfiles. - Deploy web services to the cloud via GitHub and platforms like Render and FastAPI Cloud.
- Basic Python knowledge (functions, dictionaries, lists, type hints).
- Some familiarity with the terminal and basic file paths.
Here is a guide on how to download the materials. The course uses Jupyter Notebooks (.ipynb) for analysis lessons and Python scripts (.py) for the final Streamlit application.
- Go to the main page of this repository on GitHub.
- Click the green Code button.
- Select Download ZIP. Important: Extract (unzip) the downloaded folder to a location on your computer. Do not try to run files directly inside the ZIP archive.
If you are comfortable with the terminal and want to easily update materials later:
- Open your terminal or command prompt.
- Run the following command:
git clone https://github.com/GeorgeFreedomTech/fastapi-course.git
This is the best way to work if you want to keep everything on your own computer.
Prerequisites:
- VS Code installed.
- Python installed.
- Jupyter Extension for VS Code installed (search for "Jupyter" by Microsoft in the Extensions marketplace).
Steps:
- Open VS Code.
- Go to File > Open Folder... and select the folder you downloaded/cloned.
- Click on any file ending in .ipynb.
- In the top-right corner, click Select Kernel and choose your Python version (or venv).
- You can now run the code cells by clicking the "Play" button next to them.
If you cannot install Python locally or want to try the code quickly in your browser.
Prerequisites:
- You have to have a Google account
Steps:
- Go to colab.research.google.com.
- Log in with your Google Account.
- Select the GitHub tab in the pop-up window.
- Paste the URL of this repository and search.
- Click on the notebook you want to open.
- Alternatively: You can go to the Upload tab and upload the .ipynb file you downloaded in Part 1.
- Practical Learning: A straightforward path from basic scripts to production-grade backend design.
- Clean Code Reference: Well-structured, commented code templates you can reuse in your own projects.
- Systems Perspective: Real-world patterns for handling both transactional and analytical workloads in Python.
- Visit my website: https://GeorgeFreedom.com
- Connect on LinkedIn: https://www.linkedin.com/in/georgefreedom/
- Let's talk: https://cal.com/georgefreedom
Copyright (c) 2026 Jiří Svoboda (George Freedom) / George Freedom Tech