Skip to content

GoodRoad-Project/GoodRoad-Client

Repository files navigation

GoodRoad banner

GoodRoad (Android client)

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

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

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

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

Сейчас проект представлен в формате MVP. В этой версии мы показываем основной сценарий работы приложения: пользователь настраивает ограничения, строит маршрут с учетом препятствий и оставляет отзывы, а модератор проверяет пользовательский контент.

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

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

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

Модератор

  • Просмотр отзывов, отправленных на проверку;
  • Одобрение и отклонение отзывов;
  • Работа с модерацией пользовательского контента.

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

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

Что планируем добавить к защите

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

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

В клиенте используется адрес:

http://10.0.2.2:8080/

Этот адрес подходит для Android-эмулятора. Если запускаете приложение на физическом устройстве, адрес сервера нужно заменить на локальный IP компьютера в вашей сети.

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

Категория Технологии Назначение
Язык Kotlin Основной язык клиентского приложения
UI Jetpack Compose, Material 3 Построение экранов и компонентов интерфейса
Навигация Navigation Compose Переходы между экранами и сценариями
Состояние экрана ViewModel, StateFlow Хранение состояния и обработка логики экранов
Асинхронность Kotlin Coroutines Выполнение сетевых и фоновых операций
Сеть Retrofit, OkHttp Работа с REST API
JSON Gson Converter Сериализация и десериализация DTO
Изображения Coil Загрузка и отображение изображений

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

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

Слой Что включает Назначение
UI ui/auth, ui/user, ui/maps, ui/reviews, ui/theme Экраны, компоненты интерфейса, навигационные сценарии
ViewModel AuthViewModel, UserViewModel, MapsViewModel, ReviewsViewModel Состояние экранов, обработка действий пользователя, связь UI и данных
Data data/auth, data/user, data/obstacle, data/review, data/network Работа с DTO, репозиториями и сетевыми запросами
Network ApiClient, Retrofit API interfaces Подключение к backend, настройка base URL, сериализация и HTTP-клиент

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

app/src/main/java/com/example/goodroad/
├── MainActivity.kt
├── data/
│   ├── auth/
│   ├── network/
│   ├── obstacle/
│   ├── review/
│   └── user/
└── ui/
    ├── auth/
    ├── common/
    ├── maps/
    ├── reviews/
    ├── theme/
    ├── user/
    └── viewmodel/

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages