Skip to content

Repository files navigation

HotelRS

Клиент-серверное приложение для управления заявками гостей отеля. Позволяет автоматизировать обработку запросов (уборка номера, технический ремонт, рум-сервис, вопросы), сократить время выполнения заявок и обеспечить разграничение прав доступа по ролям.

📥 Исходный код

Исходный код проекта доступен в репозитории:

  • Backend (серверная часть): HotelRS_Backend — Ktor сервер на Kotlin
  • Frontend (клиентская часть): shared — Android приложение на Compose Multiplatform

📥 Скачать

Последнюю версию программы можно скачать на странице Releases.

  • androidApp-debug.apk — установщик программы для Android 7+
  • HotelRS-1.0.0.msi — установщик программы для Windows 10/11

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

Android

  1. Скачайте APK-файл на Android-устройство
  2. Разрешите установку из неизвестных источников (Настройки → Безопасность → Неизвестные источники)
  3. Откройте скачанный файл и подтвердите установку
  4. Запустите приложение через значок на рабочем столе

Windows

  1. Скачайте установочный файл на компьютер с Windows
  2. Подтвердите безопасность файла в браузере (Вирусов нет!)
  3. Откройте скачанный файл, укажите пусть установки и подтвердите ее
  4. Запустите приложение через .exe файл в указанной папке при установке.

📦 Требования для мобильных устройств

Компонент Требование
Операционная система Android 7+
Архитектура ARMx64/86
Оперативная память минимум 1ГБ
Свободное место минимум 100МБ

💻 Требования для ПК

Компонент Требование
Операционная система Windows 10/11
Архитектура x86
Оперативная память минимум 1ГБ
Свободное место минимум 200МБ

🔑 Начало работы

При первом запуске сервера автоматически создаётся учётная запись администратора:

Роль Логин Пароль
Администратор admin admin

Для гостя — вход по номеру телефона, указанному при заселении.

Для сотрудника — вход по логину и паролю, выданным администратором.

👥 Роли пользователей

👑 Администратор (ADMIN)

  • Просмотр всех заявок
  • Фильтрация заявок по статусу (Новые / В работе / Выполнены)
  • Изменение статуса любой заявки
  • Удаление заявок
  • Управление пользователями (гости и сотрудники)
  • Просмотр деталей заявки по нажатию

👔 Сотрудник (STAFF)

  • Просмотр заявок категорий «Рум-сервис» и «Вопросы и пожелания»
  • Фильтрация заявок по статусу
  • Изменение статуса заявки (Новая → В работе → Выполнена)

🧹 Горничная (CLEANER)

  • Просмотр заявок категории «Уборка номера»
  • Изменение статуса заявки

🔧 Мастер (MASTER)

  • Просмотр заявок категории «Технический ремонт»
  • Изменение статуса заявки

🏨 Гость (GUEST)

  • Создание новых заявок с выбором категории
  • Просмотр своих заявок
  • Отслеживание статуса выполнения

📱 Функционал приложения

Экран входа

  • Выбор роли (Гость / Сотрудник)
  • Ввод номера телефона (для гостя) или логина/пароля (для сотрудника)
  • Валидация номера телефона (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.


Приложение готово к использованию!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages