Meeting Rooms API — это REST API для системы бронирования переговорных комнат в офисе. Система позволяет пользователям:
- Просматривать доступные комнаты.
- Бронировать свободные слоты.
- Управлять своими бронированиями.
- Аутентификация пользователей:
- JWT-токены для входа и защиты ручек.
- CRUD для переговорных комнат:
- Администраторы могут создавать, редактировать и удалять комнаты.
- Все пользователи могут просматривать список и детали комнат.
- Бронирование комнат:
- Пользователи могут бронировать свободные комнаты на конкретное время.
- Нельзя бронировать уже занятую комнату или забронировать более одной комнаты на одно и то же время.
- Фильтрация комнат:
- Фильтрация по дате, времени, вместимости и этажу.
- Управление бронированиями:
- Пользователи видят только свои бронирования.
- Администраторы видят все бронирования.
- Backend Framework: Django 4.x
- API Framework: Django REST Framework
- База данных: PostgreSQL
- Контейнеризация: Docker + Docker Compose
- Пакетный менеджер: UV
- Тестирование: Pytest или встроенные тесты Django
- Документация API: Swagger (через drf-spectacular)
- Docker и Docker Compose установлены на вашем компьютере.
- Python 3.13 (для локальной разработки).
- Пакетный менеджер UV (опционально).
git clone
cd meeting_roomsСоздайте файл .env в корневой директории проекта и добавьте туда параметры подключения к базе данных:
DB_NAME=djangoproject
DB_USER=djangouser
DB_PASSWORD=password
DB_HOST=db
DB_PORT=5432
SECRET_KEY=your_secret_key_here
DEBUG=True
Используйте Makefile для запуска контейнеров с помощью Docker Compose:
make webКонтейнеры будут запущены в фоновом режиме.
После запуска контейнеров выполните миграции базы данных:
make web-shell
python manage.py migrateДля доступа к административной панели создайте суперпользователя:
python manage.py createsuperuserОткройте браузер и перейдите по адресу http://localhost:8000.
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 доступна по следующим адресам после запуска приложения:
- Swagger UI: http://localhost:8000/api/schema/swagger-ui/
- ReDoc: http://localhost:8000/api/schema/redoc/
Для запуска тестов используйте команду Makefile:
make testТесты автоматически проверяют основные функции API, включая создание пользователей, бронирование комнат, фильтрацию и управление данными.
Если вы хотите разрабатывать проект локально, выполните следующие шаги:
- Установите зависимости через UV:
uv install- Запустите приложение локально без Docker:
python manage.py runserverЭтот проект распространяется под лицензией MIT.