🎯 Popular course

FastAPI: REST API from Zero to Production

Build a real URL shortener service: CRUD, JWT auth, click tracking, tests, and Docker deployment.

5.0⭐ Rating
5 Lessons
65 Tasks
~21.7 h Duration
📚 Course program

What you will learn

Detailed course program with practical assignments and projects

📖

About the course

Build a real backend — from scratch to Docker

LinkHive — a URL shortener service. You’ll build it from scratch in 5 lessons and end up with a production-ready API you can show off in interviews.

Each lesson adds a new layer:
- Lesson 1: first endpoints, Swagger out of the box, project structure
- Lesson 2: SQLite via SQLModel, full CRUD, migrations
- Lesson 3: JWT auth, OAuth2, protected routes
- Lesson 4: click tracking, analytics, middleware, CORS
- Lesson 5: tests with pytest, Dockerfile, docker-compose with PostgreSQL

What you’ll know after this course:
- Design and implement REST APIs with FastAPI
- Work with databases through SQLModel and run migrations
- Set up JWT-based authentication
- Write tests with an isolated test DB
- Package the app in Docker

🔒

Lesson 1: First API — FastAPI, uvicorn, auto-documentation

Spin up an API from scratch: first endpoints, Pydantic schemas, Swagger UI out of the …

⏱️ ~4 h 20 min 📚 13 tasks
🔒

Lesson 2: Database — SQLModel, CRUD, migrations

Connect SQLite via SQLModel, implement full CRUD, and learn to run migrations with Alembic — …

⏱️ ~4 h 20 min 📚 13 tasks
🔒

Lesson 3: Authentication — JWT, OAuth2, protected routes

Add registration and login, issue JWT tokens, and protect routes — only the owner sees …

⏱️ ~4 h 20 min 📚 13 tasks
🔒

Lesson 4: Analytics, background tasks, and middleware

Add click tracking via BackgroundTasks, link analytics, request-timing middleware, and CORS for the frontend.

⏱️ ~4 h 20 min 📚 13 tasks
🔒

Lesson 5: Tests and Docker — final LinkHive deployment

Write tests with pytest and TestClient, set up a multi-stage Dockerfile and docker-compose — the …

⏱️ ~4 h 20 min 📚 13 tasks

Student reviews

No reviews yet. They will appear when students start taking the course and sharing their learning experience.

💻 Code examples from course

Learn with real examples

See what code you will write in the course

lesson_example.py
# Создаем класс для курса
class Course:
    def __init__(self, title, duration):
        self.title = title
        self.duration = duration
        self.students = []
    def enroll_student(self, student):
        self.students.append(student)
        return f"Добро пожаловать, {student}!"
interactive_app.js
// Интерактивное обучение
const learningApp = {
  courses: [],
  support: '24/7',
  practice: '100%',
  addCourse(course) {
    this.courses.push(course);
    console.log(`Курс ${course} добавлен!`);
  }
};

Ready to start learning?

Join the growing community of students who have already started changing their lives through this course. Get personalized support and practical skills.