Skip to content

A next-generation Android app for easy management of conference room schedules. It completely eliminates the hassle of overlapping bookings, duplicate appointments, and manual scheduling.

License

Notifications You must be signed in to change notification settings

NotACat1/ConferenceScheduler

Repository files navigation

📅 Conference Scheduler — умное расписание конференц-зала

“Планируйте уверенно. Бронируйте без ошибок.”

Kotlin Jetpack Compose Material3 MVVM License: MIT


🪄 Обзор Проекта

«Зал Свободен» — это Android-приложение нового поколения для умного управления расписанием конференц-залов.
Оно полностью избавляет от проблем с пересекающимися бронированиями, дублированием встреч и ручным вводом расписания.

💡 Основано на Kotlin + Jetpack Compose, с реактивным интерфейсом и надёжным хранением состояния.
Создано с нуля по принципам чистой архитектуры (MVVM).


🚀 Ключевые Возможности

🧠 Интеллектуальное Бронирование

  • 🔍 Мгновенная проверка доступности: система автоматически отслеживает пересечения интервалов.
  • 🚫 Предотвращение конфликтов: пользователю выводится уведомление, если время занято.
  • 💾 Персистентность: данные сохраняются между запусками через SavedStateHandle + Gson.

⚡ Реактивный UI

  • 📅 Группировка по датам: события отображаются с удобными заголовками — Сегодня, Завтра, Понедельник, 14 Октября.
  • 🕓 Материальные пикеры: выбор даты и времени через стандартные диалоги Material 3.
  • 💬 Мгновенное обновление: добавленные события появляются сразу, без перезапуска экрана.

💎 UX, созданный для людей

  • 🎨 Material 3 Design — минимализм, контраст и акценты.
  • 🧩 Jetpack Compose — декларативный и читаемый код интерфейса.
  • 🧭 MVVM Архитектура — чистое разделение логики, состояния и отображения.

🛠️ Технологический Стек

🧩 Компонент 🚀 Технология 🧭 Назначение
Язык разработки Kotlin Основной язык проекта
🧱 UI Фреймворк Jetpack Compose Декларативное создание интерфейсов
🎨 Дизайн-система Material 3 Современный UI/UX
🧠 Архитектура MVVM Разделение слоёв: View ↔ ViewModel ↔ Model
💾 Состояние SavedStateHandle Хранение состояния между пересозданиями
🧮 Сериализация Gson Сохранение/восстановление объектов событий
Дата и время java.time Работа с временными интервалами

🧩 Архитектура Проекта


com.example.conferencescheduler/
│
├── model/
│   └── Event.kt                # Модель события
│
├── viewmodel/
│   └── ScheduleViewModel.kt    # Бизнес-логика, проверка пересечений, сохранение состояния
│
├── ui/
│   ├── ScheduleScreen.kt       # Главный экран расписания
│   └── components/
│       └── AddEventDialog.kt   # Диалог добавления события (дата, время, название)
│
└── util/

🧭 MVVM в действии:

  • Model — хранит структуру данных (Event)
  • ViewModel — управляет логикой, проверками и сохранением (ScheduleViewModel)
  • View (Compose) — показывает интерфейс и обновляется реактивно (ScheduleScreen, AddEventDialog)

💡 Пример Использования

Добавление нового события 🕓

При нажатии открывается диалог, где пользователь вводит название и выбирает дату/время.
После подтверждения:

  • Происходит проверка на пересечения.
  • Если слот свободен — событие добавляется и сохраняется.
  • Если занят — показывается уведомление «Зал занят в интервале 14:00–15:00».

🧠 Логика Проверки Доступности

fun isAvailable(start: LocalDateTime, end: LocalDateTime): Boolean {
    return events.none { event ->
        start.isBefore(event.endTime) && end.isAfter(event.startTime)
    }
}

🔒 Простая и надёжная проверка на пересечения временных интервалов.


🏗️ Установка и Запуск

  1. 📥 Клонировать репозиторий:

    git clone https://github.com/NotACat1/ConferenceScheduler.git
  2. 🧭 Открыть в Android Studio.

  3. ⚙️ Синхронизировать Gradle и убедиться, что зависимости загружены.

  4. ▶️ Запустить на эмуляторе или устройстве.

  5. 🎉 Готово! Добавляйте и управляйте бронированиями без конфликтов.


“Зал Свободен — когда технологии работают на ваше время.”

About

A next-generation Android app for easy management of conference room schedules. It completely eliminates the hassle of overlapping bookings, duplicate appointments, and manual scheduling.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages