Musikalischer Chat – Echtzeit-Chat zwischen Menschen mit ähnlichem Musikgeschmack
Beschreibung:
Musical Chat ist eine Plattform, auf der Benutzer mit Menschen kommunizieren und chatten können, die einen ähnlichen Musikgeschmack haben wie sie. Der Benutzer muss sich mit seinem Spotify-Konto anmelden, damit die Plattform auf die Songs und Genres zugreifen kann, die er hört. Ich habe einen Algorithmus erstellt, der die Lieblingsgenres der Benutzer berücksichtigt und darauf basierend Personen zuordnet. Da es mehrere unterschiedliche Genres gibt, berücksichtigt der Algorithmus anhand der String-Ähnlichkeit, wie ähnlich die Genres sind. Wenn sie übereinstimmen, können sie über Web Sockets in Echtzeit miteinander chatten.
Zeitaufwand:
1 Monat
Verwendete Technologien:
- ReactJS
- NodeJS
- WebSockets (Socket.io)
- MySQL
- HTML
- CSS
- Spotify-API
- Heroku
Frontend:
Das Frontend wird auf Netlify gehostet.
Das Front-End-Repository ist: https://github.com/machadop1407/musical-connection-client
Back-End
Dieses Repository gilt für das Back-End. Das Backend wird auf zwei verschiedenen Heroku Dynos gehostet. Eine für die Musical Chat Rest API und die andere für die Spotify-Authentifizierung.
Design:
Datenbank:
2 Tische:
- Benutzer: Speichert alles über den Benutzer, einschließlich Benutzername, Spotify-ID, Lieblingsgenre, aktuelle Übereinstimmung und aktuellen Socket-Raum.
- Nachrichten: Speichert alle Nachrichten und Informationen dazu, einschließlich der Nachricht selbst, der ID des Benutzers, der sie gesendet hat, und der ID des Benutzers, der sie empfangen hat.
Serverseitig:
Rest-API:
- Express-Server mit 3 Routen:
- Login: Login-Route, die prüft, ob der Benutzer bereits ein Konto auf der Plattform hat. Wenn nicht, fügt es eine neue Zeile in die Benutzertabelle ein und ruft alle relevanten Informationen ab.
- Matching: Matching-Route, die alle passenden Anfragen verarbeitet. Es enthält auch den oben beschriebenen Matching-Algorithmus.
- Nachrichten: Nachrichtenroute, die alle CRUD-Vorgänge im Zusammenhang mit Nachrichten abwickelt.
Spotify-Authentifizierung:
- Separater Server, der die Authorization Code Flow-Methode von Spotify nutzt.
Frontend:
Frontend vollständig in ReactJS unter Verwendung der Boilerplatte „Create-React-App“ entwickelt