Skip to content

einlied753/flower-delivery-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

flower-delivery-api

Сервис для доставки цветов - представляет собой api приложение, позволяющее клиенту выбрать нужные цветы и другие товары (независимо от того, был ли клиент зарегистрирован в приложении) и заказать доставку по нужному адресу.

Глоссарий


Процесс работы приложения

Оформление заказа:

  1. Клиент заходит на страницу поиска:

    • создается пустая корзина
  2. (опционально) Клиент логинится или регистрируется:

    • если идет регистрация - создается запись в User
  3. Клиент выбирает товары:

    • статус корзины = InProgress
    • в CartProduct помещаются записи, определяющие продукты в корзине
  4. (опционально) Клиент может удалить несколько товаров:

    • в CartProduct происходит удаление строк
  5. Клиент бронирует заказ. Ему предлагается залогиниться (зарегистрироваться)

    1. Клиент соглашается:
    • если нет записи в user (клиент не зарегистрирован), то создается запись в User после регистрации; клиент логинится
    • обновляется UserId в Cart
    1. Клиент остается не авторизованным:
    • в User создается запись о пользователе без аутентификации
    • клиент заполняет на форме заказа: адрес, email, телефон
  6. Клиент бронирует заказ. Проверяется, валидна ли корзина:

    • если валидна, то создается заказ, удаляется корзина
    • если не валидна, переходим к выбору товаров (п.4)
  7. Клиент оплачивает заказ:

    • обновление статуса в Order = Paid
  8. Получатель ожидает доставки:

    • клиент может посмотреть свой заказ в личном кабинете
  9. Получателю доставили заказ, флоу завершился:

    • заказ переходит в статус Completed


Наглядная блок-схема, описывающая работу приложения:

Block diagram



Представление сущностей приложения в базе данных

UML


Описание таблиц:

  1. product - таблица товаров (цветы и пр.)

    • id - идентификатор товара
    • name - наименование товара
    • price - стоимость товара
    • quantity - количество товара; если кол-во = 0, то товара временно нет в наличии
    • discount - скидка на товар, если имеется
  2. user - таблица клиентов

    • id - идентификатор клиента
    • fio - ФИО клиента
    • email - эл. почта клиента
    • phone - телефон клиента
    • address - адрес клиента
    • is_active - флажок, обозначающий, активен ли клиент (может пригодиться для рассылок)
  3. order - таблица заказов

    • id - идентификатор заказа
    • user_id - идентификатор заказчика
    • order_status_id - статус заказа
    • cost - общая стоимость заказа
    • created - дата и время создания заказа
    • email - эл. почта пользователя, на который может прийти чек об оплате заказа
    • address - адрес для доставки заказа
    • phone - номер телефона, для связи с курьером; может быть номером получателя заказа
  4. order_status - таблица статусов заказа

    • id - идентификатор статуса
    • name - наименование статуса
    • description - описание статуса
  5. order_product - связующая таблица между заказами и продуктами; содержит товары, добавленные в заказ

    • id - идентификатор связи между заказами и продуктами
    • order_id - идентификатор заказа
    • product_id - идентификатов товара в заказе
    • count - количество конкретного товара, добавленного в заказ
  6. cart - таблица корзины

    • id - идентификатор корзины
    • user_id - идентификатор пользователя, зашедшего в приложение
    • order_id - идентификатор заказа
    • cart_status_id - идентификатор статуса корзины
    • created - дата и время захода в приложение пользователем
  7. cart_product - связующая таблица между корзинами и продуктами; содержит товары, добавленные в корзину

    • id - идентификатор связи между корзинами и продуктами
    • cart_id - идентификатор корзины
    • product_id - идентификатор продукта
    • count - количество конкретного товара, добавленного в корзину
  8. cart_status - таблица статусов корзины

    • id - идентификатор статуса
    • name - наименование статуса
    • description - описание статуса

About

The flower delivery api

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages