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

https://github.com/vladimir-ivanov-92/time_value_api

Test_task on FastAPI
https://github.com/vladimir-ivanov-92/time_value_api

alembic fastapi fastapi-users gunicorn httpx plpgsql pytest pytest-asyncio python3 sqlalchemy

Last synced: 4 months ago
JSON representation

Test_task on FastAPI

Awesome Lists containing this project

README

          

# Time_value_API

Получение агрегированной информации из БД. Для записи информации в БД используется
написанная на PL/pgSQL хранимая процедура и триггер.
Данные хранятся в БД postgres. Для работы с данными используется SQLAlchemhy и Alembic
для создания миграций. В проекте применяется ООП, валидация данных
с помощью pydantic. Тестирование с помощью pytest. Сборка с помощью Docker.
Запуск с помощью Makefile.

### В данном проекте использовались следующие инструменты:

- Python v3.11
- fastapi v0.103
- fastapi-users v12.1
- sqlalchemy v2.0
- alembic v1.11
- pandas v2.0
- pydantic v2.3
- poetry

## Настройка и запуск:
1. Перейдите в директорию, в которую будете клонировать репозиторий. Необходимо наличие
установленного и запущенного Docker.
2. Для скачивания репозитория и разворачивания проекта локально в docker контейнерах
(создание БД, тестовой БД, запуска приложения):

```bash
git clone https://github.com/Vladimir-Ivanov-92/time_value_API.git
cd time_value_API
make up
```

3. http://0.0.0.0:8080/docs для ознакомления с документацией.
4. Для запуска тестов:

```bash
make test
```

5. Для запуска функции, выполняющий хранимую процедуру каждые 5 секунд в течении
1 минуты:

```bash
make run_stored_pocedure
```

5. Для заверешения работы приложения:

```bash
make down
```