Skip to content

proton391mail/lab_4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Matrix Social App

Современная социальная сеть с темным интерфейсом в стиле 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

Запуск с SSL (рекомендуется)

cd matrix-social-app/client
ng serve --ssl --ssl-key=../ssl/key.pem --ssl-cert=../ssl/cert.pem

После запуска приложение будет доступно по адресу:

Настройка SSL и WebSockets

Для корректной работы WebSockets через защищенное соединение (WSS) необходимо использовать SSL сертификаты.

Особенности реализации

Звуковое сопровождение

В приложении реализовано звуковое сопровождение следующих действий:

  • Получение новых уведомлений
  • Получение новых сообщений
  • Получение лайков
  • Получение комментариев
  • Новые подписчики

Управление звуками осуществляется через сервис AudioService.

WebSocket коммуникация

Для обмена данными в реальном времени используется STOMP через WebSocket:

  • Клиент подписывается на топики /topic/posts, /topic/messages и т.д.
  • Сервер отправляет сообщения в соответствующие топики при событиях
  • Клиент обрабатывает полученные сообщения и обновляет интерфейс

Темная тема в стиле Matrix

Приложение имеет темную тему с зелеными акцентами в стиле фильма "Матрица":

  • Темный фон
  • Зеленые акценты для важных элементов
  • Стилизованные иконки и анимации

Демо учетные записи

Для тестирования доступны следующие учетные записи:

Лицензия

Данный проект является учебным и не предназначен для коммерческого использования.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published