Bate-papo musical - bate-papo em tempo real entre pessoas com gostos musicais semelhantes
Descrição:
Musical Chat é uma plataforma onde os usuários podem se conectar e conversar com pessoas que têm gosto musical semelhante ao deles. O usuário precisa fazer login com sua conta do Spotify, o que permite que a plataforma tenha acesso às músicas e gêneros que ouve. Criei um algoritmo que leva em consideração os gêneros favoritos dos usuários e combina as pessoas com base nele. Como existem vários gêneros diferentes, o algoritmo leva em consideração o quão semelhantes os gêneros são com base na semelhança das cordas. Quando combinados, eles podem conversar em tempo real usando Web Sockets.
Tempo gasto:
1 mês
Tecnologias utilizadas:
- React JS
- NodeJS
- WebSockets (Socket.io)
- MySQL
- HTML
- CSS
- API do Spotify
- Heroku
Front-end:
O front-end está hospedado no Netlify.
O repositório front-end é: https://github.com/machadop1407/musical-connection-client
Back-end
Este repositório é para back-end. O back-end está hospedado em dois Heroku Dynos diferentes. Um para a API Musical Chat Rest e outro para a autenticação do Spotify.
Projeto:
Banco de dados:
2 mesas:
- Usuários: armazena tudo sobre o usuário, incluindo nome de usuário, spotifyId, gênero favorito, correspondência atual e sala de soquete atual.
- Mensagens: armazena todas as mensagens e informações sobre elas, incluindo a própria mensagem, o ID do usuário que enviou e o ID do usuário que recebeu.
Lado do servidor:
API de descanso:
- Servidor expresso com 3 rotas:
- Login: rota de login que verifica se o usuário já possui conta na plataforma. Caso contrário, ele insere uma nova linha na tabela Usuários e busca todas as informações relevantes.
- Correspondência: rota correspondente que trata todas as solicitações correspondentes. Também inclui o algoritmo de correspondência descrito acima.
- Mensagens: rota de mensagens que trata de todas as operações CRUD relacionadas às mensagens.
Autenticação Spotify:
- Servidor separado que utiliza o método Authorization Code Flow do Spotify.
Front-end:
Front End totalmente desenvolvido em ReactJS usando o padrão create-react-app