FastAPI для профессионалов: Онлайн-школа на чистой архитектуре

12 участников

О чём курс

Илья Перминов на платформе Stepik разбирает проектирование backend-системы для образовательной платформы на базе фреймворка FastAPI с применением чистой архитектуры. В процессе обучения вы разработаете сервис онлайн-школы с JWT-аутентификацией, автоматическими тестами, очередями задач, Docker-раннером для безопасной проверки кода учащихся и отслеживанием учебного прогресса.

О чём курс

Курс рассчитан на разработчиков, которые хотят перейти от создания простых API к проектированию архитектурно сложных backend-систем. Вся разработка строится вокруг принципов Clean Architecture с разделением слоёв приложения. Архитектура проекта изолирует бизнес-правила от внешних интерфейсов и баз данных, что упрощает масштабирование и сопровождение кодовой базы.

Проект разбивается на доменный слой, прикладной слой, инфраструктуру и уровень доставки данных. Вы освоите реализацию сценариев взаимодействия через Use Cases, организацию репозиториев для доступа к данным и паттерн Unit of Work для управления транзакциями. Работа с базой данных выстраивается через SQLAlchemy с миграциями схемы и изоляцией доменных моделей от persistence-слоя.

Архитектурные блоки проекта

Разработка онлайн-школы охватывает создание ключевых компонентов платформы:

  • Базовый сервис курсов: сущности курсов, модулей, разделов, лекций, управление ролями пользователей и модель доступа.
  • Интерактивные тесты: сущности вопросов с одиночным и множественным выбором, фиксация попыток прохождения, подсчёт баллов, статусов и сохранение прогресса студента.
  • Автоматическая проверка кода: домен задач, жизненный цикл проверки решений и сценарии отправки кода.
  • Изолированная среда выполнения: worker-процессы, очереди задач и Docker-runner для безопасного исполнения пользовательских скриптов и сбора артефактов проверки.
  • Платформенные сценарии: каталог с карточками курсов, фильтрация по темам и уровню сложности, поиск, отзывы, комментарии и профиль пользователя.
  • Аналитика и оптимизация: отслеживание сложных вопросов и завершения курсов для авторов и студентов, кеширование контента и настройка индексов в базе данных для ускорения чтения.

Формат и материалы

Материал представлен в текстовом формате и не содержит видеозаписей. Все модули ориентированы на последовательную реализацию кода. Исходный код проекта, создаваемого в ходе работы, размещён в репозитории на GitHub. Проверка решений включает написание unit-тестов, интеграционных и end-to-end тестов, а также ручное тестирование эндпоинтов через документацию OpenAPI.

Программа обучения

  • MVP: Обзор проекта, стека и маршрута разработки Clean Architecture на практике
  • Структура проекта: каркас, пакеты, стандарты
  • Конфигурация и ошибки: фундамент production-подхода
  • Сущность Course как бизнес-ядро
  • Сущности Modules, Sections и структура курса
  • Сущность Lecture и учебный материал
  • Сущность User и роли: модель доступа
  • Read-сценарии: первые Use Cases
  • Write-сценарии: управление контентом через Use Cases
  • Контракты слоёв: интерфейсы, границы, ответственность
  • Persistence: ORM отдельно, домен отдельно
  • Репозитории: доступ к данным
  • Unit of Work: транзакции как часть архитектуры
  • Миграции базы данных и инфраструктура
  • FastAPI как слой доставки
  • Эндпоинты чтения
  • Эндпоинты управления
  • OpenAPI: документация, теги, схемы ошибок
  • Аутентификация: регистрация, логин, JWT
  • Авторизация: роли, доступы, защита маршрутов
  • Практическое тестирование проекта
  • Автоматизированное тестирование проекта (Unit тесты)
  • Интеграционное тестирование и End-to-End тесты
  • Домашнее задание
  • Интерактивное обучение: тесты, попытки, прогресс: Точка входа во второй модуль: от контента к активности
  • Роли второго этапа: кто создает, кто проходит, кто управляет
  • Cущность Question
  • Сущность AnswerOption и варианты ответа
  • Формы ответа: одиночный и множественный выбор
  • Сущность QuestionAttempt и прохождение тестов
  • Результаты теста, баллы и статус
  • Авторские сценарии для тестов
  • Домашнее задание
  • Пользовательские сценарии прохождения
  • Прогресс обучения как новая часть домена
  • Баллы и учебная мотивация
  • Persistence интерактивного этапа: ORM, репозитории, UoW
  • FastAPI для интерактивного этапа: роуты, зависимости, схемы
  • Практическое тестирование интерактивного этапа
  • Автоматизированное тестирование тестового этапа
  • Домашнее задание
  • Кодовые задачи и Docker-runner: Точка входа в этап задач
  • Сущность Task
  • Попытка решения и история отправок
  • Правила проверки простых задач
  • Роли, владелец и доступы в домене задач
  • Авторские сценарии простых задач
  • Пользовательские сценарии простых задач
  • Контракты и инфраструктурные границы
  • Persistence простых задач и развитие схемы
  • Кодовые задачи, сущность CodeTask
  • Отправка кода и жизненный цикл проверки
  • Авторские сценарии кодовых задач
  • Application-слой кодовых задач
  • Очередь и worker
  • Среда исполнения: Docker-runner и артефакты проверки
  • Безопасность и отказоустойчивость проверки кода
  • Прогресс кодовых задач и итоговая учебная модель
  • FastAPI и сценарии проверки задач
  • Практическое тестирование этапа задач
  • Внешний брокер и реальная очередь
  • Поддержка других языков программирования в задачах
  • Практическое тестирование этапа задач, ч.2
  • Автоматизированное тестирование этапа задач
  • Домашнее задание
  • Платформенные сценарии вокруг обучения: Жизненный цикл курса: draft, published, archived
  • Бизнес-сценарий публикации курса
  • Каталог курсов и карточка курса
  • Обложка, описание, сложность и теги курса
  • Домашнее задание
  • Поиск по каталогу курсов
  • Фильтрация по темам, тегам и сложности
  • Профиль пользователя
  • Аналитика для студента: завершение, баллы, слабые места
  • Домашнее задание
  • Аналитика для автора: прохождение, сложные вопросы и задачи
  • Рейтинг и отзывы о курсе
  • Домашнее задание
  • История активности студента по платформе
  • Индексы, оптимизация чтения
  • Кеширование контента
Складчина создана 13 июня 2026 г. · описание обновлено 25 октября 2026 г.

Теги курса

Инструменты

Другие материалы автора 6

ИП Илья Перминов Все материалы
727 ₽ 6 999 ₽