Система мониторинга и предотвращения утечек данных через электронную почту (Data Loss Prevention).
- Next.js 15.2.1 (App Router) - React фреймворк
- TypeScript - Типизация
- TailwindCSS - Стилизация
- Material UI - UI компоненты
- Zustand - Управление состоянием
- Recharts - Визуализация данных
- Socket.io-client - WebSocket соединение
- date-fns - Работа с датами
- Node.js с TypeScript
- Socket.io - WebSocket сервер
src/
├── app/ # Next.js страницы
│ ├── page.tsx # Главная страница
│ └── dashboard/ # Дашборд
├── components/ # React компоненты
│ ├── DashboardCharts.tsx # Графики статистики
│ ├── IncidentTable.tsx # Таблица инцидентов
│ ├── IncidentDetails.tsx # Модальное окно деталей
│ └── RealTimeNotifications.tsx # Уведомления
├── types/ # TypeScript типы
│ └── incident.ts # Типы для инцидентов
├── store/ # Управление состоянием
│ └── incidentStore.ts # Хранилище Zustand
└── server/ # Серверная часть
└── websocket.ts # WebSocket сервер
Incident- структура инцидентаThreatLevel- уровни угрозы ('low' | 'medium' | 'high')IncidentStats- структура статистики
- Управление списком инцидентов
- Управление статистикой
- Фильтрация данных
- Автоматическое обновление статистики при новых инцидентах
- Генерация тестовых инцидентов
- Отправка уведомлений клиентам
- CORS настройки для разработки
-
Статистика в реальном времени
- Общее количество инцидентов
- Количество критических инцидентов
- Инциденты в обработке
-
Визуализация данных
- График по отделам
- График по уровням угрозы
- Временная динамика инцидентов
-
Таблица инцидентов
- Время
- Уровень угрозы
- Пользователь
- Отдел
- Тема письма
- Статус
- Действия
-
Детальная информация
- Модальное окно с подробностями
- Получатели письма
- Вложения
- Полное описание
-
Уведомления
- Real-time уведомления о новых инцидентах
- Цветовая индикация по уровню угрозы
- Установка зависимостей
npm install- Запуск приложения
В первом терминале запустите Next.js приложение:
npm run devВ другом терминале запустите WebSocket сервер:
npm run websocketПриложение будет доступно по адресу: http://localhost:3000
По умолчанию WebSocket сервер работает на порту 3001. Для изменения настроек отредактируйте файл src/server/websocket.ts:
const PORT = 3001;
const CORS_ORIGIN = "http://localhost:3000";Для production-окружения рекомендуется:
- Реализовать реальный API для получения данных
- Добавить аутентификацию пользователей
- Настроить постоянное хранение данных (БД)
- Добавить систему логирования
- Настроить мониторинг производительности
В текущей версии:
- Используется CORS для WebSocket соединений
- Типизация данных для предотвращения некорректного ввода
- Валидация входящих данных на стороне клиента
- Node.js 18+
- npm 8+
- Современный браузер с поддержкой WebSocket