Перейти к основному содержанию

Трейниум

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)
IDEAndroidСтудия

Структура документации​

Установка и настройка охватывают требования к среде разработки, клонирование репозитория и настройку учетных данных Supabase и Firebase, необходимых для сборки проекта.

Архитектура описывает структуру модуля, граф навигации, уровень репозитория и принятые проектные решения.

База данных документирует схему таблицы Supabase, связи сущностей и схему Firebase Data Connect GraphQL.

Экраны описывают каждый экран приложения, его обязанности и процессы навигации.

В разделе Функции подробно описана реализация каждого основного функционального блока.

В разделе API и сервисы объясняется интеграция с Supabase, Firebase Auth и Firebase Data Connect.

Дизайн документирует систему дизайна, цветовую палитру, типографику и повторно используемые компоненты пользовательского интерфейса.

Развертывание указывает этапы создания отладочного или выпускного APK.

Справочник собирает список моделей данных, констант и служебных классов.