Клиент-серверное приложение для управления заявками гостей отеля. Позволяет автоматизировать обработку запросов (уборка номера, технический ремонт, рум-сервис, вопросы), сократить время выполнения заявок и обеспечить разграничение прав доступа по ролям.
Исходный код проекта доступен в репозитории:
- Backend (серверная часть): HotelRS_Backend — Ktor сервер на Kotlin
- Frontend (клиентская часть): shared — Android приложение на Compose Multiplatform
Последнюю версию программы можно скачать на странице Releases.
- androidApp-debug.apk — установщик программы для Android 7+
- HotelRS-1.0.0.msi — установщик программы для Windows 10/11
- Скачайте APK-файл на Android-устройство
- Разрешите установку из неизвестных источников (Настройки → Безопасность → Неизвестные источники)
- Откройте скачанный файл и подтвердите установку
- Запустите приложение через значок на рабочем столе
- Скачайте установочный файл на компьютер с Windows
- Подтвердите безопасность файла в браузере (Вирусов нет!)
- Откройте скачанный файл, укажите пусть установки и подтвердите ее
- Запустите приложение через .exe файл в указанной папке при установке.
| Компонент | Требование |
|---|---|
| Операционная система | Android 7+ |
| Архитектура | ARMx64/86 |
| Оперативная память | минимум 1ГБ |
| Свободное место | минимум 100МБ |
| Компонент | Требование |
|---|---|
| Операционная система | Windows 10/11 |
| Архитектура | x86 |
| Оперативная память | минимум 1ГБ |
| Свободное место | минимум 200МБ |
При первом запуске сервера автоматически создаётся учётная запись администратора:
| Роль | Логин | Пароль |
|---|---|---|
| Администратор | admin |
admin |
Для гостя — вход по номеру телефона, указанному при заселении.
Для сотрудника — вход по логину и паролю, выданным администратором.
- Просмотр всех заявок
- Фильтрация заявок по статусу (Новые / В работе / Выполнены)
- Изменение статуса любой заявки
- Удаление заявок
- Управление пользователями (гости и сотрудники)
- Просмотр деталей заявки по нажатию
- Просмотр заявок категорий «Рум-сервис» и «Вопросы и пожелания»
- Фильтрация заявок по статусу
- Изменение статуса заявки (Новая → В работе → Выполнена)
- Просмотр заявок категории «Уборка номера»
- Изменение статуса заявки
- Просмотр заявок категории «Технический ремонт»
- Изменение статуса заявки
- Создание новых заявок с выбором категории
- Просмотр своих заявок
- Отслеживание статуса выполнения
- Выбор роли (Гость / Сотрудник)
- Ввод номера телефона (для гостя) или логина/пароля (для сотрудника)
- Валидация номера телефона (10–15 цифр, может начинаться с +)
- Список созданных заявок
- Кнопка «Создать» для новой заявки
- Кнопка «Обновить» для обновления списка
- Карточки заявок с категорией, статусом, описанием и датой
- Выбор категории из выпадающего списка
- Поле для описания проблемы
- Отправка заявки на сервер
- Вкладка «Заявки» — список заявок с фильтром по статусу
- Кнопки быстрого изменения статуса (Новая / В работе / Выполнена)
- Кнопка удаления заявки (только для администратора)
- По нажатию на карточку — просмотр деталей заявки
- Вкладка «Пользователи»
- Просмотр списка гостей и сотрудников
- Редактирование информации о пользователе
- Удаление пользователей (кроме администратора)
Приложение выполнено в стиле Material Design 3 с премиальной минималистичной темой:
| Элемент | Описание |
|---|---|
| Основной цвет | Синий (#0066FF) |
| Акценты | Зелёный (успех), Оранжевый (предупреждение), Красный (ошибка) |
| Скругления | 12-20 dp на карточках и кнопках |
| Тени | Мягкие тени для глубины интерфейса |
| Анимации | Плавные переходы при смене статуса |
| Компонент | Технология |
|---|---|
| Язык | Kotlin (Kotlin Multiplatform) |
| UI фреймворк | Jetpack Compose (Material 3) |
| Архитектура | MVI / MVVM |
| Сетевые запросы | Ktor Client |
| Сериализация | kotlinx.serialization (JSON) |
| Асинхронность | Kotlin Coroutines + Flow |
| Навигация | Compose Navigation |
| Хранение данных | Settings (Multiplatform) |
| Файл | Назначение |
|---|---|
App.kt |
Основной экран приложения, навигация по ролям |
ApiClient.kt |
HTTP клиент для взаимодействия с сервером |
ApiModels.kt |
Data классы для сериализации |
Platform.kt |
Платформозависимые настройки (baseUrl) |
Приложение взаимодействует с сервером через REST API:
| Метод | Эндпоинт | Назначение |
|---|---|---|
| POST | /api/auth/login |
Авторизация |
| POST | /api/tickets |
Создание заявки |
| GET | /api/guest/tickets |
Заявки гостя |
| GET | /api/admin/tickets |
Все заявки (админ) |
| GET | /api/staff/tickets |
Заявки по роли |
| PUT | /api/tickets/{id}/status |
Изменение статуса |
| DELETE | /api/tickets/{id} |
Удаление заявки |
Данный проект распространяется под лицензией MIT.
Приложение готово к использованию!