-
Регистрация пользователей с подтверждением по почте.
-
Аутентификация пользователей.
Типы аутентификации:
- Basic Auth;
- Token Auth;
- JWT Auth;
- OAuth 2 via GitHub;
- Session Auth.
Для аутентифицированных пользователей:
-
Редактирование профиля пользователя, добавление пользователей в друзья и их удаление (при добавлении в друзья и подтверждении заявки приходит оповещение на почту).
-
Создание, редактирование и удаление чат-комнат, приглашение в комнату других пользователей и их удаление (при приглашении в комнату приходит оповещение на почту).
-
Подключение пользователей к комнатам и обмен сообщениями в режиме реального времени с возможностью просмотра всех ранних сообщений комнаты и отслеживания текущего онлайна пользователей.
- Ubuntu 20
- Python 3.8
- PostgreSQL 12.6
- Redis 6.2
- Django 3.1/DRF 3.12
- Django Channels 3.0
- Celery 4.4 + Flower 0.9
- Docker
- Склонируйте репозиторий в требуемую директорию:
git clone https://github.com/SmVAwrk/chatroom
-
Перейдите в корневую папку.
-
У файлов
*.env.default
удалите расширение".default"
. -
Для работы аутентификации через GitHub и отправки сообщений на почту необходимо в этом же файле установить некоторые значения переменных окружения. Данный шаг можно пропустить, но в этом случае упомянутого функционала не будет.
-
Также, по желанию, в
.env
файлах вы можете задать свои данные для PostgreSQL и автоматического создания суперпользователя Django (DJANGO_SUPERUSER_EMAIL
иDJANGO_SUPERUSER_PASSWORD
). -
Создайте образы и запустите контейнеры БД в фоновом режиме:
docker-compose up -d db redis
- Создайте образы и запустите контейнеры приложений:
docker-compose up app celery flower
-
API доступно на localhost:8080.
-
Документация Swagger доступна на localhost:8080/swagger/.
-
Flower доступен на localhost:5050.
Документация в формате json - swagger.json