[ ← НАЗАД К ПРОЕКТАМ ]
cat ~/project_meta.sys

$ cat ~/project_meta.sys


BIGBOB MESSENGER — ВЕБ-МЕССЕНДЖЕР

Веб-мессенджер с личными чатами, сообщениями в реальном времени, E2E-слоем для диалогов, ролями пользователей, push/PWA-сценариями и отдельной админ-панелью. Проект задумывался как лёгкий Telegram-lite сервис для небольшого VPS: быстрый, адаптивный и достаточно функциональный, чтобы показывать уже не просто вёрстку, а полноценный продуктовый workflow.

React Socket.IO SQLite PWA E2E Admin
PRJ-05 BIGBOB MESSENGER / WEB APP
cat ~/task.txt

$ cat ~/task.txt


Нужно было собрать мессенджер, который работает как реальный продукт: личные чаты 1-на-1, доставка сообщений в реальном времени, роли user / admin, поиск пользователей, сообщения разных типов, настройки профиля, push-уведомления, PWA-установка и отдельная админ-панель. При этом проект должен был оставаться достаточно лёгким для сервера уровня 1 CPU / 1 GB RAM и нормально работать как в desktop browser, так и в мобильном браузере.

cat ~/my_role.txt

$ cat ~/my_role.txt


  • Проект разрабатывался совместно с коллегой, в формате 50/50.
  • С моей стороны был сильный акцент на продуктовой логике, сценариях direct chat, ролях, поиске и admin-flow.
  • Участвовал в проработке интерфейса, адаптива и связке профиля, чатов, настроек, storage-инструментов и PWA-потока.
  • Работал с серверной логикой вокруг авторизации, ролей user / admin, ограничений поиска и админских функций.
  • Проект доводился до живой VPS-конфигурации: Nginx, HTTPS, systemd, SQLite и рабочий деплой.
  • Frontend на React и часть клиентской логики дорабатывались совместно с коллегой.
cat ~/feature_map.txt

$ cat ~/feature_map.txt


  • Личные диалоги, список чатов, online/offline, typing и поиск по сообщениям.
  • Текст, файлы, голосовые сообщения и стикеры как отдельные типы сообщений.
  • Fullscreen-режим, мобильный layout, окно профиля и управление аватаром.
  • E2E-режимы, экспорт / импорт ключей и проверка ключа для direct chat.
  • Push/PWA-часть: установка приложения, локальный тест и серверные push-уведомления.
cat ~/stack.txt

$ cat ~/stack.txt


  • React + Vite для клиентского интерфейса.
  • Node.js / Express / Socket.IO для API, real-time и websocket-слоя.
  • SQLite и файловое хранение uploads для практичного VPS-сценария.
  • JWT, роли пользователей, auth middleware, protected API и admin routes.
  • PWA / web push, export bundle, storage cleanup и сервисные утилиты.
  • Nginx + HTTPS + systemd для живого деплоя и постоянного запуска сервиса.
cat ~/result.txt

$ cat ~/result.txt


В итоге получился мессенджер, который уже воспринимается как рабочий сервис, а не просто демо-экран: у него есть авторизация, чаты в реальном времени, роли, админ-панель, экспортно-сервисные функции, PWA-поток и E2E-ready слой для приватных переписок. Этот кейс показывает сразу UI, клиентские состояния, backend-логику, безопасность, хранение данных и деплой.

cat ~/workflow.txt

$ cat ~/workflow.txt


  • Кейс описывает совместную разработку.
  • Продуктовая часть, роли, админские сценарии, экспорт и серверная логика были ключевыми зонами моей вовлечённости.
  • React-интерфейс и часть клиентской реализации дорабатывались в паре, что и отражено в описании проекта.
cat ~/notes.txt

$ cat ~/notes.txt


  • Один из главных вызовов — уместить богатый функционал мессенджера в лёгкий VPS-сценарий без тяжёлых сервисов и лишней инфраструктуры.
  • Визуально проект ушёл в сторону аккуратного glassmorphism-интерфейса, ближе к Telegram/Discord, но с собственной палитрой и ритмом экрана.
  • Сильная часть кейса — не только chat UI, но и вся “внутренняя часть”: роли, поиск, user/admin-правила, storage-статистика, export и cleanup.
  • Отдельно важен PWA-слой: установка приложения, push-логика и попытка сделать веб-мессенджер максимально живым вне обычной вкладки браузера.
cat ~/preview_ascii.txt
┌────────────────────────┐
│   BIGBOB MESSENGER     │
│  ╭────────╮            │
│  │ hey!   │╮           │
│  ╰────────╯│           │
│      ╭────────╮        │
│      │ ok.    │        │
│      ╰────────╯        │
└────────────────────────┘