Skip to content

ProFastCode/meeting_rooms

Repository files navigation

Meeting Rooms API

Описание проекта

Meeting Rooms API — это REST API для системы бронирования переговорных комнат в офисе. Система позволяет пользователям:

  • Просматривать доступные комнаты.
  • Бронировать свободные слоты.
  • Управлять своими бронированиями.

Основные функции:

  1. Аутентификация пользователей:
    • JWT-токены для входа и защиты ручек.
  2. CRUD для переговорных комнат:
    • Администраторы могут создавать, редактировать и удалять комнаты.
    • Все пользователи могут просматривать список и детали комнат.
  3. Бронирование комнат:
    • Пользователи могут бронировать свободные комнаты на конкретное время.
    • Нельзя бронировать уже занятую комнату или забронировать более одной комнаты на одно и то же время.
  4. Фильтрация комнат:
    • Фильтрация по дате, времени, вместимости и этажу.
  5. Управление бронированиями:
    • Пользователи видят только свои бронирования.
    • Администраторы видят все бронирования.

Технологии

  • Backend Framework: Django 4.x
  • API Framework: Django REST Framework
  • База данных: PostgreSQL
  • Контейнеризация: Docker + Docker Compose
  • Пакетный менеджер: UV
  • Тестирование: Pytest или встроенные тесты Django
  • Документация API: Swagger (через drf-spectacular)

Установка и запуск проекта

Требования:

  1. Docker и Docker Compose установлены на вашем компьютере.
  2. Python 3.13 (для локальной разработки).
  3. Пакетный менеджер UV (опционально).

Шаги для запуска:

1. Клонируйте репозиторий:

git clone 
cd meeting_rooms

2. Настройте .env файл:

Создайте файл .env в корневой директории проекта и добавьте туда параметры подключения к базе данных:

DB_NAME=djangoproject
DB_USER=djangouser
DB_PASSWORD=password
DB_HOST=db
DB_PORT=5432

SECRET_KEY=your_secret_key_here
DEBUG=True

3. Запустите контейнеры:

Используйте Makefile для запуска контейнеров с помощью Docker Compose:

make web

Контейнеры будут запущены в фоновом режиме.

4. Выполните миграции:

После запуска контейнеров выполните миграции базы данных:

make web-shell
python manage.py migrate

5. Создайте суперпользователя:

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

python manage.py createsuperuser

6. Проверьте работу приложения:

Откройте браузер и перейдите по адресу http://localhost:8000.


Использование Makefile

Makefile упрощает управление проектом. Вот доступные команды:

Команда Описание
make web Запускает контейнеры с приложением в фоновом режиме (docker-compose up).
make web-down Останавливает и удаляет контейнеры (docker-compose down).
make web-shell Открывает интерактивную оболочку внутри контейнера приложения (bash).
make web-logs Отображает логи контейнера приложения в реальном времени.
make test Запускает тесты Django внутри контейнера.
make reqs Экспортирует зависимости проекта в файл requirements.txt.

Документация API

Документация API доступна по следующим адресам после запуска приложения:


Тестирование

Для запуска тестов используйте команду Makefile:

make test

Тесты автоматически проверяют основные функции API, включая создание пользователей, бронирование комнат, фильтрацию и управление данными.


Разработка

Установка зависимостей локально:

Если вы хотите разрабатывать проект локально, выполните следующие шаги:

  1. Установите зависимости через UV:
uv install
  1. Запустите приложение локально без Docker:
python manage.py runserver

Лицензия

Этот проект распространяется под лицензией MIT.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors