docs: adds rules and agents specs
This commit is contained in:
81
docs/agents/agent_frontend.md
Normal file
81
docs/agents/agent_frontend.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# Агент: Frontend (React + TypeScript)
|
||||
|
||||
## Стек
|
||||
|
||||
- React + TypeScript.
|
||||
- Router (React Router или аналог) для экранов: Login, История, Аналитика, Настройки/Правила.
|
||||
- Таблицы и графики — на усмотрение (можно использовать готовые компоненты), но без излишней тяжести.
|
||||
|
||||
## Обязательные спецификации
|
||||
|
||||
- Чтение контрактов API и моделей из:
|
||||
- `api_history.md`
|
||||
- `edit_and_rules.md`
|
||||
- `analytics.md`
|
||||
- `auth.md`
|
||||
- а также модели данных и категорий из `db.md`, `category.md`.
|
||||
|
||||
## Основные экраны
|
||||
|
||||
1. Логин
|
||||
|
||||
- Форма `login/password`, запрос `POST /api/auth/login`.
|
||||
- При успехе — переход на Историю.
|
||||
- При `401` на любых защищённых запросах — редирект на Login.
|
||||
|
||||
1. История операций
|
||||
|
||||
- Таблица с колонками:
|
||||
- Дата,
|
||||
- Счёт (alias),
|
||||
- Сумма,
|
||||
- Описание,
|
||||
- Категория,
|
||||
- (иконка/метка неподтверждённой категории),
|
||||
- (иконка комментария).
|
||||
- Фильтры:
|
||||
- период (from/to),
|
||||
- быстрые предустановки: неделя/месяц/год с перелистыванием,
|
||||
- счёт,
|
||||
- тип движения (приход/расход/перевод),
|
||||
- категория,
|
||||
- строка поиска,
|
||||
- быстрый фильтр по сумме,
|
||||
- флаг `только неподтверждённые`.
|
||||
- Пагинация страницами: 10/50/100.
|
||||
|
||||
- Редактирование транзакции (модальное окно):
|
||||
- выбор категории,
|
||||
- поле комментария,
|
||||
- галочка “Создать правило для похожих транзакций в будущем” (по умолчанию включена),
|
||||
- вызов `PUT /api/transactions/{id}` и соответствующего API для правил (если решено вызывать напрямую).
|
||||
|
||||
1. Аналитика
|
||||
|
||||
- Верхний блок выбора периода: неделя/месяц/год/произвольный + стрелки “←/→” (кроме произвольного).
|
||||
- Фильтры:
|
||||
- счёт,
|
||||
- флаг “только подтверждённые”.
|
||||
- Блок 1: сводка (`/api/analytics/summary`).
|
||||
- Блок 2: график времени (`/api/analytics/timeseries`).
|
||||
- Блок 3: диаграмма/таблица по категориям (`/api/analytics/by-category`).
|
||||
|
||||
1. Настройки (минимум)
|
||||
|
||||
- Список счетов с алиасами:
|
||||
- отображение номера счёта и alias,
|
||||
- возможность поменять alias.
|
||||
- Список категорий (только просмотр).
|
||||
- Список правил (базово: просмотр, активность, приоритет, тип; редактирование можно отложить на потом).
|
||||
|
||||
## Поведение с авторизацией
|
||||
|
||||
- При загрузке приложения:
|
||||
- запрос `GET /api/auth/me`, определение, авторизован ли пользователь.
|
||||
- Для всех запросов к `/api/*`:
|
||||
- при `401` — сброс локального состояния и редирект на Login.
|
||||
|
||||
## Ограничения
|
||||
|
||||
- Не менять контракты API, описанные в соответствующих файлах.
|
||||
- Настройка видимых колонок в истории должна быть предусмотрена (хотя бы на уровне структуры состояния).
|
||||
Reference in New Issue
Block a user