Предварительная декомпозиция задач - kzagorulko/flower-system GitHub Wiki

Backend

# Создание компонента работы с пользователем и системы ролей

Регистрировать пользователей может администратор Авторизация происходит по email и password

Модели:

  • UserModel
  • Roles
  • Permissions

Роуты для пользователей:

  • GET /users/ - получить информацию о пользователях
  • POST /users/ - создать пользователя [Админ]
  • GET /users/<user_id> - получить подробную информацию о пользователе
  • PATCH /users/<user_id> - изменить информацию о пользователе [Админ]
  • DELETE/users/<user_id> - удалить пользователя [Админ]

Роуты для ролей:

  • POST /roles/ - создать роль [Админ]
  • DELETE /roles/ - удалить роль [Админ]
  • POST /roles/user/<user_id> - назначить роль пользователю [Админ]
  • DELETE /roles/user/<user_id> - снять роль с пользователя [Админ]
  • GET /roles/ - получить информацию о ролях

Для доступов необходимо создать класс действий, содержащий все возможные действия На данный момент будет:

  • создание пользователей
  • изменение пользователей
  • создание ролей ...

Роуты для доступов:

  • POST /permissions/ - создать доступ
  • GET /permissions/ - получить доступы
  • DELETE /permissions/<permission_id> - удалить доступ
  • POST /permission/role/<role_id> - назначить доступ роли
  • DELETE /permission/role/<role_id> - назначить доступ роли

Как упростить?

Для наших целей не обязательно создавать систему управления ролями (вот и бизнес-логика) - можно захардкодить роли и доступы ролей

# Филиалы

Модели:

  • Branches
  • User_x_Branch

Роуты:

  • POST /branches/ - создать филиал [Админ]
  • GET /branches/ - получить филиалы
  • POST /branches/user/<user_id> - привязать пользователя к филиалу [Админ]
  • DELETE /branches/user/<user_id> - удалить привязку пользователя к филиалу [Админ]

# Продукты

Модели:

  • Products

Роуты:

  • GET /products/ - получить продукты (с фильтрацией)
  • GET /products/<product_id> - получить детальную информацию о продукте
  • POST /products/ - создать продукт [Админ, отдел продаж]
  • PATCH /products/ - изменить продукт [Админ, отдел продаж]
  • DELETE /products/ - удалить продукт [Админ, отдел продаж]

# Продажи продуктов филиалами

Модели:

  • Sales

Роуты:

  • POST /sales/ - внести продажу (без ошибок!), раз в месяц [филиал]
  • DELETE /sales/<dale_id> - удалить продажу [Админ]

# Поставщики

Модели:

  • Providers

Роуты:

  • GET /providers/ - получить полную информацию о всех поставщиках
  • POST /providers/ - создать поставщика [отдел продаж, Админ]
  • PATCH /providers/ - изменить поставщика [отдел продаж, юр.отдел, Админ]

# Склады

# Поставки товаров на склад

# Поставки товаров в филиалы

# Система заявок

Frontend

Пользователь:

# Страница авторизации

# Страница просмотра пользователей, работы с пользователем

# Страница изменения ролей

Филиалы:

# Страница списка филиалов

# Страница просмотра отчета продаж [фильтр по филиалам]

Заявки:

# Страница создания заявки

# Страница просмотра своих заявок

# Страница просмотра заявок с фильтром на новые и выполненные

# Страница изменения заявки (для юр.отдела, например)

Логистика:

# Страница складов

# Страница поставок товаров на склады

# Страница поставок отваров [фильтра по филиалам]

⚠️ **GitHub.com Fallback** ⚠️