- Django Simple Chat Application
- Проект доступен для скачивания на GitHub
- Installing and Running Python 3.10
- Клонируйте через HTTPS
- Перейдите в каталог debug, обновите pip менеджер пакетов
- Cоздайте виртуальное окружение
- Структура после создания
- Установите пакеты и зависимости
- Выполните следующие команды, чтобы создать таблицы в базе данных sqlite3
- Создание суперпользователя
- Запуск отладочного сервера
- Войдите в чат используя логин и пароль администратора или пройдите регистрацию для обычного пользователя
- Страница создания комнат
- Реализованные функции
- Реализованный API
- Postman клиент для тестирования API
Django Simple Chat Application
Проект доступен для скачивания на GitHub
Простой чат, создан с использованием:
- Django 4.0
- Django REST Framework 3.13.1
- Simple JWT 5.2.2
- Channel Layers 3.0.4
- sqlite3
Пользователь может создавать комнаты и добавлять участников, а также общаться один на один или в общем чате.
Installing and Running Python 3.10
Вы можете скачать установщик Python со страницы Download Python официального сайта. Я буду использовать версию 3.10.
После этого откройте PowerShell или CMD и перейдите в локальный каталог, в который вы хотите клонировать репозиторий
Клонируйте через HTTPS
git clone https://github.com/sharkevolution/debug.git
Перейдите в каталог debug, обновите pip менеджер пакетов
python -m pip install --upgrade pip
Cоздайте виртуальное окружение
%LocalAppData%\Programs\Python\Python310\python.exe -m venv %cd%\venv
Структура после создания
debug
projects
venv
.gitignore
README.md
requirements.txt
Установите пакеты и зависимости
перейдите в каталог debug
cd debug
Установите пакеты
pip install -r requirements.txt
Выполните следующие команды, чтобы создать таблицы в базе данных sqlite3
Перейдите в каталог
cd projects\chat_api_13
создание миграций
python manage.py makemigrations
запуск миграций
python manage.py migrate
Создание суперпользователя
Для создания суперпользователя вызовите следующую команду из той же папки, где расположен manage.py. Вас попросят ввести имя пользователя, адрес электронной почты и надёжный пароль.
python manage.py createsuperuser
После выполнения этой команды новый суперпользователь будет добавлен в базу данных. Теперь перезапустите сервер, чтобы можно было протестировать вход на сайт:
Запуск отладочного сервера
python manage.py runserver
Команда запустит приложение будет доступно на вашем локальном хосте http://127.0.0.1:8000/
Войдите в чат используя логин и пароль администратора или пройдите регистрацию для обычного пользователя

Страница создания комнат
Для тестирования откройте два разных браузера, залогинтесь под разными пользователями. Введите новое название комнаты для создания или войдите в одну из существующих для переписки.
Реализованные функции
-
Частная переписка между 2 участниками, если в комнате только два участника все сообщения будут частными. Если в комнате 1 или более 2 участников все сообщения становяться общими и доставлены всем для прочтения. при необходимсти отправки частного сообщения, нажмите на имя пользователя в разделе "участники группы" сообщение с приставкой
/pmбудет доставлено только указанному пользователю. -
Новые и непрочитанные сообщения
- Уведомление о прочтении сообщения
- Отображение текущего статуса пользователя (активен/неактивен)
- Добавление и исключение пользователей из комнаты
Реализованный API
Authorization: Bearer
| Метод | URL-адрес | Описание |
|---|---|---|
| POST | http://127.0.0.1:8000/api/v1/token/ | Создание токена simple jwt и добавление в таблицу |
| POST | http://127.0.0.1:8000/api/v1/users/create/ | Создание нового пользователя, key = [username, password] |
| GET | http://127.0.0.1:8000/api/v1/rooms/ | Список доступных комнат и их id |
| GET | http://127.0.0.1:8000/api/v1/rooms/1/ | Детальная информация о комнате по первичному ключу pk = "id комнаты" |
| GET | http://127.0.0.1:8000/api/v1/roomcontent/1/ | Детальная информация, список сообщений доступный пользователю, pk = "id комнаты" |
| GET | http://127.0.0.1:8000/api/v1/users/ | Список пользователей и информация в каких комнатах являются участниками |
| GET | http://127.0.0.1:8000/api/v1/users/1/ | Последнее сообщение пользователя для каждой комнаты, pk = "id пользователя" |
| GET | http://127.0.0.1:8000/api/v1/users/unread/1/ | Информация о непрочитанных сообщениях пользователя, pk = "id пользователя" |
| POST | http://localhost:8000/api/v1/usersend/ | Отправка сообщения пользователю, key = [recipient, room, content] указываем id клиента и id комнаты |
| POST | http://127.0.0.1:8000/api/v1/roomcreate/ | Создание комнаты с двумя участниками, key = [name, participante, participante] имя и id участников |
Postman клиент для тестирования API
В проекте для возможности тестирования добавлен файл для импорта в Postman, версия Collection v2.1
Файл для импорта в корне проекта Simple_Chat_Django.postman_collection.json


