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
- Host: GitHub
- URL: https://github.com/vladimir-ivanov-92/time_value_api
- Owner: Vladimir-Ivanov-92
- Created: 2023-08-30T15:19:50.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-04T21:06:00.000Z (over 2 years ago)
- Last Synced: 2025-01-08T22:36:01.563Z (over 1 year ago)
- Topics: alembic, fastapi, fastapi-users, gunicorn, httpx, plpgsql, pytest, pytest-asyncio, python3, sqlalchemy
- Language: Python
- Homepage:
- Size: 63.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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
```