-
Notifications
You must be signed in to change notification settings - Fork 1
Admin panel guide
https://github.com/open-cu/bookit-back/issues/62
Ссылка на документацию swagger: http://localhost:8080/swagger-ui/index.html (при запуске приложения в dev-mode)
Система бронирования мест в офисе (коворкинге) разработана студенами СПбПУ по заказу и при поддержке Т-банка. В рамках проекта разработаны основное приложение, доступное в формате telegram-miniapp, а также админ-панель, предназначенная для удобной работы администраторов по контролю помещений, бронирований, рассмотрению и решению запросов пользователей, а также публикации новостей и организации мероприятий. Админ-панель доступна по ссылке: https://admin.tcoworking.ru/
Перейдем по ссылке выше. Нас встречает окно авторизации в систему (опция регистрации самостоятельно не предусмотрена, данные для входа выдаются системным администратором или старшим администратором, по крайней мере, такова задумка).
Как можно заметить, поля, связанные с tg id и именем являются обязательными, но на данный момент они не валидируются, так как планируется другая форма авторизации.
Введем некоторые данные для авторизации и нажмем кнопку "Войти".
Нас встречает страница с основным интерфейсом приложения:
- левой боковой панелью с вкладками админ-панели, логотипом Т-банка, иконкой пользователя и кнопкой "Выйти из аккаунта"
- окнами с таблицами и фильтрами в центре
- кнопкой создания записи в таблице вверху страницы
При нажатии на кнопку "Выйти из аккаунта" мы снова попадаем на окно для авторизации.
Рассмотрим разделы админ-панели более подробно.
Тикеты - это обращения от клиентов или сотрудников коворкинга, в которых они описывают различного рода проблемы и предложения касательно бронирований. Пока страница с тикетами выглядит пустовато, создадим пару тикетов самостоятельно. Для этого нажмем на кнопку "Создать тикет". Всплывает форма для заполнения полей тикета. Ниже можно посмотреть значения элементов в выпадающих списках, будем далее называть их enum-ы (перечисления). Подробнее о значениях enum можно прочитать в документации, в swagger.
Важно отметить, что значение приоритета DEFAULT устанавливается при создании тикета пользователем, чтобы в дальнейшем администратор рассмотрел заявку и самостоятельно оценил ее приоритет.
Также обратим внимание на поле "id пользователя", в него автоматически подставляется id администратора как пользователя, однако ничто не мешает создать тикет от имени другого пользователя, который присутствует в базе данных.
Для примера введем данные, как на скриншоте ниже, и нажмем кнопку "Создать тикет".
Как видно, тикет появился в таблице.
Обратим внимание на еще одну немаловажную деталь. При создании тикета с типом OTHER описание ОБЯЗАТЕЛЬНО, в остальных случаях его можно не указывать. Для демонстрации, создадим еще один тикет.
Отлично! Теперь рассмотрим фильтрацию записей в таблице.
Важно! Система фильтрации запросов, а также системы редактирования и удаления записей одинаковы во всех вкладках с точностью до структуры, поэтому, не нарушая общности, рассмотрим подробно их только на примере тикетов во избежание излишнего удлинения гайда.
Чтобы показать фильтры на странице, необходимо нажать на иконку напротив "списка тикетов". Появляются три опции для фильтрации:
- По дате с помощью выбора начала и конца временного промежутка в календаре
- По типу с помощью всплывающего списка
- По описанию (не обязательно полностью вводить описание, поиск будет производиться и по части текста, введенной в запрос, что удобно, если описание большое или известны только ключевые слова)
- Также планируется фильтрация по статусу и приоритету (на момент 16 августа 2025 года)
Рассмотрим возможность изменения тикета. Для изменения записи необходимо нажать на иконку карандаша напротив записи. На скрине ниже представлена форма для редактирования. Укажем вместо DEFAULT - CRITICAL. Хотя поле для причины изменения указано, в таблице пока его нет, это на этапе разработки (со статусами, требующими указание причин, можно ознакомиться в документации).
Осталось рассмотреть удаление тикета. Нажмем на иконку мусорной корзины напротив нужной записи. Всплывает окно, требующее подтверждение, нажимаем "Да".
После автоматического обновления страницы появляется таблица без удаленной записи. (За кадром были удалены все записи и создана новая)
В конце обратим внимание на кнопку "Обновить" в верхней части таблицы. Она перезагружает таблицу путем отправки повторного запроса.
Теперь перейдем к помещениям, рассмотрим их в более быстром темпе.
Перед нами страница со всеми доступными помещениями. Сразу обратим внимание на поле "Images". В нем указаны гиперссылки на картинки, загруженные к карточке с помещением, которые будут отображаться в основном приложении.
При нажатии на ссылку открывается картинка в этой же вкладке. Перейдем назад на страницу с помещениями.
Рассмотрим форму для создания помещения
Рассмотрим поля. В поле "Особенности" можно выбрать несколько пунктов из предложенных
Важно! "Фото помещения" необходимо загружать локально, с устройства.
Введем тестовые данные для создания помещения.
Также рассмотрим окно для редактирования.
Наконец, поиск по фильтрам.
Перейдем к бронированиям.
Новый раздел - новые фичи. По умолчанию, на странице отображаются только 10 записей, поэтому, чтобы посмотреть оставшиеся 4, мы нажмем на стрелку внизу справа и попадем на новую страницу.
Кратко по возможностям:
- Фильтры
- Окно создания брони
Важно! В поле "Время" появятся окна с часами только в случае, если указать помещение и дату бронирования
- Изменение бронирования
Перейдем в раздел "Пользователи".
Ключевой особенностью данного раздела является тот факт, что пользователей нельзя ни добавить, не удалить. Редактировать пользователей имеет право ТОЛЬКО старший администратор (ROLE_SUPERADMIN). У каждого пользователя может быть несколько ролей.
Фильтры

Изменение
Мероприятия создаются только администраторами, обязательно проводятся в рамках какого-либо помещения, при создании мероприятия сразу системой бронируется место и время, чтобы пользователь случайно или умышленно не смог его занять.
На момент 16 августа 2025 года в рамках мероприятий предусмотрены только их карточки с кратким описанием, отдельно страницы для мероприятий в рамках основного приложения не предусмотрены.
- Фильтры
- Формы создания и редактирования
- Enum
На момент 16 августа 2025 года в рамках новостей предусмотрены только их карточки с кратким описанием, отдельно страницы для новостей в рамках основного приложения не предусмотрены.
- Формы для создания и редактирования
Во вкладке "Статистика" собрана основная информация об активности пользователей и использовании помещений для бронирований. Пока набор метрик ограничен. Для работы большинства метрик необходима фильтрация по тем или иным параметрам.
Главной "фишкой" приложения является встроенный ИИ-ассистент, позволяющий давать ответ на интересующий вопрос в текстовом виде. Пока функциональность ассистента также ограничена. В рамках запроса для ассистента есть опция "Humanize", которая позволяет давать ответ на естественном языке. По умолчанию, ответ возвращается в формате JSON. Рассмотрим работу ассистента на примере.
Еще один пример
Ключевой особенностью отзывов является тот факт, что их нельзя изменить, что добавляет объективности и честности. Отзывы, созданные администратором, помечаются отдельно. Однако, в текущей версии приложения отзыв можно создать от имени любого пользователя, в дальнейшем это будет исправлено.
- Форма для создания (поля "Оценка" и "Комментарий" являются обязательными)
Пока страница пуста, так как ни один из пользователей не является администратором (на момент написания статьи приложение было запущено в dev-mode, поэтому можно заходить в нее, не имея на то прав) Назначим себя супер администратором во вкладке "Пользователи" и вернемся к странице вновь.
Теперь у нас есть запись в таблице с администраторами. В остальном, отличий от вкладки "Пользователи" не имеется.
На этом знакомство с приложением можно считать оконченным, спасибо за уделенное на прочтение время!