Cервис осуществляет прием заказов на доставку и распределяет их по ресторанам и курьерам.
Основные сущности:
- Ресторан - стороннее лицо, предоставляющее приложению доступное меню, принимающее от сервиса заявки на приготовление заказов.
- Меню - список доступных позиций, предоставляемых рестораном.
- Позиция - блюдо или иная продукция с определенной стоимостью, производимая рестораном и доступная к доставке через приложение.
- Заказ - набор позиций из одного ресторана, сформированный пользователем для единовременной доставки.
- Пользователь - человек, осуществляющий заказы через мобильное приложение.
- Курьер - человек, назначаемый приложением для забора заказа из ресторана и доставки его пользователю.
- Администратор - доверенное лицо, обладающее правами внесения новых курьеров и ресторанов в систему.
Регистрация
- Пользователь заполняет форму регистрации: телефон, имя, адрес (город, улица, дом, корпус/строение, подъезд, квартира/офис, этаж), пароль, подтверждение пароля
Телефон пользователя не верифицируется
- Пользователь нажимает кнопку "Зарегистрироваться"
- Пользователь получает подтверждение об успешной регистрации и попадает на страницу авторизации
Авторизация
- Пользователь заполняет форму авторизации (телефон, пароль)
- Пользователь нажимает кнопку "Войти"
- Пользователь попадает на страницу списка ресторанов
Редактирование профиля
- Пользователь переходит на вкладку "Профиль"
- Пользователь заполняет форму редактирования профиля (имя, почта, адрес)
- Пользователь нажимает кнопку "Сохранить"
- Пользователь получает подтверждение об успешном изменении профиля
Добавление блюда в корзину
- Пользователь выбирает ресторан из списка ресторанов, отсортированных по близости к локации пользователя, указанной в профиле
- Пользователь выбирает блюдо из меню
- Пользователь вводит количество экземпляров выбранного блюда
- Пользователь нажимает кнопку "Добавить в корзину"
- Пользователь получает подтверждение о добавлении блюда в корзину (кнопка "Добавить в корзину" заменяется на кнопку "В корзине")
Удаление блюда из корзины
- Пользователь переходит на вкладку "Корзина"
- Пользователь нажимает на кнопку "Удалить из корзины" рядом с определенным блюдом из списка блюд в корзине
- Пользователь получает подтверждение об удалении блюда из корзины (блюдо удаляется, стоимость заказа пересчитывается)
Изменение количества экземпляров блюда в корзине
- Пользователь переходит на вкладку "Корзина"
- Пользователь нажимает на кнопку уменьшения (минус) или увеличения (плюс) рядом с определенным блюдом из списка блюд в корзине
Оформление заказа
- Пользователь переходит на вкладку "Корзина"
- Пользователь нажимает на кнопку “Оформить заказ”
- Пользователь переходит на страницу оформления заказа с полями для ввода
- Пользователь указывает адрес доставки (по умолчанию выставлен адрес, указанный при регистрации)
- Пользователь вводит реквизиты банковской карты (номер, имя, срок действия)
- Пользователь получает подтверждение об успешном оформлении заказа (пользователь перенаправляется на вкладку "История заказов", текущий заказ отображается первым в списке истории заказов и имеет статус "Готовится")
Просмотр истории заказов
- Пользователь переходит на вкладку "История заказов"
- Пользователь просматривает историю заказов
Администрация сервиса регистрирует курьеров через внутренний интерфейс
Авторизация
- Курьер заполняет форму авторизации (телефон, пароль)
- Курьер нажимает кнопку "Войти"
- Курьер попадает на вкладку "Работа"
Начало работы
- Курьер переходит на вкладку "Работа"
- Курьер устанавливает статус работы в "Работает"
- Курьер получает подтверждение об успешном изменении статуса
Получение заказа
- Курьер получает уведомление о получении заказа на доставку
Под уведомлением понимается, что новый заказ появляется на экране нового заказа в приложении
- Курьер переходит по уведомлению на вкладку "Заказы", видит номер заказа, статус заказа - "Готовится", адрес ресторана и адрес заказчика
Изменение статуса заказа
- Курьер переходит на вкладку "Заказы"
- Курьер выбирает заказ из списка
- Курьер меняет статус заказа ("В пути", "Доставлено"); после выставления статуса “Доставлено” принимает решение о дальнейшем статусе работы
- Курьер получает подтверждение об успешном изменении статуса
Ресторану для взаимодействия с сервисом предоставляется API: авторизация, добавление блюд в меню, просмотр списка заказов, изменение статуса заказа и статуса работы. Система регистрирует рестораны через внутренний интерфейс.
💻 Backend
📱 Android
☎️ iOS
- Linux Ubuntu 20.04 LTS
- 4+ ГБ RAM
- Android 8.0 Oreo (API 26) и выше
- 4+ ГБ RAM
- Разрешения
- Интернет
- Геоданные
- iOS 13.0 и выше
- iPhone 6S и более новые модели
- Разрешения
- Интернет
- Геоданные
![]() |
![]() |
![]() |
![]() |
Васюков Алексей a.vasyukov1@yandex.ru |
Волков Егор volkovegor2000@yandex.ru |
Колесников Даниил daniil.kolesnikoff@gmail.com |
Московский Дмитрий dimez77@mail.ru |
![]() |
![]() |
![]() |
![]() |
Рязанов Максим ryazanovms@yandex.ru |
Степаненко Владимир vovac12@gmail.com |
Полякова Ксения KsenyaPolyakovaaa@gmail.com |
Левушкин Илья lik17u699@student.bmstu.ru |
![]() |
![]() |
![]() |
Иманов Шамиль |
Тимонин Антон |
Тимонин Егор |
Свойство | Описание |
---|---|
Приоритет | 1 |
Риск | Нехватка времени из-за учебной и рабочей нагрузки |
Состояние | Анализ |
Вероятность | Высокая |
Урон | Высокий |
Воздействие | Высокое |
Тип стратегии | Принятие |
Стратегия | Сокращение покрытия тестами, не реализуем историю заказов и редактирование профиля |
Ответственный | Все |
Свойство | Описание |
---|---|
Приоритет | 2 |
Риск | Болезнь участника команды |
Состояние | Анализ |
Вероятность | Средняя |
Урон | Высокий |
Воздействие | Высокое |
Тип стратегии | Принятие |
Стратегия | Другой участник берет на себя работу заболевшего |
Ответственный | Все |
Свойство | Описание |
---|---|
Приоритет | 3 |
Риск | Взаимодействие с новыми технологиями |
Состояние | Анализ |
Вероятность | Средняя |
Урон | Средний |
Воздействие | Среднее |
Тип стратегии | Снижение |
Стратегия | Обращение к интернет-ресурсам и профессиональной литературе |
Ответственный | Все |