-
Notifications
You must be signed in to change notification settings - Fork 2
User story
Aleksandr Gorohov edited this page Nov 22, 2024
·
10 revisions
Описание:
Как банк "Стар", мы хотим внедрить рекомендательную систему, которая будет анализировать поведение клиентов и предлагать им персонализированные банковские продукты.
Как пользователь системы, я хочу:
-
Анализировать транзакции:
- Учитывать типы продуктов (DEBIT, SAVING, INVEST, CREDIT).
- Определять суммы пополнений и трат.
-
Определять подходящие продукты:
- Использовать заранее заданные правила для каждого продукта.
- Учитывать, что для рекомендации должны выполняться все правила.
-
Предоставлять список рекомендаций:
- Через REST API с методом
GET /recommendation/<user_id>. - Возвращать JSON с идентификатором пользователя и списком рекомендуемых продуктов.
- Через REST API с методом
Функциональные требования:
-
Анализ транзакций:
- Получать данные из базы данных H2.
- Анализировать транзакции для определения типов продуктов и сумм.
-
Применение правил:
- Использовать заранее заданные правила для каждого продукта.
- Объединять правила логическими "И", "ИЛИ".
-
Генерация рекомендаций:
- Генерировать список рекомендуемых продуктов на основе выполненных правил.
- Возвращать пустой список, если рекомендаций нет.
-
REST API:
- Предоставлять метод
GET /recommendation/<user_id>. - Возвращать JSON с идентификатором пользователя и списком продуктов.
- Предоставлять метод
Нефункциональные требования:
-
Производительность:
- Обрабатывать запросы в реальном времени.
- Оптимизировать SQL-запросы.
-
Масштабируемость:
- Разрабатывать с учетом возможности расширения.
- Компоненты должны быть легко тестируемы и поддерживаемы.
-
Безопасность:
- Обеспечивать безопасный доступ к базе данных и API.
Пример использования:
Входные данные:
- Идентификатор пользователя:
cd515076-5d8a-44be-930e-8d4fcb79f42d
Выходные данные:
{
"user_id": "cd515076-5d8a-44be-930e-8d4fcb79f42d",
"recommendations": [
{
"name": "Invest 500",
"id": "147f6a0f-3b91-413b-ab99-87f081d60d5a",
"text": "Откройте свой путь к успеху с индивидуальным инвестиционным счетом (ИИС) от нашего банка! Воспользуйтесь налоговыми льготами и начните инвестировать с умом. Пополните счет до конца года и получите выгоду в виде вычета на взнос в следующем налоговом периоде. Не упустите возможность разнообразить свой портфель, снизить риски и следить за актуальными рыночными тенденциями. Откройте ИИС сегодня и станьте ближе к финансовой независимости!"
}
]
}Дополнительные требования:
- Реализовать как Spring Boot приложение.
- Использовать JdbcTemplate для работы с базой данных.
- Код должен быть структурирован и легко тестируем с использованием Mockito и JUnit.
Приоритет: Высокий
Срок выполнения: До конца текущей итерации разработки.