Музыкальный чат - общение в реальном времени между людьми со схожими музыкальными вкусами
Описание:
Музыкальный чат — это платформа, на которой пользователи могут общаться и общаться с людьми, у которых схожие музыкальные вкусы. Пользователю необходимо войти в свою учетную запись Spotify, что позволяет платформе иметь доступ к песням и жанрам, которые они слушают. Я создал алгоритм, который учитывает любимые жанры пользователей и на его основе подбирает людей. Поскольку существует несколько разных жанров, алгоритм учитывает степень сходства жанров на основе сходства строк. При совпадении они могут общаться друг с другом в реальном времени с помощью веб-сокетов.
Затраченное время:
1 месяц
Используемые технологии:
- РеактJS
- NodeJS
- Вебсокеты (Socket.io)
- MySQL
- HTML
- CSS
- API Spotify
- Хероку
Внешний интерфейс:
Интерфейс размещен на Netlify.
Внешний репозиторий: https://github.com/machadop1407/musical-connection-client.
Задний конец
Этот репозиторий предназначен для серверной части. Серверная часть размещена на двух разных Heroku Dynos. Один для API музыкального чата, а другой для аутентификации Spotify.
Дизайн:
База данных:
2 стола:
- Пользователи: хранит всю информацию о пользователе, включая имя пользователя, SpotifyId, любимый жанр, текущее совпадение и текущую комнату сокетов.
- Сообщения: хранит все сообщения и информацию о них, включая само сообщение, идентификатор отправившего пользователя и идентификатор полученного пользователя.
Серверная сторона:
Остальные API:
- Экспресс-сервер с 3 маршрутами:
- Вход: маршрут входа, который проверяет, есть ли у пользователя учетная запись на платформе. Если нет, он вставляет новую строку в таблицу «Пользователи» и извлекает всю соответствующую информацию.
- Соответствие: соответствующий маршрут, который обрабатывает все соответствующие запросы. Он также включает в себя описанный выше алгоритм сопоставления.
- Сообщения: маршрут обмена сообщениями, который обрабатывает все операции CRUD, связанные с сообщениями.
Аутентификация Spotify:
- Отдельный сервер, использующий метод потока кода авторизации Spotify.
Внешний интерфейс:
Интерфейс полностью разработан в ReactJS с использованием шаблона create-react-app.