Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Async Chat Platform

Проект предоставляет асинхронный веб‑чат с FastAPI, MongoDB, WebSocket и React (через CDN). Доступны три режима общения:

  • CommonChat — общий канал для всех пользователей.
  • Комнаты — тематические чаты c расширенными фильтрами по тегам, времени и географии.
  • P2P — приватные диалоги с возможностью одновременного участия в нескольких сессиях.

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

Запуск сервера

  1. Установите зависимости:

    pip install -r requirements.txt
  2. Убедитесь, что MongoDB доступна по адресу mongodb://localhost:27017 или задайте переменную окружения MONGO_URI.

  3. Запустите приложение:

    uvicorn app.main:app --reload
  4. Перейдите в браузере по адресу http://localhost:8000.

Основные возможности

  • Одновременная работа с общим каналом, несколькими комнатами и несколькими P2P-сессиями.
  • Гибкий фильтр комнат по тегам, тексту, локации и времени.
  • Создание комнат с географией, тематикой и временем события.
  • Подписки на ключевые слова, географию и временные окна по областям чата с уведомлениями в режиме WebSocket.
  • Асинхронное взаимодействие с MongoDB (Motor) и WebSocket API FastAPI.

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

Имя Описание Значение по умолчанию
MONGO_URI URI MongoDB mongodb://localhost:27017
MONGO_DB Имя базы данных chat_server
ALLOWED_ORIGINS CORS whitelist (через запятую или *) *
DEBUG Включить режим отладки FastAPI false

Стек

  • FastAPI + Uvicorn
  • Motor (MongoDB)
  • WebSocket API
  • React 18 + TailwindCSS (через CDN)
  • AsyncIO

Структура

app/
├── config.py
├── database.py
├── main.py
├── schemas.py
├── services/
│   ├── messages.py
│   └── subscriptions.py
├── static/
│   └── index.html
└── websocket_manager.py

История сообщений, комнаты, P2P-сессии и подписки сохраняются в MongoDB.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages