Микросервис для бронирования столиков в ресторане с поддержкой временных слотов и проверкой конфликтов.
- Модульная архитектура
- Поддержка асинхронных запросов
- Валидация временных слотов бронирования
- Конфликт-менеджер для пересекающихся броней
- Подробное логирование в JSON и консоль
- Готовый Docker-образ
Компонент | Технологии |
---|---|
Бэкенд | Python 3.13, FastAPI, SQLAlchemy 2.0 |
База данных | PostgreSQL 17 |
Деплой | Docker + docker-compose |
Тестирование | pytest |
- Docker 28+
- Python 3.13+
- PostgreSQL 17
# 1. Клонировать репозиторий
git clone https://github.com/ykozhanov/Booking.git
# 2. Запустить сервисы
docker-compose up -d
- Swagger UI: http://localhost:8000/docs
- Redoc: http://localhost:8000/redoc
GET /tables/ — список всех столиков
POST /tables/ — создать новый столик
DELETE /tables/{id} — удалить столик
GET /reservations/ — список всех броней
POST /reservations/ — создать новую бронь
DELETE /reservations/{id} — удалить бронь