Skip to content

GoodRoad-Project/GoodRoad-Client

Repository files navigation

GoodRoad banner

GoodRoad (Android Client)

Авторы: Городкова Ксения, Грудцына Виктория, Толстограева Виктория

Краткое описание проекта

GoodRoad — мобильное приложение для построения пеших инклюзивных маршрутов с учетом состояния дороги, препятствий на пути и персональных ограничений пользователя.

Обычный навигатор зачастую показывает только самый короткий или быстрый путь, но не объясняет, насколько он удобен на практике. Вместе с тем на маршруте могут встретиться лестницы, высокие бордюры, крутые участки дороги и другие барьеры. GoodRoad решает именно эту задачу: приложение помогает заранее понять, подходит ли путь конкретному человеку, показывает проблемные места и позволяет собирать отзывы о доступности дорог и объектов.

Дополнительно в GoodRoad есть задания, награды за их выполнение и волонтерский модуль. Пользователи могут получать баллы за написание отзывов и помощь другим людям, обменивать их на предложения партнеров, а также создавать запросы на сопровождение и откликаться на них.

Возможности для каждого типа пользователя

Пользователь

  • Редактирование профиля
  • Выбор препятствий, которые нужно избегать при построении маршрута, и их тяжесть
  • Построение маршрута с учетом ограничений пользователя
  • Возможность оставить заявку на сопровождение волонтера по маршруту
  • Создание, редактирование и удаление отзывов о состоянии дороги или объекта
  • Добавление фотографий к отзывам
  • Просмотр статуса модерации отзыва и начисленных за него баллов
  • Просмотр заданий, связанных с отзывами, для получения дополнительных баллов
  • Покупка наград за накопленные баллы
  • Просмотр истории операций с баллами: начисление/ списание
  • Просмотр таблицы лидеров по количеству баллов

Волонтер

  • Взаимодействие с лентой заявок о помощи
  • Отклик на заявки пользователей и отмена отклика
  • Просмотр заявок, на которые волонтер откликнулся
  • Просмотр волонтерских заданий для получения дополнительных баллов

Модератор

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

Главный модератор

  • Все возможности обычного модератора
  • Добавление и удаление других модераторов

Детали запуска приложения

Достаточно скачать приложение по ссылке.

Технологии клиента

Категория Технологии Назначение
Язык Kotlin Основной язык клиентского приложения
UI Jetpack Compose, Material 3 Построение экранов и компонентов интерфейса
Навигация Navigation Compose Переходы между экранами и сценариями
Состояние экрана ViewModel, StateFlow Хранение состояния и обработка логики экранов
Асинхронность Kotlin Coroutines Выполнение сетевых и фоновых операций
Сеть Retrofit, OkHttp Работа с REST API
JSON Gson Converter Сериализация и десериализация DTO
Карты MapLibre Отображение карты и маршрутов
Геолокация Google Play Services Location Получение текущего местоположения пользователя
Изображения Coil Загрузка и отображение изображений
Аутентификация JWT, OkHttp Interceptor, OkHttp Authenticator Добавление access token в запросы и автоматическое обновление токенов
Хранение токенов EncryptedSharedPreferences Локальное защищенное хранение access и refresh token

Архитектура клиента

Слои клиентской архитектуры

Слой Назначение
data Работа с сетевыми запросами, работа с препятствиями, маршрутами и локацией
domain/model Модели предметной области приложения: координаты, препятствия, геолокации, места и связанные данные
ui Общие UI-компоненты, элементы форм, обработка ошибок, карта и цветовая гамма
modules Работа с DTO, репозиториями, cостояние экранов, обработка действий пользователя, связь UI и данных

Структура проекта

app/src/main/java/com/example/goodroad/
├── MainActivity.kt
├── MapActivity.kt
├── data/
│   ├── network
│   └── obstacle
├── domain/model
├── ui/
│   ├── buttons/
│   ├── errors/
│   ├── fields/
│   ├── map/
│   └── theme/
├── validation
└── modules/
    ├── auth/
    ├── maps/
    ├── moderationReview/
    ├── moderator/
    ├── review/
    ├── rewards/
    ├── tasks/
    ├── user/
    └── volunteer/
    
app/src/test/java/com/example/goodroad/
├── data/
│   ├── network
│   └── obstacle
└── modules/
    ├── auth/
    ├── moderationReview/
    ├── moderator/
    ├── review/
    ├── rewards/
    └── user/

About

Приложение для построения инклюзивных маршрутов

Resources

License

Stars

5 stars

Watchers

0 watching

Forks

Contributors

Languages