Skip to content

Repository files navigation

Room Booking Service

Room Booking Service — это backend-сервис для управления бронированием переговорных комнат. Проект разработан в рамках изучения Go и построения высоконагруженных систем. Сервис поддерживает два типа пользователей (администраторы и обычные пользователи) с разными уровнями доступа, автоматическую генерацию временных слотов на основе расписания и интеграцию с внешними сервисами (например, для создания ссылок на конференции).

Возможности

Администратор

Управление переговорками (создание, просмотр списка)

Создание расписания доступности для переговорки (один раз, без возможности изменения)

Просмотр всех броней в системе с пагинацией

Пользователь

Просмотр переговорок и доступных временных слотов

Создание и отмена своих броней

Просмотр только будущих броней (прошедшие автоматически скрываются)

Опциональное создание ссылки на конференцию при бронировании

Общие возможности

JWT-аутентификация с ролевой моделью (admin/user)

Тестовый эндпоинт /dummyLogin для быстрого получения токена

Полноценная регистрация и логин по email/паролю

Стек

Go 1.25, PostgreSQL 15, Docker, Docker compose

Старт

docker-compose up --build или

make help
make up

Основные эндпоинты

Метод Эндпоинт Описание Роль
Get /_info Health check public
Post /rooms/create Создать комнату admin
Get /rooms/list Список комнат admin/user
Post /rooms/{roomId}/schedule/create Создать расписание admin
Get /rooms/{roomId}/slots/list?date=YYYY-MM-DD Доступные слоты admin/user
Post /bookings/create Создать бронь user
Get /bookings/my Мои брони user
Post /bookings/{bookingId}/cancel Отменить бронь user
Get /bookings/list?page=1&pageSize=20 Все брони admin

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

make test-unit
make test-integration
make test-e2e

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages