Backend для TodoList веб-приложения.
- FastAPI — основной фреймворк для разработки с поддержкой асинхронных REST API и встроенной документацией.
- SQLAlchemy — объектно-реляционное отображение (ORM) для работы с базой данных PostgreSQL.
- Alembic — инструмент миграций для SQLAlchemy, используемый для управления схемой базы данных.
- PostgreSQL — основная реляционная база данных проекта.
- uuid-ossp - расширение для генерации uuid
- pg_trgm - триграммная фильтрация похожих строк
- Redis — используется для хранения refresh-токенов и реализации ограничения количества запросов (rate limiting).
- MinIO — локальное S3-совместимое файловое хранилище, применяемое для загрузки и хранения пользовательских файлов и изображений.
- Pydantic — библиотека для строгой валидации и сериализации данных, используемая при описании входных и выходных схем FastAPI.
-
Клонировать репозиторий
git clone https://github.com/ItzSkyReed/TaskFlow-Backend.git
-
Установить Docker и Docker Compose
- Для Windows или macOS: https://www.docker.com/products/docker-desktop
- Для Linux:
- Установка Docker: https://docs.docker.com/engine/install/
- Установка Docker Compose: https://docs.docker.com/compose/install/
-
Конфигурация окружения
- Настроить
.envв корне проекта, пример: .env.example - Настроить
redis.conf, пример: (redis.conf.example):
Пароль для Redis в
.envиredis.confдолжен совпадать - Настроить
-
Запуск проекта
В корневой папке проекта (где находится docker-compose.yml):
--buildнеобходим только при первом запускеdocker-compose up --build
-
Доступ к приложению
После запуска приложение будет доступно по адресу, указанному в конфигурации
Стандартные пути:
- API: http://localhost/task_flow/api/v1/{route}
- CDN: http://localhost/task_flow/cdn/{route}
- Docs (swagger): http://localhost/task_flow/docs
- Redoc: http://localhost/task_flow/redoc
-
Установка UV https://github.com/astral-sh/uv?tab=readme-ov-file#installation
UV - пакетный менеджер для Python
-
Создание виртуального окружения
uv venv --python 3.13.5
-
Установка зависимостей из pyproject.toml
uv install -r pyproject.toml
-
Установка зависимостей для разработки (опционально) Если планируется использовать такие инструменты, как ruff, mypy, pytest и т.п.:
uv pip install -r requirements-dev.txt
alembic revision --autogenerate -m "<MSG>"Миграции автоматически применяются при запуске через docker-compose
alembic upgrade headЗапускать из корня проекта
docker compose -p taskflow_test -f docker-compose.test.yml --env-file .env.test up --build