API для бронирования столов в ресторане.
Нужно:
• Использовать fast api.
• Опыт в асинхронном программировании.
• Опыт работы с MS SQL/PostgreSQL.
• Использовать ORM sqlalchemy.
• Авторизация JWT.
• Обработать исключения.
• Понимание принципов SOLID и чистой архитектуры.
• Решение расположить на Github.
• Реализовать сборку проекта.
Не нужно:
• Использовать чужой код.
• Делать как попало.
Плюсом будет:
• Написать Dockerfile.
• Выложить образ на Docker Hub.
• Опыт применения Celery или rq.
Что требуется реализовать:
• Регистрация/авторизация пользователя (логин, пароль, номер телефона).
• Авторизация (email, password).
- Возвращает JWT время жизни 1 час.
• Регистрация (email, пароль, номер телефона, имя).
- Возвращает JWT время жизни 1 час.
• Получить доступные к бронированию столы
- Выбор времени бронирования стола (ограничить доступное время: с 12:00 до 22:00).
- 7 столов на 2 персоны, 6 столов – 3 персоны, 3 стола - 6 персон.
- Если у стола занято 1 место он не доступен к бронированию
- Возвращает json
• Бронирование
- Стол бронируется на 2 часа
- Возвращает успешно
• Получить забронированные пользователем столы
- Возвращает json
• Отмена бронирования
- Самое позднее за 1 час до времени брони.
• Изменить бронирование
- Возвращает успешно
• Приложить скрин диаграммы БД
• Задокументировать код в swagger
При проверке тестового задания, кроме реализации прописанных пунктов, будет обращено внимание на:
• Стиль кода
• Логическую структуру проекта
• Соблюдение определенных стандартов (например, конфигурация проекта)
• Корректную реализацию выбранных решений