Skip to content

buddyuchiha/RestaurantAPI

Repository files navigation

Restaurant API

Микросервис для автоматизации бронирования столиков в ресторанах с асинхронным управлением данными, кэшированием и автоматизированным развертыванием.

Функционал

  • Управление бронированием: Создание, отмена и просмотр резервов в реальном времени.
  • Контроль доступности: Автоматическая проверка вместимости и статуса столиков при попытке бронирования.
  • Аутентификация: Регистрация и вход пользователей для управления личными бронированиями, используя JWT - токены.
  • Кэширование: Оптимизация часто запрашиваемых данных (список доступных столов) через Redis.
  • Авто-миграции: Автоматическое обновление схемы базы данных через Alembic при старте контейнера.
  • REST API: Документированный интерфейс на FastAPI с валидацией входных данных через Pydantic.
{F87A9FF1-C1F5-42B1-A9C8-67650857949A} {C09738DD-E1DB-4D4D-BB5F-622D62A9399B}

Технологии

Python FastAPI PostgreSQL Redis JWT Docker SQLAlchemy Alembic Pydantic Poetry

Инструкция запуска через Docker Compose

  1. Клонировать git-репозиторий
{A2259520-F15E-4362-9B4B-4BB66D9B7FE5} {347990AF-F622-4C1C-AB33-A351B478A7CB}
  1. Открыть проект
{24AF8491-ADA9-4146-AA9E-7A2546BA1324}
  1. Сконфигурировать .env по шаблону
{24FADD0C-7495-4390-AA79-C9706D473A3E}
  1. Выполнить команду docker compose up -d --build
{779D72B3-5882-4E86-9A40-EA152B9E7A15}
  1. Подождать 20 секунд и перейти на: http://127.0.0.1:8000/docs
{8AE3102E-0B65-4B5B-A106-7620C60D1581}

Инструкция локального запуска

  1. Клонировать git-репозиторий
{A2259520-F15E-4362-9B4B-4BB66D9B7FE5} {347990AF-F622-4C1C-AB33-A351B478A7CB}
  1. Открыть проект
{24AF8491-ADA9-4146-AA9E-7A2546BA1324}
  1. Сконфигурировать .env по шаблону
{24FADD0C-7495-4390-AA79-C9706D473A3E}
  1. Скачать poetry и установить зависимости
{B3AE7274-8A9E-4A3A-841E-5D8EF3718A57}

Версия Poetry: 2.2.1

{95E32486-D784-4E8D-98C1-9A480D70EACD}
  1. Выполнить команду docker-compose up -d database redis-cache
{674C4DF7-BBB9-409B-97DB-7721D17C0615}
  1. Применить миграции
{DD1C58AC-622B-48A0-A0EC-1E74AB15C86A}
  1. Выполнить команду python -m app.main и перейти на http://127.0.0.1:8000/docs
{221B42AC-CADC-4F3F-B9B2-778301004D11} {8AE3102E-0B65-4B5B-A106-7620C60D1581}

Авторизация

  1. Зарегистрироваться
{FDFE0781-023B-48A5-8AB5-A968FA02F4EC} {46471B8A-C8C1-4298-9CBA-325F9047ACE6}
  1. Авторизоваться и получить JWT access token
{61B8CF32-08EA-4074-A3EB-0E700C349C81} {0D0FC5ED-9C86-42EC-A317-161ACEF91FD6}
  1. Скопировать его и вставить в поле у кнопки Authorize
{9736FF24-DD61-4C46-B49C-1AB71881858E}
  1. После появится возможность использовать эндпоинты
{8889E4A7-7C45-4A9D-A1DA-9D19B18266F3}

Конфигурация

Все настройки можно регулировать в .env

{56B85513-ACDF-446E-AA02-EA1477C4E2F8}

About

Микросервис для автоматизации бронирования столиков в ресторанах с асинхронным управлением данными, кэшированием и автоматизированным развертыванием.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors