Цель: Страница аналитики и статистики по пациентам
Функционал:
- Выбор пациента из списка
- Основная статистика (всего записей, средний показатель, тренд)
- График динамики настроения (Area Chart)
- Круговая диаграмма распределения эмоций (Pie Chart)
- Столбчатая диаграмма сравнения недель (Bar Chart)
- Расчет трендов и процентных изменений
Компоненты:
- Recharts для визуализации данных
- lucide-react иконки (TrendingUp, TrendingDown, Activity, Users)
- Glass-card стили для UI
Цель: Журнал записей эмоций пациентов с поиском и фильтрацией
Функционал:
- Выбор пациента из списка
- Поиск по заметкам (по тексту)
- Фильтрация по типу эмоции
- Хронологический список записей (новые сверху)
- Отображение деталей каждой записи:
- Тип эмоции с эмодзи и цветом
- Дата и время
- Интенсивность (визуальный индикатор)
- Заметка пациента
- Статистика по записям (всего, найдено, средний показатель)
Компоненты:
- lucide-react иконки (MessageSquare, Search, Filter, Calendar, Clock)
- Glass-input для поиска и фильтров
- Цветовая кодировка эмоций
Цель: Мессенджер для общения психолога с пациентами
Функционал:
- Выбор пациента из списка чатов
- Индикатор онлайн статуса
- Непрочитанные сообщения (badge с количеством)
- Окно чата с историей сообщений
- Отправка новых сообщений
- Визуальное разделение сообщений (свои/чужие)
- Временные метки для каждого сообщения
Компоненты:
- lucide-react иконки (MessageCircle, Send, User, Users)
- Автопрокрутка к новым сообщениям (useRef)
- Mock данные для демонстрации (в реальном приложении требуется подключение WebSocket/API)
Добавлены новые роуты:
/psychologist/analytics→ Analytics/psychologist/journal→ Journal/psychologist/chats→ Chats
Все роуты защищены через ProtectedRoute с ролью psychologist.
Добавлена навигация между страницами:
- Кнопки табов теперь активны (onClick)
- Навигация через
useNavigate() - Активная вкладка подсвечивается фиолетовым цветом
- Tabs: Главная, Аналитика, Журнал, Чат
- React Router для навигации
- Recharts для графиков (AreaChart, PieChart, BarChart)
- lucide-react для иконок
- date-fns для форматирования дат
- emotionsAPI для загрузки данных
- glass-card - основные карточки с glassmorphism эффектом
- glass-button - кнопки с прозрачным фоном
- glass-input - поля ввода с прозрачным фоном
- Цветовая схема: фиолетовые оттенки (#8b5cf6, #c4a7e7)
- Эмоции имеют свои цвета (красный → зеленый → фиолетовый)
emotionsAPI.getMyPatients()- получить список пациентовemotionsAPI.getPatientEmotions(patientId)- получить эмоции пациента
cd front
npm install
npm run devhttp://localhost:5173/psychologist- Главная (список пациентов, графики)http://localhost:5173/psychologist/analytics- Аналитикаhttp://localhost:5173/psychologist/journal- Журнал записейhttp://localhost:5173/psychologist/chats- Чаты
-
Chats.jsx:
- Интеграция с WebSocket для real-time сообщений
- Загрузка истории сообщений из API
- Отправка файлов и изображений
- Push-уведомления о новых сообщениях
-
Analytics.jsx:
- Экспорт отчетов (PDF, Excel)
- Настраиваемые диапазоны дат
- Сравнение нескольких пациентов
- Предиктивная аналитика
-
Journal.jsx:
- Добавление заметок психолога к записям
- Категоризация записей (теги)
- Экспорт журнала
- Расширенный поиск (по дате, интенсивности)
-
Общее:
- Адаптивная версия для мобильных устройств
- Темная/светлая тема
- Локализация (мультиязычность)
- Оптимизация производительности (виртуализация списков)