Chat musical: chat en tiempo real entre personas con gustos musicales similares
Descripción:
Musical Chat es una plataforma donde los usuarios pueden conectarse y chatear con personas que tienen gustos musicales similares a ellos. El usuario debe iniciar sesión con su cuenta de Spotify, lo que le permite a la plataforma tener acceso a las canciones y géneros que escucha. Creé un algoritmo que tiene en cuenta los géneros favoritos de los usuarios y relaciona a las personas en función de ellos. Dado que hay varios géneros diferentes, el algoritmo tiene en cuenta qué tan similares son los géneros en función de la similitud de cadenas. Cuando se emparejan, pueden chatear en tiempo real entre sí mediante Web Sockets.
Tiempo tomado:
1 mes
Tecnologías utilizadas:
- reaccionarjs
- NodoJS
- WebSockets (Socket.io)
- mysql
- HTML
- CSS
- API de Spotify
- héroeku
Interfaz:
El front-end está alojado en Netlify.
El repositorio front-end es: https://github.com/machadop1407/musical-connection-client
Parte trasera
Este repositorio es para el back-end. El back-end está alojado en dos Heroku Dynos diferentes. Uno para la API Musical Chat Rest y el otro para la autenticación de Spotify.
Diseño:
Base de datos:
2 mesas:
- Usuarios: almacena todo sobre el usuario, incluido el nombre de usuario, SpotifyId, género favorito, coincidencia actual y sala de conexión actual.
- Mensajes: almacena todos los mensajes e información sobre ellos, incluido el mensaje en sí, la identificación del usuario que envió y la identificación del usuario que recibió.
Lado del servidor:
API de descanso:
- Servidor Express con 3 rutas:
- Iniciar sesión: ruta de inicio de sesión que verifica si el usuario ya tiene una cuenta en la plataforma. De lo contrario, inserta una nueva fila en la tabla Usuarios y recupera toda la información relevante.
- Coincidencia: ruta coincidente que maneja todas las solicitudes coincidentes. También incluye el algoritmo de coincidencia descrito anteriormente.
- Mensajes: ruta de mensajería que maneja todas las operaciones CRUD relacionadas con los mensajes.
Autenticación de Spotify:
- Servidor independiente que utiliza el método de flujo de código de autorización de Spotify.
Interfaz:
Front End completamente desarrollado en ReactJS utilizando la placa base create-react-app