Требования:

Приложение позволяет пользователям заказать пиццу. На странице каталога показаны доступные пиццы, при клике на любую из пицц, пользователь может увидеть информацию о конкретной пицце и добавить ее в корзину с топпингами.

В корзине пользователь может посмотреть выбранные пиццы и оформить заказ. При оформление заказа пользователь вводить персональные данные и оплачивает заказ.

В рамках задания мы не ограничиваем вас. Это может быть космическая/магическая доставка пиццы🍕 или клон любого существующего сервиса, тут мы полагаемся на вашу фантазию, также вы можете самостоятельно расширить требования задачи при желании.

Дизайн

https://www.figma.com/design/rtf8FFjkY084yTN81wsjsr/Задания-ШИФТ-Интенсив?node-id=0-1&t=12Jogxp0YHZpKRFg-0

https://www.figma.com/file/KsxWtBbM0Ni8e5c9aFBa8I/UI-Kit-ШИФТ?type=design&node-id=76-9676&mode=design&t=ppJ28OQPmP1ZBr9h-0

Api

My Website

Уровни выполнения:

  1. Легкий - ожидаемым результатом является создание страницы/экрана каталога пицц и модального окна/экрана конкретной пиццы:
    1. Реализована страница/экран каталога со списком пицц, список пицц получен с помощью запроса get /pizzas/catalog
    2. Реализовано модальное окно/экран конкретной пиццы
  2. Средний - ожидаемым результатом является реализации корзины и формы оформления заказа, в которые входят:
    1. Реализована страница/экран каталога со списком пицц, список пицц получен с помощью запроса get /pizzas/catalog
    2. Реализовано модальное окно/экран конкретной пиццы с возможностью добавление пиццы в корзину
    3. Реализована страница/экран корзины и форма оформления заказа
    4. Реализовано отображение результата оплаты
  3. Сложный -
    1. Флоу
      1. Реализована страница/экран каталога со списком пицц, список пицц получен с помощью запроса get /pizzas/catalog
      2. Реализовано модальное окно/экран конкретной пиццы с возможностью добавление пиццы в корзину
      3. Реализована страница/экран корзины и форма оформления заказа (если пользователь авторизован, подставить его данные из профиля)
      4. Реализовано отображение результата оплаты
    2. Личный кабинет
      1. Реализовать страницу/экран авторизации
      2. Реализовать страницу/экран личный кабинет
        1. Получение заказов с помощью запроса get /pizzas/orders
      3. Реализовать страницу/экран заказа
        1. Получение заказа с помощью запроса get /pizzas/orders/:id
        2. Отмена оплаты с помощью запроса post /cinema/order/cancel

API:

  1. REST
    1. POST /auth/otp - запрос для создания otp кода
    2. POST /users/signin - запрос для авторизации пользователя
    3. POST /users/session - запрос для получения данных о пользователе
    4. PATCH /users/profile - запрос для изменения данных пользователя
    5. GET /pizzas/catalog - запрос для получения пицц
    6. POST /pizzas/payment - запрос для оплаты корзины
    7. GET /pizzas/orders - запрос для получения покупок пользователя
    8. GET /pizzas/orders/:id - запрос для получения покупки пользователя
    9. PUT /pizzas/order/cancel - запрос для отмены покупки
  2. GRAPHQL
    1. mutation createOtp - запрос для создания otp кода
    2. mutation signin - запрос для авторизации пользователя
    3. mutation updateProfile - запрос для изменения данных пользователя
    4. query me - запрос для получение данных о пользователе
    5. query getPizzasCatalog - запрос для получения пицц
    6. mutation createPizzaPayment- запрос для оплаты корзины
    7. query getPizzaOrders - запрос для получения покупок пользователя
    8. query getPizzaOrder - запрос для получения покупки пользователя
    9. query cancelPizzaOrder- запрос для отмены покупки