Robot
Складчик
- #1
[Stepik] FastAPI для профессионалов: Онлайн-школа на чистой архитектуре [Илья Перминов]
- Ссылка на картинку

Это практический курс по созданию Backend-системы на FastAPI. Вы разработаете полноценную образовательную платформу с Clean Architecture, JWT-аутентификацией, тестированием, очередями, Docker-runner для проверки кода и системой прогресса обучения. Курс ориентирован на разработчиков, которые хотят перейти от простых API к архитектурно сложным backend-проектам. Внимание, данный курс не содержит ни минуты видео!
Чему вы научитесь:
Чему научитесь:
Модуль 1. «MVP».
MVP:
Чему вы научитесь:
- Проектировать backend-приложения на FastAPI с использованием Clean Architecture
- Разделять систему на domain, application, infrastructure и delivery слои
- Реализовывать Use Cases, репозитории и Unit of Work
- Работать с SQLAlchemy, миграциями и persistence-слоем
- Создавать JWT-аутентификацию, роли и систему авторизации
- Писать unit, integration и end-to-end тесты
- Разрабатывать интерактивные системы тестирования и отслеживания прогресса
- Реализовывать платформу кодовых задач с автоматической проверкой решений
- Настраивать Docker-runner для безопасного исполнения пользовательского кода
- Работать с очередями, worker-процессами и брокерами сообщений
- Проектировать масштабируемую архитектуру образовательной платформы
- Оптимизировать производительность через индексы и кеширование
Чему научитесь:
Модуль 1. «MVP».
- Мы спроектируем и реализуем первую рабочую версию онлайн-школы на FastAPI с опорой на Clean Architecture.
- Разберем структуру проекта, разделим домен, application, persistence и delivery-слои, настроим конфигурацию, ошибки и инфраструктурную основу.
- Реализуем ключевые сущности Course, Module, Section, Lecture и User, добавим роли пользователей и базовую модель доступа.
- Построим read- и write-сценарии через Use Cases, оформим контракты слоев, подключим ORM, репозитории, Unit of Work и миграции базы данных.
- Вынесем функциональность в FastAPI-эндпоинты, оформим OpenAPI-документацию, реализуем JWT-аутентификацию, авторизацию и защиту маршрутов.
- В завершении раздела проведем практическое, unit, интеграционное и end-to-end тестирование проекта.
- Мы расширим MVP интерактивной частью и перейдем от простого контента к активному обучению.
- Реализуем роли для авторов, студентов и управляющих пользователей, добавим сущности Question, AnswerOption и QuestionAttempt.
- Научимся поддерживать одиночный и множественный выбор ответов, фиксировать попытки прохождения тестов, рассчитывать результаты, баллы и статусы.
- Построим авторские сценарии создания тестов и пользовательские сценарии прохождения, добавим прогресс обучения как часть доменной модели и обсудим учебную мотивацию через баллы.
- Реализуем persistence-слой интерактивного этапа, FastAPI-роуты, зависимости и схемы, после чего протестируем модуль вручную и с помощью автоматизированных тестов.
- Мы добавим в платформу практические задания и систему автоматической проверки решений.
- Начнем с домена простых задач: реализуем сущность Task, попытки решений, историю отправок, правила проверки, роли, владельцев и доступы.
- Перейдем к кодовым задачам: создадим сущность CodeTask, сценарии отправки кода, application-слой проверки и жизненный цикл результата.
- Настроим очередь и worker для асинхронной обработки, разработаем Docker-runner для безопасного исполнения пользовательского кода и сохранения артефактов проверки.
- Отдельно рассмотрим безопасность, отказоустойчивость, внешний брокер, реальную очередь и поддержку разных языков программирования.
- В конце раздела подключим FastAPI-слой, обновим учебный прогресс и протестируем этап задач вручную и автоматически.
- Мы превратим проект в более полноценную образовательную платформу вокруг курсов, студентов и авторов.
- Реализуем жизненный цикл курса со статусами draft, published и archived, бизнес-сценарий публикации, каталог курсов и карточку курса.
- Добавим обложку, описание, сложность, теги, поиск и фильтрацию по темам, тегам и уровню сложности.
- Построим аналитику для студента и автора: завершение курса, баллы, слабые места, прохождение, сложные вопросы и задачи.
- Реализуем рейтинги, отзывы, комментарии, обсуждения под лекциями и историю активности студента.
- В завершении раздела оптимизируем чтение данных с помощью индексов и кеширования контента.
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 для интерактивного этапа: роуты, зависимости, схемы
- Практическое тестирование интерактивного этапа
- Автоматизированное тестирование тестового этапа
- Домашнее задание
- Точка входа в этап задач
- Сущность Task
- Попытка решения и история отправок
- Правила проверки простых задач
- Роли, владелец и доступы в домене задач
- Авторские сценарии простых задач
- Пользовательские сценарии простых задач
- Контракты и инфраструктурные границы
- Persistence простых задач и развитие схемы
- Кодовые задачи, сущность CodeTask
- Отправка кода и жизненный цикл проверки
- Авторские сценарии кодовых задач
- Application-слой кодовых задач
- Очередь и worker
- Среда исполнения: Docker-runner и артефакты проверки
- Безопасность и отказоустойчивость проверки кода
- Прогресс кодовых задач и итоговая учебная модель
- FastAPI и сценарии проверки задач
- Практическое тестирование этапа задач
- Внешний брокер и реальная очередь
- Поддержка других языков программирования в задачах
- Практическое тестирование этапа задач, ч.2
- Автоматизированное тестирование этапа задач
- Домашнее задание
- Жизненный цикл курса: draft, published, archived
- Бизнес-сценарий публикации курса
- Каталог курсов и карточка курса
- Обложка, описание, сложность и теги курса
- Домашнее задание
- Поиск по каталогу курсов
- Фильтрация по темам, тегам и сложности
- Профиль пользователя
- Аналитика для студента: завершение, баллы, слабые места
- Домашнее задание
- Аналитика для автора: прохождение, сложные вопросы и задачи
- Рейтинг и отзывы о курсе
- Домашнее задание
- История активности студента по платформе
- Индексы, оптимизация чтения
- Кеширование контента
Показать больше
Зарегистрируйтесь
, чтобы посмотреть контент.