/Test_Hotel_Room

тестовое задание

Primary LanguagePython

Документация проекта "Отель"

Введение

Добро пожаловать в документацию проекта "Отель". Этот проект представляет собой приложение для бронирования комнат в отеле. С помощью этого приложения пользователи могут просматривать доступные комнаты, искать свободные комнаты в заданном временном интервале, бронировать комнаты, а также просматривать свои бронирования. Администратор может управлять информацией о комнатах, добавлять, удалять и редактировать их через админ-панель Django.

Требования

Для запуска и использования проекта вам потребуется:

Python (рекомендуемая версия 3.7 или выше) Django (рекомендуемая версия 3.2 или выше) Django REST framework (DRF) Django REST framework SimpleJWT

Установка

Склонируйте репозиторий проекта:

git clone <url репозитория> Создайте виртуальное окружение и активируйте его:

python -m venv venv source venv/bin/activate # для Linux/Mac venv\Scripts\activate # для Windows

Установите зависимости: pip install -r requirements.txt

Примените миграции: python manage.py migrate

Создайте суперпользователя (администратора): python manage.py createsuperuser

Запустите сервер разработки Django: python manage.py runserver

Теперь вы можете открыть веб-браузер и перейти по адресу http://127.0.0.1:8000/ для просмотра доступных комнат. Для доступа к админ-панели, перейдите по адресу http://127.0.0.1:8000/admin/ и войдите с помощью учетных данных суперпользователя.

Аутентификация

Приложение использует аутентификацию с помощью JSON Web Token (JWT). Чтобы получить токен, необходимо выполнить запрос на /api/token/ с учетными данными пользователя (логин и пароль). Полученный токен можно использовать для доступа к защищенным ресурсам API.

API Endpoints

Получение токена: POST /api/token/ Параметры запроса: username, password

Обновление токена: POST /api/token/refresh/ Параметры запроса: refresh

Проверка действительности токена: POST /api/token/verify/ Параметры запроса: token

Просмотр списка всех комнат: GET /api/rooms/

Создание новой комнаты (только для администратора): POST /api/rooms/

Параметры запроса: number, price_per_night, capacity

Просмотр деталей комнаты: GET /api/rooms/<room_id>/

Обновление информации о комнате (только для администратора): PUT /api/rooms/<room_id>/ Параметры запроса: number, price_per_night, capacity

Удаление комнаты (только для администратора): DELETE /api/rooms/<room_id>/

Поиск свободных комнат в заданном интервале: GET /api/rooms/available/ Параметры запроса: start_date, end_date

Просмотр списка всех бронирований: GET /api/bookings/

Создание нового бронирования: POST /api/bookings/ Параметры запроса: user, room, start_date, end_date

Просмотр деталей бронирования: GET /api/bookings/<booking_id>/

Обновление информации о бронировании (только для администратора): PUT /api/bookings/<booking_id>/

Параметры запроса: user, room, start_date, end_date, status

Отмена бронирования (для пользователя или администратора): DELETE /api/bookings/<booking_id>/

Окончание

Это основная информация о проекте "Отель" и его API. Вы можете использовать эти эндпоинты для работы с комнатами и бронированиями в отеле. При необходимости, вы можете дополнить функционал и улучшить проект по своим потребностям. Удачной работы с проектом!