Трейниум
Trainium — нативное Android-приложение, предназначенное для комплексного управления тренажерным залом. Оно позволяет пользователям регистрироваться, резервировать оборудование, отслеживать свой физический прогресс посредством записи веса и следовать планам питания. Имеет систему подписки Премиум, расширяющую доступный функционал, а также роль администратора с доступом к управлению каталогом техники, активному бронированию и модерации диетических блюд.
Основные характеристики
В финальной версии приложение реализует следующие функции:
- Аутентификация пользователя с использованием идентификатора и пароля с восстановлением учетных данных по электронной почте.
- Регистрация новых пользователей с проверкой полей (имя, ID, адрес электронной почты, телефон)
- Постоянный сеанс между загрузками с использованием
SharedPreferencesс настраиваемой продолжительностью 7 дней. - Резервирование техники с выбором даты и временного интервала, с обнаружением совпадений и лимитом 1 час на резервирование.
- Система технического обслуживания техники с автоматической отменой затронутых резерваций
- Настраиваемые push-уведомления с напоминанием о предварительном бронировании (10, 15, 30, 60 или 120 минут)
- Экспорт резерваций в календарь устройства.
- Отслеживание веса с графиком изменения во времени
- Каталог диетических блюд с системой предложений пользователя и модерацией администратором.
- Премиум-подписка с тремя типами цен (месячная, полугодовая и годовая) и регистрацией платежей с индикатором оставшихся дней.
- Редактирование профиля с фотографией пользователя, хранящейся в Base64.
- Поддержка светлых и темных тем с сохранением предпочтений через DataStore.
- Многоязычная поддержка с автоматическим определением языка системы и ручным выбором (доступно 12 языков)
- Анимированная заставка с воспроизведением вступительного видео.
- Загрузка скелетных экранов во время запросов API.
Стек технологий
| Слой | Технология |
|---|---|
| Язык | Котлин |
| Пользовательский интерфейс | Состав реактивного ранца + Материал 3 |
| Навигация | Навигация Создание 2.7.7 |
| Главный бэкэнд | Supabase (PostgreSQL) через официальный SDK |
| Альтернативный бэкэнд | Подключение к данным Firebase (GraphQL) |
| Аутентификация | Firebase Auth (объявлено) |
| Локальное постоянство | Настройки хранилища данных Jetpack + SharedPreferences |
| Интернационализация | Собственная строковая система в Compose (i18n) |
| Уведомления | AlarmManager + NotificationCompat |
| Система сборки | Gradle (Kotlin DSL) |
| IDE | AndroidСтудия |
Структура документации
Установка и настройка охватывают требования к среде разработки, клонирование репозитория и настройку учетных данных Supabase и Firebase, необходимых для сборки проекта.
Архитектура описывает структуру модуля, граф навигации, уровень репозитория и принятые проектные решения.
База данных документирует схему таблицы Supabase, связи сущностей и схему Firebase Data Connect GraphQL.
Экраны описывают каждый экран приложения, его обязанности и процессы навигации.
В разделе Функции подробно описана реализация каждого основного функционального блока.
В разделе API и сервисы объясняется интеграция с Supabase, Firebase Auth и Firebase Data Connect.
Дизайн документирует систему дизайна, цветовую палитру, типографику и повторно используемые компоненты пользовательского интерфейса.
Развертывание указывает этапы создания отладочного или выпускного APK.
Справочник собирает список моделей данных, констант и служебных классов.