Skip to content

Repository files navigation

Balance

Серверное приложение для автоматического изменения рецептов под предпочтения клиентов
Подойдёт под любой бизнес, изготавливающий еду или напитки не из заготовок

Персонализация вкуса · API · бизнес-панель · форма опроса

Python PostgreSQL Docker REST API


В этом репозитории разрабатывался Back-end

Репозитории с:

  1. Business-панелью
  2. Формой опроса
Роль backend (рецепты, коэффициенты, опросы, персонализация)
Стек Python, Flask, PostgreSQL, Docker Compose
Business-панель Ariabochkina/balance-business
Форма опроса Ariabochkina/balance-survey

Что мы предоставляем

Что получит клиент?

После каждой покупки пользователь получает форму из небольшого числа вопросов. Каждый вопрос - шкала, насколько гость предпочёл бы ослабить или усилить некоторую вкусовую характеристику. После заполнения формы рецепт изменяется под него автоматически, и со следующим продуктом он получит адаптированный под него вкус.

Что получает бизнес?

Форму для редактирования вышеуказанного опросника, отдельную для каждого продукта. Менеджер формы указывает коэфициенты, насколько каждый из параметров во время приготовление влияет на заданные вкусовые характеристики.


Как это работает?

Мы исходим из предположения, что вкусовые предпочтения клиента - унимодальная функция над пространством из отдельных вкусовых характеристик(сладость, соленость, горечь, кислотность, температура, концентрированность вкуса и т. д.). Для поиска максимального значения таких функций идеально подходит градиентный спуск. Но что же такое градиент для предпочтений клиента? То насклолько он бы изменил каждую вкусовую характеристику, то есть результат собранного нами опросника.


Формат конфигурации рецепта

JSON-файл содержит:

  • Поле name, содержащее название рецепта
  • Поле tastes, содержащее вкусовые характеристики
  • Поле default_measures с полями ингридиентов и их дефолтных значений
  • Поле change_coefficients с полями ингридиентов, содержащих поля вкусовых характеристик и соответствующих им коэфициентов

Формат опросника

JSON-файл содержит:

  • поле changes — словарь, содержащий поля вкусов, которым соответствуют коефициенты изменения от -0.1 до 0.1

Функциональные требования

  1. Добавление рецепта напитка пользователем
  2. Создание формы опроса пользователя для заказчика
  3. Изменение бизнесом коэфициентов влияния ингридиентов на вкус напитка через бизнес-панель
  4. Добавление бизнесом нового рецепта
  5. Принятие и обработка результатов опроса
  6. Показ кастомизированного рецепта исполнителю заказа
  7. Авторизация бизнеса в системе
  8. Предоставление удобного API бизнесу

Архитектура

Взаимодействие компонентов

  • Бизнес редактирует общие рецепты и коэфициенты изменения при помощи business панели.
  • Бизнес может добавлять новые рецепты пользователей с помощью API.
  • После приобретения элемента меню некоторым пользователем, бизнес может запросить генерацию токена формы изменения рецепта, после первого её заполнения токен аннулируется и заполнение становится невозможным.
  • Бизнес может получить данные о рецепте c помощью API.

Architecture

Взаимодействие backend, бизнес-панели и формы опроса

Бизнес-панель (balance-business)          Форма опроса (balance-survey)
        │                                    │
        │  рецепты / коэффициенты            │  submit опроса
        ▼                                    ▼
┌────────────────────────────────────────────────────┐
│                 balance (API)                      │
│     рецепты · токены · персонализация вкуса        │
└───────────────────────┬────────────────────────────┘
                        ▼
                 PostgreSQL

Запросы к API бизнеса

Метод Endpoint Описание
POST, GET /usersRecipes/<user_id>/<recipe_id> создание и получение рецепта пользователя
GET /usersToken генерация формы опросника и соответствующего ей токена (параметры user_id и recipe_id)
GET /tastes/<recipe_id> получение всех вкусовых характеристик рецепта
POST /submit/ отправка формы с последующим изменением рецепта пользователя

Фронтенд

Сервис Репозиторий Порт Доступ
Редактор рецептов balance-business 3002 вход: :3002/login
Формы с опросами balance-survey 3001 параметры token и recipe_id

Демонстрация функционала

📹 Видео на Яндекс.Диске


Ссылки

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages