Chat — подробный кейс

Простая и надёжная платформа обмена сообщениями: безопасная аутентификация, поддержка множественных сессий, история диалогов, realtime‑обновления через WebSocket.

Chat — логотип
Кейс
2020–2021 • Pet‑project
Стек и инструменты
Node.js 14+NestJSAngularPostgreSQLRedisSocket.IONginxDocker / Docker Compose

О проекте

Простой мессенджер с поддержкой мультисессий, моментальной доставкой сообщений, историей диалогов и возможностью отправки вложений.

Демонстрируемые компетенции

  • Проектирование аутентификации
  • Realtime‑логика доставки событий
  • Воспроизводимая инфраструктура через Docker Compose

Интерфейс приложения

Скриншоты основных экранов и сценариев использования

Архитектура

Backend — монолит на базе NestJS, логически разделённый на модули (аутентификация, пользователи, диалоги и сообщения, хранение контента, уведомления). Такой подход упрощает поддержку и развитие функционала.

Данные распределены по ролям: реляционная база PostgreSQL хранит долговременные сущности (профили, диалоги, сообщения), а Redis используется как быстрый кеш и хранилище сессий для снижения задержек.

Frontend — одностраничное приложение на Angular, собранное в статические файлы; клиент использует HTTP для операций и realtime‑соединения для мгновенных обновлений.

Веб‑сервер (nginx) отдаёт статические ресурсы, маршрутизирует HTTP и WebSocket‑трафик к приложению и выполняет TLS‑терминацию на краю.

Структура репозитория

В корне находятся `Dockerfile`, `docker-compose.yml`, `nginx.conf` и скрипт сборки `build.sh`; реализации backend и frontend — в папке `deps`.

Открыть репозиторий
deps/chat-backend/ (NestJS, API, WS)
deps/chat-frontend/ (Angular SPA)
Dockerfile (образ приложения)
docker-compose.yml (локальное развёртывание)
nginx.conf (reverse proxy / static host)
build.sh (сборка и упаковка приложения)