You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TaskFlow — полнофункциональный REST API для управления задачами, проектами и категориями. Проект демонстрирует применение современных практик backend-разработки: чистую архитектуру, паттерны проектирования и production-ready инфраструктуру.
Ключевые особенности
JWT + OAuth 2.0 — аутентификация через логин/пароль и Google
CRUD операции — управление проектами, задачами и категориями
Поиск и фильтрация — по названию, статусу, категории, проекту
Кэширование — Redis для оптимизации производительности
Фоновые задачи — Celery + RabbitMQ для email-уведомлений
Админ-панель — SQLAdmin для управления данными
CI/CD — автоматические тесты, сборка и деплой
Технологический стек
Backend
Технология
Версия
Назначение
Python
3.13
Язык программирования
FastAPI
0.128
Веб-фреймворк
SQLAlchemy
2.0
ORM (async)
Pydantic
2.12
Валидация данных
Alembic
1.17
Миграции БД
Celery
5.6
Фоновые задачи
Pytest
9.0
Тестирование
Инфраструктура
Технология
Версия
Назначение
PostgreSQL
18
База данных
Redis
8.4
Кэширование
RabbitMQ
3.13
Message broker
Docker
-
Контейнеризация
Gunicorn
23.0
WSGI/ASGI сервер
Nginx
-
Reverse proxy
GitLab CI
-
CI/CD pipeline
Дополнительные библиотеки
python-jose — JWT токены
passlib[bcrypt] — хеширование паролей
httpx — HTTP клиент
fastapi-cache2 — кэширование ответов API
SQLAdmin — админ-панель
MailerSend — отправка email
Архитектура
Проект построен на принципах Clean Architecture и SOLID:
src/
├── api/ # API слой (роутеры, зависимости)
│ └── v1/ # Версионирование API
├── services/ # Бизнес-логика (Service Layer)
├── repositories/ # Доступ к данным (Repository + DAO)
├── uow/ # Управление транзакциями (Unit of Work)
├── models/ # ORM модели (SQLAlchemy)
├── schemas/ # DTO (Pydantic)
├── core/ # Кастомные исключения
├── tasks/ # Celery задачи
├── integrations/ # Внешние сервисы (Email)
├── admin/ # SQLAdmin конфигурация
└── connectors/ # Подключения (Redis)
tests/ # Тесты
Применённые паттерны
Паттерн
Расположение
Описание
Repository
repositories/
Абстракция доступа к данным
Unit of Work
uow/
Координация транзакций между репозиториями
Service Layer
services/
Инкапсуляция бизнес-логики
Dependency Injection
api/dependencies.py
Внедрение зависимостей через FastAPI
DTO (Data Transfer Object)
schemas/
Pydantic схемы для API
Функциональность
Аутентификация и авторизация
Регистрация с email-подтверждением (MailerSend)
JWT аутентификация (access + refresh токены)
OAuth 2.0 через Google
User-agent fingerprinting для безопасности
Разграничение прав (user / superuser)
API возможности
Ресурс
Операции
Особенности
Проекты
CRUD
Привязка к пользователю
Задачи
CRUD + поиск
Статусы (TODO, IN_PROGRESS, DONE), дедлайны
Категории
CRUD
Управление только для superuser
Пользователи
Просмотр
Только для superuser
Технические особенности
Асинхронная обработка всех запросов
Кэширование с учётом пользователя и параметров
Централизованная обработка ошибок
Автоматические миграции при запуске
Healthcheck для всех сервисов
Быстрый старт
Требования
Docker и Docker Compose
Git
Установка
# Клонирование репозитория
git clone https://github.com/intpoln/taskflow.git
cd taskflow
# Создание .env файла (см. .env.example)
cp .env.example .env
# Отредактируйте .env, заполнив необходимые значения# Запуск
docker compose up -d --build
TaskFlow — REST API на FastAPI для управления задачами. JWT + OAuth 2.0, CRUD, поиск, кэширование (Redis), фоновые задачи (Celery + RabbitMQ), админ-панель. Архитектура: Repository, Unit of Work, Service Layer. CI/CD, Docker