- 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