Сразу уточню: задание скомпилировано из нескольких демо-экзаменов, могут быть нестыковки.
Необходимо разработать web приложение.
Дизайн только в виде скринов, фигмы нет.
Описание протокола API в формате OpenAPI (Swagger) доступно по ссылке: https://swagger.kolei.ru/?url=https://carsharing.kolei.ru/swagger/api.yml
Создайте проект. Настройте иконку приложения согласно макету.
Реализуйте экран SignUp Screen согласно макету:
Обратите внимание! В оригинальном задании был вход по e-mail, но в моем АПИ нужно по телефону
При нажатии на кнопку "Зарегистрироваться" необходимо проверять поля для ввода на пустоту, а также телефон на корректность (требования к телефону описаны в документации к API). При некорректном заполнении необходимо отобразить ошибку с помощью диалогового окна. Так же необходимо проверять равенство пароля и его повтора.
При корректном заполнении формы необходимо отправлять запрос регистрации на сервер. При получении ошибки от сервера ее необходимо отобразить с помощью диалогового окна. При успешной регистрации нужно автоматически осуществить авторизацию и перейти на Main Screen.
При нажатии на кнопку "У меня уже есть аккаунт" необходимо осуществлять переход на SignIn Screen. На скрине этой кнопки нет - добавьте.
при нажатии на ссылку "Оферта" необходимо открыть web-страничку с текстом оферты. Этой кнопки тоже нет, тоже добавьте сами.
Реализуйте экран SignIn Screen согласно макету:
При нажатии на кнопку "Войти" необходимо проверять поля для ввода на пустоту, а также телефон на корректность (требования к телефону описаны в документации к API). При некорректном заполнении необходимо отобразить ошибку с помощью диалогового окна. При корректном заполнении формы необходимо отправить на сервер соответствующий запрос.
При нажатии на кнопку "Регистрация" необходимо осуществлять переход на SignUp Screen.
При успешной авторизации необходимо осуществлять переход на экран Main Screen или Profile Screen, в зависимости от состояния пользователя (загружены ли права и другие необходимые документы). При получении ошибки от сервера необходимо отобразить её с помощью диалогового окна.
Реализуйте экран Profile Screen согласно макету:
На экране необходимо отобразить аватарку пользователя. Рамка вокруг аватарки должна быть разного цвета в зависимости от состояния профиля:
При нажатии на аватарку выбрать файл и отправить его на сервер.
При нажатии на кнопки "Загрузить фото водительских прав" или "Загрузить файл паспорта" выбрать файл и выбранный файл отправить на сервер.
Реализуйте экран Main Screen согласно макету:
На экране необходимо отобразить карту с текущей позицией и маркерами автомобилей (список доступных автомобилей получить с сервера).
Как работать с картой расписано в лекции
при клике на маркер автомобиля показывать (во всплывающем окне) краткую информацию об автомобиле: марка автомобиля, фото, кнопки "забронировать" и "маршрут". Кнопка "забронировать" должна быть только у активного пользователя
Profile Screen.