Skip to content

Channels Django + WebSockets: chats at LocMemCache with dynamic chat list, dynamic user list at every chat and personal messages to them

Notifications You must be signed in to change notification settings

MapleBloom/ChatBoard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Skillfactory FPW homework

Web-application example to show JavaScript frontend and Django framework backend interaction.


⬇️ to Quick start

Техническое задание и реализация


Нам необходимо создать базовый мессенжер со следующими функциями:
- отправка и получение сообщений;

Отправка и получение сообщений реализованы через Channels Django , которые устанавливают длительное соединение с пользователем по протоколу WebSockets.


- создание, редактирование и удаление групповых чатов и переписка в них;

Пользователь открывает свою комнату (Room) или присоединяется к действующим комнатам, которые основываются на технологии объединения Django Channels в группы Groups для обмена сообщениями между разными каналами.

Пользователи подключаются и выходят из комнат динамически, вход и выход обозначаются сообщением от пользователя.

Сообщения отправляются всем пользователям в комнате.

Сохранение сообщений для пользователей, покинувших комнату, не предусмотрено. При выходе всех пользователей из комнаты она становится недоступной.


- редактирование личной информации пользователя (имя и аватар);

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


- просмотр списка других пользователей с переходом на отправку им сообщений.

Находясь в комнате чата пользователь видит динамический список других пользователей, подключенных к этой же комнате.

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


Quick start

Platform-depending options and libraries are adjusted to Windows.

Clone repository to ChatBoard_dir directory

git clone https://github.com/MapleBloom/ChatBoard

Generate Django secret-key

python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'

At the inner prjchat directory (project dir) add venv/settings.env file for private settings

SECRET_KEY = ''

At ChatBoard_dir directory, start and adjust virtual environment

python -m venv venvCB
venvCB\scripts\activate
cd .\ChatBoard\ 
pip install -r requirements.txt

Mark ChatBoard directory as Sources root

Create superuser

python manage.py createsuperuser

Start server

python manage.py runserver

Main page works at url http://127.0.0.1:8000/ - local host that server advises you at start message

ChatBoard

⬆️ to begin



Star ⭐️⭐️⭐️⭐️️⭐️ my project if you like it or think it is useful

About

Channels Django + WebSockets: chats at LocMemCache with dynamic chat list, dynamic user list at every chat and personal messages to them

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published