https://github.com/meetinger/bwgroup
https://github.com/meetinger/bwgroup
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/meetinger/bwgroup
- Owner: meetinger
- Created: 2023-03-10T15:02:19.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-03-10T16:03:44.000Z (over 3 years ago)
- Last Synced: 2025-01-17T08:22:27.768Z (over 1 year ago)
- Language: Python
- Size: 33.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# bwgroup
## Тестовое задание bwgroup
### Установка и настройка
1. Склонируйте репозиторий при помощи команды `git clone https://github.com/meetinger/bwgroup`
и перейдите в директорию репозитория
2. Настройте файлы `.env` и `.env.docker`
3. Соберите образ контейнера с помощью команды `sudo docker build .`
4. Запустите контейнеры с помощью команды `sudo docker-compose up -d`
5. Проверьте работу API с помощью PostMan или чего-нибудь другого
### Дополнительные фичи:
1. Документация `http://127.0.0.1:8000/redoc` и `http://127.0.0.1:8000/docs`
2. Логирование
3. Регистрация и JWT-авторизация
### Замечания:
1. Очередь запросов находится в одной таблице, но у каждого запроса присутствует внешний ключ к пользователю.
При этом выполнение запросов выполняется в отдельном потоке для каждого пользователя, поэтому условия ТЗ соблюдены,
Т.к у каждого пользователя отдельная очередь запросов
### ТЗ:
Нужно реализовать систему транзакций.
Как происходит транзакция:
Идет запрос на сервер от клиента, по клиенту выстраивается очередь на вывод.
Важно:
1. у каждого клиента есть своя очередь;
2. при нехватке денег, нужно блокировать запрос
Что нужно реализовать :
1. бд на postgresql, где будет схема с клиентами и их балансами
2. сервер, которые проверяет все условия(хватает ли денег, если сервер упадет, то история, которая идет на вывод не
должна пропасть) и делает изменение баланса(на + или -)