Авторы: Городкова Ксения, Грудцына Виктория, Толстограева Виктория
GoodRoad — мобильное приложение для построения пеших инклюзивных маршрутов с учетом состояния дороги, препятствий на пути и персональных ограничений пользователя.
Обычный навигатор часто показывает только самый короткий или быстрый путь, но не объясняет, насколько этот путь удобен на практике. На маршруте могут встретиться лестницы, высокие бордюры, ямы, крутые участки дороги и другие барьеры. GoodRoad решает именно эту задачу: приложение помогает заранее понять, подходит ли путь конкретному человеку, показывает проблемные места и позволяет собирать отзывы о доступности дорог и объектов.
Сейчас проект представлен в формате 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/
