Chat musical - Chat en temps réel entre personnes ayant des goûts musicaux similaires
Description:
Musical Chat est une plate-forme où les utilisateurs peuvent se connecter et discuter avec des personnes qui ont les mêmes goûts musicaux qu'eux. L'utilisateur doit se connecter avec son compte Spotify, ce qui permet à la plateforme d'avoir accès aux chansons et aux genres qu'il écoute. J'ai créé un algorithme qui prend en compte les genres préférés des utilisateurs et fait correspondre les personnes en fonction de celui-ci. Puisqu’il existe plusieurs genres différents, l’algorithme prend en compte la similitude des genres en fonction de la similarité des chaînes. Lorsqu'ils sont jumelés, ils sont capables de discuter en temps réel entre eux à l'aide de Web Sockets.
Temps pris :
1 mois
Technologies utilisées :
- RéagirJS
- NoeudJS
- WebSockets (Socket.io)
- MySQL
- HTML
- CSS
- API Spotify
- Héroku
L'extrémité avant:
Le front-end est hébergé sur Netlify.
Le référentiel front-end est : https://github.com/machadop1407/musical-connection-client
Back-End
Ce référentiel est destiné au back-end. Le back-end est hébergé sur deux Heroku Dynos différents. L'un pour l'API Musical Chat Rest et l'autre pour l'authentification Spotify.
Conception:
Base de données :
2 tableaux :
- Utilisateurs : stocke tout sur l'utilisateur, y compris le nom d'utilisateur, SpotifyId, le genre préféré, la correspondance actuelle et la salle de socket actuelle.
- Messages : stocke tous les messages et informations les concernant, y compris le message lui-même, l'identifiant de l'utilisateur qui l'a envoyé et l'identifiant de l'utilisateur qui l'a reçu.
Côté serveur :
API de repos :
- Serveur express avec 3 routes :
- Connexion : itinéraire de connexion qui vérifie si l'utilisateur dispose déjà d'un compte sur la plateforme. Sinon, il insère une nouvelle ligne dans la table Utilisateurs et récupère toutes les informations pertinentes.
- Matching : route de correspondance qui gère toutes les requêtes correspondantes. Il inclut également l'algorithme de correspondance décrit ci-dessus.
- Messages : route de messagerie qui gère toutes les opérations CRUD liées aux messages.
Authentification Spotify :
- Serveur séparé qui utilise la méthode Authorization Code Flow de Spotify.
L'extrémité avant:
Front End entièrement développé dans ReactJS à l'aide de la plaque passe-partout create-react-app