Документация проекта "Отель"
Введение
Добро пожаловать в документацию проекта "Отель". Этот проект представляет собой приложение для бронирования комнат в отеле. С помощью этого приложения пользователи могут просматривать доступные комнаты, искать свободные комнаты в заданном временном интервале, бронировать комнаты, а также просматривать свои бронирования. Администратор может управлять информацией о комнатах, добавлять, удалять и редактировать их через админ-панель 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. Вы можете использовать эти эндпоинты для работы с комнатами и бронированиями в отеле. При необходимости, вы можете дополнить функционал и улучшить проект по своим потребностям. Удачной работы с проектом!