Skip to content

Анонимный чат для знакомства с единомышленниками.

Notifications You must be signed in to change notification settings

maksimtor/likeminded

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LikeMinded

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

Стек технологий

Backend

Модели имеют в каком-то смысле иерархическую структуру из-за сложности представления данных о пользователях. CustomUser ссылается с помощью ForeignKey на UserInfo и UserPrefs, которые в свою очередь ссылаются на таблицы типа Personality, описывающие черты характера пользователя.

Используется Django Rest Framework в совокупности с продвинутыми сериализаторами, которым приходится иметь дело с nested структурой моделей. Создавая новый объект пользователя, приходится создавать объекты нижнего уровня вместе с этим.

Вычисление процента совместимости пользователей происходит с помощью мною разработанного алгоритма, который можно посмотреть в chat/tools/prefAlgorith.py. Там есть два класса, один из которых проверяет, подходят ли пользователи друг другу, а второй считает, насколько они друг другу подходят.

Соединение и поиск пользователей происходит с помощью WebsocketConsumer. Первый из них используется для создания отдельной комнаты для пользователя, где он находится в режиме ожидания. Второй - непосредственно для разговора двух подходящих пользователей.

В режиме разработке приложение stats, которое собирает информацию о сеансах пользователей, которое принимает celery задачи от основного приложения, передающего информацию.

Система авторизации построена на jwt токенах. Аутентификация юзера требуется при его попытке изменить информацию в своем профиле.

Frontend

Простой веб-интерфейс на React, позволяющий пользователю пользоваться приложением двумя способами:

  1. Просто указать информацию о себе и приступить к поиску. Информация сохраняется в localStorage и заполняется при перезагрузке страницы.

  2. Если пользователь не хочет терять информацию о себе, он может зарегистрироваться и заполнить профиль, всегда имея доступ к нему.

About

Анонимный чат для знакомства с единомышленниками.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published