Obrolan Musikal - Obrolan Waktu Nyata Antar Orang dengan Selera Musik yang Mirip
Keterangan:
Obrolan Musikal adalah platform tempat pengguna dapat terhubung dan mengobrol dengan orang-orang yang memiliki selera musik yang sama dengan mereka. Pengguna perlu masuk dengan akun Spotify mereka, yang memungkinkan platform memiliki akses ke lagu dan genre yang mereka dengarkan. Saya membuat algoritme yang memperhitungkan genre favorit pengguna dan mencocokkan orang berdasarkan genre tersebut. Karena ada beberapa genre yang berbeda, algoritme memperhitungkan seberapa mirip genre tersebut berdasarkan kesamaan string. Ketika dicocokkan, mereka dapat mengobrol secara real time satu sama lain menggunakan Web Sockets.
Waktu yang Dibutuhkan:
1 Bulan
Teknologi yang Digunakan:
- ReactJS
- NodeJS
- WebSockets (Socket.io)
- MySQL
- HTML
- CSS
- API Spotify
- Pahlawanku
Ujung Depan:
Front-end dihosting di Netlify.
Repositori front-end adalah: https://github.com/machadop1407/musical-connection-client
Ujung Belakang
Repositori ini untuk back-end. Back-end dihosting di dua Heroku Dynos yang berbeda. Satu untuk Musical Chat Rest API, dan satu lagi untuk Otentikasi Spotify.
Desain:
Basis Data:
2 tabel:
- Pengguna: Menyimpan segala sesuatu tentang pengguna termasuk nama pengguna, spotifyId, genre favorit, kecocokan saat ini, dan ruang soket saat ini.
- Pesan: Menyimpan semua pesan dan informasi tentangnya termasuk pesan itu sendiri, id pengguna yang mengirim, dan id pengguna yang diterima.
Sisi Server:
API Istirahat:
- Server ekspres dengan 3 rute:
- Login: rute login yang memeriksa apakah pengguna sudah memiliki akun di platform. Jika tidak, ia akan menyisipkan baris baru di tabel Pengguna dan mengambil semua informasi yang relevan.
- Pencocokan: pencocokan rute yang menangani semua permintaan pencocokan. Ini juga mencakup algoritma pencocokan yang dijelaskan di atas.
- Pesan: rute pesan yang menangani semua operasi CRUD yang terkait dengan pesan.
Otentikasi Spotify:
- Server terpisah yang menggunakan metode Aliran Kode Otorisasi Spotify.
Bagian Depan:
Front End dikembangkan sepenuhnya di ReactJS menggunakan pelat boiler create-react-app