Android приложение для заказа строительных работ
Сервис, работающий по принципу Uber, где можно заказать ремонтные и отделочные работы.
Функции:
Карта, геолокация мастера, вызов мастера, расчёт сметы, оплата картой.
Геолокация мастера, показывает, где находится мастер в этот момент, чтобы было
видно кто из мастеров и через сколько сможет приехать.
Функции приложения с точки зрения пользователя:
0. Регистрация/Вход/Выход
Ввести свой номер телефона и получить проверочный смс код для авторизации в приложении
Выйти из аккаунта
1. Формирование заказа
Выбрать город
Выбрать на карте адрес где нужен ремонт/отделка/другая услуга
Ввести адрес руками
Выбрать, какую услугу он хочет получить
Указать параметры объекта и узнать смету
2. Вызов и ожидание мастера
Увидеть что поблизости есть свободные мастера (в некотором удалении в км)
Понять через сколько они могут приехать на объект
Вызвать мастера и отслеживать, как он добирается
3. Уточнение сметы мастером
Увидеть уточнённую мастером смету
4. Подписание договора
Прочитать договор аферту составленный по смете
Получить смс с предложением подписать договор и проверочным кодом
Подписать договор через приложение, указав код
5. Оплата заказа
Оплатить работу в приложении с помощью банковской кредитной/дебетной карты.
6. Приём работы
После завершения работы мастером, увидеть, что заказ завершён
9. Поддержка
Написать обращение в чат поддержки
Функции приложения с точки зрения мастера:
2. Одобрение
Получить роль мастера
3. Передача геопозиции
Постоянно быть отмеченным на карте
В автоматическом режиме вести подсчёт времени, проведённого на объекте
4. Получение заказа
Получить заказ
Увидеть адрес заказа и предполагаемую смету
5. Уточнение сметы
Изменить смету заказа перед его началом
6. Выполнение заказа
Начать выполнять заказ и увидеть изменение своего статуса ("готов к работе" -> "занят")
7. Завершение заказа
Отметить заказ, как завершённый
Внести фотографии проделанных работ
Убрал из задания серверную часть, для неё будет отдельная задача.
Дизайн будет предоставлен до начала работы.
Обязательные требования:
Это должно быть нативное приложение выполненное по всем гайдлайнам.
Каждый метод и функция в вашем коде должна быть подробно прокомментирована на русском языке.
Имена функций, методов и переменных должны иметь смысл.