Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rxyalxrd/smartcalc

Приложение, которое проводит теплотехнический расчет.
https://github.com/rxyalxrd/smartcalc

alembic fastapi makefile poetry-python postgresql pydantic-settings pydantic-v2 python3 redis sqlalchemy uvicorn

Last synced: about 2 months ago
JSON representation

Приложение, которое проводит теплотехнический расчет.

Awesome Lists containing this project

README

        

# SmartCalc

SmartCalc — это веб-приложение, реализующее функциональность умного калькулятора на основе современных технологий Python и FastAPI. Репозиторий создан для демонстрации интеграции серверной части с базами данных, очередями задач, а также для работы с конфигурацией и тестированием.

## Возможности

- Работа с REST API на базе **FastAPI**.
- Хранение данных в реляционной базе данных **PostgreSQL**.
- Кэширование данных и очереди задач с использованием **Redis**.
- ORM для работы с базой данных через **SQLAlchemy**.
- Управление миграциями с помощью **Alembic**.
- Организация модульного кода и конфигурации через **Poetry** и **Pydantic**.

## Установка и запуск

### Предварительные требования

- Python ≥ 3.10
- Redis
- PostgreSQL

### Шаги установки

1. Клонируйте репозиторий:

```bash
git clone https://github.com/Rxyalxrd/smartcalc.git
cd smartcalc
```

2. Установите зависимости с использованием Poetry:

```bash
poetry install
```

3. Настройте файл `.env` на основе примера `.env.example`:

```
cp .env.example .env
```

4. Примените миграции базы данных:

```bash
poetry run alembic upgrade head
```

5. Запустите сервер разработки:

```bash
poetry run uvicorn app.main:app --reload
```

### Использование Makefile

В репозитории предусмотрен Makefile для упрощения распространённых задач:

- `make run` — Запуск приложения.
- `make migrate` — Применение миграций.
- `make test` — Запуск тестов.

## Тестирование

В папке `tests` находятся модульные тесты для проверки функциональности приложения. Чтобы запустить тесты, выполните команду:

```bash
poetry run pytest
```

## Структура проекта

- `app/` — основной код приложения.
- `frontend/` — интеграция с фронтенд-частью.
- `tests/` — тестовые файлы.
- `alembic/` — файлы для миграций базы данных.

## Используемые технологии

- **FastAPI**: высокопроизводительный веб-фреймворк.
- **PostgreSQL**: реляционная база данных.
- **Redis**: кэширование и очереди задач.
- **SQLAlchemy**: работа с базой данных через ORM.
- **Alembic**: управление миграциями.
- **Pydantic**: обработка данных и управление конфигурацией.

## Лицензия

Проект распространяется под лицензией [MIT](./LICENSE).