CRM Dashboard для управления агентствами и пользователями
1. Задача
Нужно разработать веб-панель / CRM dashboard для управления несколькими агентствами и пользователями.
Сайт должен выглядеть в стиле premium dark dashboard:
- тёмный интерфейс
- neon/glow элементы
- sidebar слева
- верхние карточки статистики
- таблица пользователей
- фильтры
- кнопка Split
- адаптация под ПК и мобильные устройства
Референс дизайна: как на прикреплённом скрине.
2. Основные разделы сайта
В sidebar должны быть разделы:
- Dashboard
- Users
- Risk Zone
- Agencies
- Split
- Administrators
- Changes
- Reports
- Settings
3. Авторизация в CRM
Нужна обычная авторизация:
- login
- password
Google Authenticator для самой CRM не нужен.
4. Подключение к внешней рабочей панели
Данные должны автоматически подтягиваться из внешней официальной панели.
У внешней панели нет публичного API, поэтому нужно реализовать подключение через browser automation:
- Playwright
или
- Puppeteer
или
- Selenium
Логика входа во внешнюю панель:
1. Система открывает сайт, который я предоставлю.
2. Вводит первый login / password.
3. После этого вводит второй login / password, если требуется.
4. Если появляется Google Authenticator / 2FA — система ждёт ввод кода.
5. После ввода кода авторизация продолжается.
6. Активная сессия сохраняется, чтобы не вводить код каждый раз.
7. После успешного входа система получает данные из панели и передаёт их в мою CRM.
5. Какие данные нужно получать
По каждому пользователю:
- фото / avatar
- nickname
- ID
- agency
- percentage
- profile coefficient
- 30 days coefficient
- earnings today
- earnings this month
- online today
- online this month
- level
- risk status
- risk reason
По агентствам:
- список агентств
- общий заработок за день
- общий заработок за месяц
- общий онлайн за день
- общий онлайн за месяц
- количество пользователей
- количество пользователей в зоне риска
6. Dashboard
Вверху должны быть карточки:
- Earnings today
- Earnings this month
- Online today
- Online this month
- Users at risk
Также нужны:
- кнопка Refresh data
- кнопка Split
- фильтр по агентствам
- дата последнего обновления
7. Таблица пользователей
Таблица должна содержать:
- User / ID
- Agency
- Percent
- Profile coefficient
- 30 days coefficient
- Earnings today
- Earnings this month
- Online today
- Online this month
- Level / Limit
- Risk status / Reason
- Actions
8. Процент пользователя
В таблице должна быть возможность менять процент пользователя.
Условия:
- максимум 20%
- после изменения нужно нажать Save
- изменение должно применяться во внешней панели через automation
- после сохранения показывать статус:
- success
- in progress
- error
9. Risk system
CRM должна автоматически определять статус риска.
Статусы:
- All good
- Warning
- At Risk
Причина риска должна показываться в таблице.
Пример:
At Risk:
30 days coefficient 0.23 exceeds level B limit 0.18
Warning:
coefficient is close to the limit
All good:
both coefficients are below the limit
10. Уровни пользователей
Уровень определяется по месячному заработку:
S:
45,000+ coins
limit: 0.25
A:
20,000 – 44,999 coins
limit: 0.25
B:
7,000 – 19,999 coins
limit: 0.18
C:
2,000 – 6,999 coins
limit: 0.18
D:
до 2,000 coins
limit: 0.12
11. Split функция
В основной панели должна быть кнопка Split.
Логика:
- Split запускается по выбранному агентству
- или по всем агентствам
- система находит пользователей с балансом больше 100 coins
- выполняет split во внешней панели через browser automation
- показывает результат операции
После выполнения показывать:
- processed users
- skipped users
- total split amount
- errors
- date
- duration
- operation status
Статусы:
- In Progress
- Completed
- Partially Completed
- Error
12. Администраторы
Нужно сделать раздел Administrators.
Главный админ может:
- создавать администратора
- задавать login
- задавать password
- выбирать доступные агентства
- выдавать права
Права:
- view only
- edit percentage
- split access
- admin management
Если администратору доступны только Agency1 и Agency2, он не должен видеть остальные агентства.
13. Фильтры
Нужны фильтры:
- agency
- risk status
- level
- nickname
- ID
- earnings
- coefficient
14. Поиск
Нужен поиск по:
- nickname
- ID
15. Сортировка
Нужна сортировка по:
- earnings today
- earnings this month
- online today
- online this month
- profile coefficient
- 30 days coefficient
- level
- risk status
- percentage
16. Языки
Интерфейс должен поддерживать:
- RU
- EN
Переключение языка без перезагрузки страницы.
17. Техническая часть
Frontend:
- React
- Vite
- TypeScript
- TailwindCSS
Backend:
- Node.js / Express
или
- NestJS
Database:
- PostgreSQL
или
- MySQL
Automation:
- Playwright предпочтительно
18. Обновление данных
Данные должны обновляться:
- вручную через кнопку Refresh data
- автоматически каждые 5–30 минут
19. Логи
Нужно хранить:
- историю обновлений
- историю split операций
- ошибки automation
- историю изменений процентов
- действия администраторов
20. Deploy
Нужно установить проект на VDS.
Сделать:
- production build
- запуск frontend
- запуск backend
- настройку базы данных
- настройку домена
- SSL
- инструкцию по запуску
21. Результат
В итоге должен быть готовый сайт CRM dashboard:
- красивый интерфейс как на референсе
- данные подтягиваются из внешней панели
- можно менять проценты
- работает Split
- есть роли администраторов
- есть фильтры, поиск, сортировка
- есть RU / EN
- проект установлен на VDS
- исходный код передан мне