Skip to content

API сервис бронирования номеров в отеле

License

Notifications You must be signed in to change notification settings

dmsnback/bookinn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BookInn

API сервис для бронирования номеров

BookInn workflow

Описание

Сервис — REST API для бронирования номеров в отеле.
Реализован на Django + Django REST Framework, используется Djoser для аутентификации (JWT), drf-spectacular для документации.

Проект адаптирован для использования PostgreSQL и развёртывания в контейнерах Docker.

Вернуться в начало

Технологии

Python Django DjangoREST Docker Postgres GitHub Actions Nginx Gunicorn

Вернуться в начало

Основные ресурсы

  • /api/v1/rooms/ — CRUD и список номеров
  • /api/v1/room_type/ — типы номеров
  • /api/v1/bookings/ — бронирования (создание/обновление/просмотр)
  • /api/v1/room_images/ — загрузка фото номера
  • /api/v1/auth/ — djoser (регистрация, логин, токены)

Вернуться в начало

Шаблон заполнения .env-файла, расположен по пути infra/.env

в settings.py указаны дефолтные значения для переменных из env-файла

SECRET_KEY = 'Ваш секретный ключ'

DB_ENGINE=django.db.backends.postgresql # указываем, что работаем с postgresql
DB_NAME=postgres # имя базы данных
POSTGRES_USER=postgres # логин для подключения к базе данных
POSTGRES_PASSWORD=postgres # пароль для подключения к БД
DB_HOST=db # название сервиса (контейнера)
DB_PORT=5432 # порт для подключения к БД 

Вернуться в начало

Запуск проекта на локальной машине

  • Склонируйте репозиторий
git clone git@github.com:dmsnback/bookinn.git
  • Переходим в папку с файлом docker-compose.yaml
cd infra
  • Запускаем Docker контейнеры
docker-compose up -d --build
  • Выполняем миграции
docker-compose exec backend python manage.py migrate 
  • Создаём суперюзера
docker-compose exec backend python manage.py createsuperuser
  • Собираем статику
docker-compose exec backend python manage.py collectstatic --no-input
  • Наполняем базу данных содержимым из файла rooms_fixture.json:

В базу добавится 10 номеров.

docker-compose exec backend python manage.py loaddata data/rooms_fixture.json

Проект станет доступен по адресу:

http://localhost/api/v1/

Админка станет доступна по адресу:

http://localhost/admin/

Документация к API будет доступна по адресу:

http://localhost/api/docs/

Вернуться в начало

Автор

Вернуться в начало

About

API сервис бронирования номеров в отеле

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published