Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Typing SVG

Used technology

  • Python 3.10;
  • FastApi ( Web framework for building APIs );
  • Docker and Docker Compose ( containerization );
  • PostgreSQL ( database );
  • SQLAlchemy ( working with database from Python );
  • RabbitMQ ( Queue )
  • Alembic ( database migrations made easy );
  • Pydantic ( models )

image image


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

  1. Клонировать проект в удобное место:
git clone https://github.com/Whitev2/bet-test-api.git
  1. Собрать и запустить контейнеры:
docker-compose build
docker-compose up

Дополнительные команды

  1. Создание файла миграций:
docker-compose exec bet_maker alembic revision --autogenerate -m "init"
  1. Обновление базы данных:
docker-compose exec bet_maker alembic upgrade head
  1. Остановка контейнеров:
docker-compose down
  1. Запуск контейнеров:
docker-compose up

API: Документация


Описание функционала

  • Сервис позволяет просматривать активные ивенты
  • Сервис позволяет делать ставки на активные ивенты
  • Сервис позволяет просматривать свои ставки
  • Сумма ставки не может быть меньше 0 - иначе будет вызвана ошибка
  • Maker получает активные ивенты из Provider через endpoint url
  • При изменении состояния со стороны Provider - меняется статус у ставки
  • Обмен данными для изменения состояний реализован через aio-pika и RabbitMQ
  • Все сервисы собираются в Docker Compose
  • Возможна интеграция с k8s

Что можно доработать

  • Покрыть все Юнитами
  • Запись в базу должна быть транзакционной и атомарной
  • Расставить блокировки чтобы исключить состояние гонки

About

Betting backend — FastAPI microservice with RabbitMQ event queue, PostgreSQL, Docker

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages