Skip to content

ZeroTworu/wsc

Repository files navigation

WebSocket Chat

Чат использующий WebSockets, написан с использованием FastAPI, SQLAlchemy, Vue.js 3 и Vuetify.

  • Возможность создания личных и групповых чатов.
  • Поддержка работы с нескольких устройств. Один аккаунт залогененный с нескольких компьютеров получит свои сообщения сразу на всех.
  • Обновление в реальном времени статуса прочитаности у сообщения.
  • Отображение списка пользователей прочитавших сообщение.
  • Уведомления когда пользователь появляется онлайн в чате и когда оффлайн.

Расчитан на работу с PostgreSQL, Python >=3.13 и наличие системы управления зависимостями Poetry.

Скриншоты

chat

chat

chat

chat

chat

Переменные окружения

ENV Описание required default
WS_DATA_BASE_DSN DB URL вида postgresql+asyncpg://postgres:password@127.0.0.1:5557/db +
WS_SECRET_KEY Ключ шифроывния JWT +
WS_DATA_BASE_ECHO Подробное логирование запросов - on
WS_SELF_STATIC Включает отправку статики - off
WS_ALGORITHM Алгоритм шифрования JWT - HS256
WS_ACCESS_TOKEN_EXPIRE_MINUTES Сколько живёт JWT в минутах - неделя
WS_LOG_LEVEL Уровень логирования - info

Makefile

Для ускорения рутинных ипераций есть Makefile

Комманда Что делает
make lint Запуск линтера
make isort Сортировка импортов
make infra Поднимает постгрес в контейнере
make app Быстрый запуск приложения (нужно установить зависимости)
make up Быстрый запуск приложения, инфраструктуры и WebUI из образа размещённого в ghcr.io

Fixtures

При первом запуске система создаёт трёх пользователей для проверки

Логин Пароль
admin pass1
guest pass2
guest2 pass3
  • То что ник admin ни чего не значит, системы прав нету.

About

WebSocket Chat

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors