Описание:
ПО для автоматизации библиотеки покрывает все кейсы от управления движениями книги, до административной части.
Создаю проект исключительно для учебных целей. Посмотрим что будет.
Проект разделён на четыре слоя:
presentation— HTTP API, CLI, схемы запросов и ответов;application— прикладные сервисы и сценарии использования;domain— предметные сущности и контракты репозиториев без зависимостей от фреймворков;infrastructure— PostgreSQL, Redis, JWT, хеширование паролей и конфигурация.
Прикладной и доменный слои не зависят от FastAPI, Pydantic, SQLAlchemy и Redis. Инфраструктура реализует объявленные ими контракты, а сборка зависимостей выполняется на границе presentation-слоя.
Для развертки проекта, открываем каталог environment
копируем в нем пример файла настроек и сохраняем убрав слово example:
.env.example -> .env
.env.postgresql.example -> .env.postgresql
.env.redis.example -> .env.redis
указываем свои значения.
Далее устанавливаем зависимости проекта: uv sync
Запуск в докере:
-
make build -
make up
Команды для работы с проектом перечислены в Makefile,
показать весь список доступных команд: make list
Автор: Артём