Skip to content

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

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages