Skip to content

Instant messaging service. FastApi + Websocket + Postgresql + Redis + Celery. Register and chat with other users.

Notifications You must be signed in to change notification settings

DmitriiViktorov/InstantMessages

Repository files navigation

Сервис обмена мгновенными сообщениями

instant-messages-logo

Сервис обмена мгновенными сообщениями

Возможности сервиса

Сервис представляет собой приложение для общения с любым пользователем в режиме реального времени. Для начала общения необходимо зарегистрироваться и перейти в раздел Chats (чаты). Обратите внимание, что при регистрации необходимо указать ваш telegram аккаунт. Это нужно для того, чтобы вы могли общаться с нашим ботом, где вы сможите подписаться на уведомление о новых сообщениях, если вы не онлайн.

Установка

Сервис мгновенных сообщений разворачивается с помощью запуска нескольких взаимосвязанных контейнеров:

  • web: само приложение с логикой работы, эндпоинтами и методами взаимодействия с базой данных, а так же телеграм бот и очередь задач на celery.
  • postgres: СУБД PostgreSQL, где хранится вся информация о пользователях и сообщениях.
  • nginx: Nginx обеспечивает централизованную маршрутизацию, балансировку нагрузки и работу со статическими файлами.

Шаги установки:

  1. Клонирование репозитория:

    Для установки необходимо клонировать репозиторий с помощью следующей команды:

    git clone https://github.com/DmitriiViktorov/InstantMessages.git
  2. Создание .env файла

    После клонирования репозитория в корневой директории проекта необходимо создать .env файл и указать там следующие типы настроек:

    • POSTGRES_USER=< ваше имя пользователя >

    • POSTGRES_PASSWORD=< ваш пароль для этого пользователя >

    • POSTGRES_DB=< название базы данных >

    • POSTGRES_HOST=db

    • POSTGRES_PORT=5432

    • AUTH_SECRET=<ваша_строка_для_шифрования_данных_аутентификации> (пример: 'mVFJwu9PpL2s?a1yviK0eIHMtc5!,k_bfgh6Br.YEx8GZRSD7jMbsoWEXfgJz05_RqCKinZSP6eLDNvhmG2YHA9-?p!ryjkdITu8')

    • PASSWORD_RESET=<ваша_строка_для_шифрования_токенов_сброса_пароля> (привер: '5lbiPzhV_74TeEyw0nuAKWmZFJv?xO!pMXaRSH6,IBG3j1L8cU')

    • BOT_TOKEN=<ваш_телеграм_бот_токен> (как зарегистрировать свой телеграм-бот: https://t.me/botfather)

  3. Запуск сервиса

    После перехода в корневую директорию проекта запустите сервис с помощью Docker Compose:

    docker-compose up --build
  4. Доступ к приложению

    После успешного запуска сервис будет доступен по адресу http://localhost.

Использование

После запуска сервиса им сразу можно пользоваться по прямому назначению. После регистрации пользователь увидит страницу своего профиля, на которой будет ссылка на телеграм бот InstantMessages, где он сможет подписаться на получение уведомлений. Перейдя в раздел Chats пользователь выбирает другого пользователя для начала общения и переходит в чат с ним.

Описание API

API данного приложения документировано с использованием OpenAPI. Для ознакомления с документацией API, перейдя по следующей ссылке:

Контактная информация

В случае возникновения вопросов, комментариев, замечаний по работе приложения вы можете связаться со мной:

About

Instant messaging service. FastApi + Websocket + Postgresql + Redis + Celery. Register and chat with other users.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published