SmartCalc — это веб-приложение, реализующее функциональность умного калькулятора на основе современных технологий Python и FastAPI. Репозиторий создан для демонстрации интеграции серверной части с базами данных, очередями задач, а также для работы с конфигурацией и тестированием.
- Работа с REST API на базе FastAPI.
- Хранение данных в реляционной базе данных PostgreSQL.
- Кэширование данных и очереди задач с использованием Redis.
- ORM для работы с базой данных через SQLAlchemy.
- Управление миграциями с помощью Alembic.
- Организация модульного кода и конфигурации через Poetry и Pydantic.
- Python ≥ 3.10
- Redis
- PostgreSQL
-
Клонируйте репозиторий:
git clone https://github.com/Rxyalxrd/smartcalc.git cd smartcalc
-
Установите зависимости с использованием Poetry:
poetry install
-
Настройте файл
.env
на основе примера.env.example
:cp .env.example .env
-
Примените миграции базы данных:
poetry run alembic upgrade head
-
Запустите сервер разработки:
poetry run uvicorn app.main:app --reload
В репозитории предусмотрен Makefile для упрощения распространённых задач:
make run
— Запуск приложения.make migrate
— Применение миграций.make test
— Запуск тестов.
В папке tests
находятся модульные тесты для проверки функциональности приложения. Чтобы запустить тесты, выполните команду:
poetry run pytest
app/
— основной код приложения.frontend/
— интеграция с фронтенд-частью.tests/
— тестовые файлы.alembic/
— файлы для миграций базы данных.
- FastAPI: высокопроизводительный веб-фреймворк.
- PostgreSQL: реляционная база данных.
- Redis: кэширование и очереди задач.
- SQLAlchemy: работа с базой данных через ORM.
- Alembic: управление миграциями.
- Pydantic: обработка данных и управление конфигурацией.
Проект распространяется под лицензией MIT.