Современная социальная сеть с темным интерфейсом в стиле Matrix, объединяющая людей через безопасное общение с использованием веб-сокетов и интерактивных элементов.
- Frontend: Angular 13 с Angular Material
- Backend: Spring Boot 2.6
- База данных: H2 (для разработки), поддержка PostgreSQL/MySQL для продакшена
- Безопасность: JWT-токены, Spring Security
- WebSockets: STOMP через SockJS для мгновенных уведомлений
- API: RESTful API с Spring MVC
- SSL: Поддержка HTTPS/WSS для защищенных соединений
- Авторизация и аутентификация: Регистрация, вход и безопасное хранение пользовательских данных
- Лента новостей (Timeline): Отображение постов в реальном времени с мгновенными обновлениями
- Профиль пользователя: Персональная информация, фото, статистика активности
- Сообщения: Обмен сообщениями между пользователями в реальном времени
- Уведомления: Мгновенные уведомления о новых лайках, комментариях и подписках
- Комментарии: Возможность комментировать посты и отвечать на комментарии
- Лайки: Оценка постов и комментариев других пользователей
- Поиск: Поиск пользователей, постов и по хэштегам
- Звуковое сопровождение: Аудио-уведомления для основных действий (лайки, комментарии, сообщения)
- Темная тема: Стильный Matrix-интерфейс с зелеными акцентами и возможностью переключения тем
matrix-social-app/
├── client/ # Клиентская часть (Angular)
│ ├── src/ # Исходный код
│ │ ├── app/ # Компоненты приложения
│ │ │ ├── component/ # UI компоненты
│ │ │ │ ├── header/ # Верхний навигационный бар
│ │ │ │ ├── login/ # Авторизация
│ │ │ │ ├── notification/ # Уведомления
│ │ │ │ ├── post/ # Отображение постов
│ │ │ │ ├── profile/ # Профиль пользователя
│ │ │ │ ├── timeline/ # Лента новостей
│ │ │ │ └── theme-toggle/ # Переключение тем
│ │ │ ├── model/ # Модели данных
│ │ │ └── service/ # Сервисы приложения
│ │ │ ├── audio.service.ts # Звуковые уведомления
│ │ │ ├── auth.service.ts # Аутентификация
│ │ │ ├── notification.service.ts # Управление уведомлениями
│ │ │ ├── theme.service.ts # Управление темами
│ │ │ ├── timeline.service.ts # Сервис ленты новостей
│ │ │ └── websocket.service.ts # Работа с WebSocket
│ │ ├── assets/ # Статические ресурсы
│ │ │ ├── images/ # Изображения
│ │ │ └── sounds/ # Звуковые эффекты
│ │ └── environments/ # Конфигурация окружений
│ └── ssl/ # SSL сертификаты для разработки
└── server/ # Серверная часть (Spring Boot)
├── src/
│ └── main/
│ ├── java/com/kpjunaid/ # Исходный код Java
│ │ ├── config/ # Конфигурация приложения
│ │ │ └── WebSocketConfig.java # Настройка WebSocket
│ │ ├── controller/ # REST-контроллеры API
│ │ │ └── WebSocketController.java # Контроллер WebSocket
│ │ ├── dto/ # Data Transfer Objects
│ │ ├── entity/ # Модели данных
│ │ ├── filter/ # Фильтры безопасности
│ │ ├── repository/ # JPA репозитории
│ │ └── service/ # Сервисы бизнес-логики
│ └── resources/ # Ресурсы приложения
│ ├── application.yml # Основная конфигурация
│ └── static/ # Статические ресурсы
└── pom.xml # Maven конфигурация
- Java 11 или выше
- Node.js 14 или выше
- npm 6 или выше
- Angular CLI 13
cd matrix-social-app/server
./mvnw spring-boot:run
cd matrix-social-app/client
npm install
ng serve
cd matrix-social-app/client
ng serve --ssl --ssl-key=../ssl/key.pem --ssl-cert=../ssl/cert.pem
После запуска приложение будет доступно по адресу:
- HTTP: http://localhost:4200/
- HTTPS: https://localhost:4200/ (рекомендуется для корректной работы WebSocket)
Для корректной работы WebSockets через защищенное соединение (WSS) необходимо использовать SSL сертификаты.
В приложении реализовано звуковое сопровождение следующих действий:
- Получение новых уведомлений
- Получение новых сообщений
- Получение лайков
- Получение комментариев
- Новые подписчики
Управление звуками осуществляется через сервис AudioService
.
Для обмена данными в реальном времени используется STOMP через WebSocket:
- Клиент подписывается на топики
/topic/posts
,/topic/messages
и т.д. - Сервер отправляет сообщения в соответствующие топики при событиях
- Клиент обрабатывает полученные сообщения и обновляет интерфейс
Приложение имеет темную тему с зелеными акцентами в стиле фильма "Матрица":
- Темный фон
- Зеленые акценты для важных элементов
- Стилизованные иконки и анимации
Для тестирования доступны следующие учетные записи:
-
Администратор:
- Email: [email protected]
- Пароль: password
-
Пользователь:
- Email: [email protected]
- Пароль: password
Данный проект является учебным и не предназначен для коммерческого использования.