Musical Chat - แชทแบบเรียลไทม์ระหว่างคนที่มีรสนิยมทางดนตรีเหมือนกัน
คำอธิบาย:
Musical Chat เป็นแพลตฟอร์มที่ผู้ใช้สามารถเชื่อมต่อและสนทนากับผู้ที่มีรสนิยมทางดนตรีเหมือนกันได้ ผู้ใช้จำเป็นต้องเข้าสู่ระบบด้วยบัญชี Spotify ซึ่งช่วยให้แพลตฟอร์มสามารถเข้าถึงเพลงและแนวเพลงที่พวกเขาฟังได้ ฉันสร้างอัลกอริทึมที่คำนึงถึงแนวเพลงโปรดจากผู้ใช้และจับคู่ผู้คนตามนั้น เนื่องจากมีหลายประเภทที่แตกต่างกัน อัลกอริธึมจะพิจารณาว่าประเภทนั้นมีความคล้ายคลึงกันมากน้อยเพียงใดโดยพิจารณาจากความคล้ายคลึงกันของสตริง เมื่อจับคู่กัน พวกเขาสามารถสนทนากันแบบเรียลไทม์โดยใช้ Web Sockets
เวลาที่ถ่าย:
1 เดือน
เทคโนโลยีที่ใช้:
- ตอบโต้JS
- โหนดJS
- เว็บซ็อกเก็ต (Socket.io)
- MySQL
- HTML
- ซีเอสเอส
- Spotify API
- เฮโรกุ
ส่วนหน้า:
ส่วนหน้าโฮสต์บน Netlify
พื้นที่เก็บข้อมูลส่วนหน้าคือ: https://github.com/machadop1407/musical-connection-client
แบ็คเอนด์
พื้นที่เก็บข้อมูลนี้หากสำหรับส่วนหลัง แบ็กเอนด์โฮสต์บน Heroku Dynos สองตัวที่แตกต่างกัน อันหนึ่งสำหรับ Musical Chat Rest API และอีกอันสำหรับ Spotify Authentication
ออกแบบ:
ฐานข้อมูล:
2 โต๊ะ:
- ผู้ใช้: จัดเก็บทุกอย่างเกี่ยวกับผู้ใช้ รวมถึงชื่อผู้ใช้, SpotifyId, ประเภทที่ชื่นชอบ, currentmatch และห้องซ็อกเก็ตปัจจุบัน
- ข้อความ: จัดเก็บข้อความและข้อมูลเกี่ยวกับข้อความทั้งหมด รวมถึงตัวข้อความ รหัสของผู้ใช้ที่ส่ง และรหัสของผู้ใช้ที่ได้รับ
ฝั่งเซิร์ฟเวอร์:
API ที่เหลือ:
- เซิร์ฟเวอร์ Express มี 3 เส้นทาง:
- เข้าสู่ระบบ: เส้นทางเข้าสู่ระบบที่จะตรวจสอบว่าผู้ใช้มีบัญชีในแพลตฟอร์มอยู่แล้วหรือไม่ ถ้าไม่เช่นนั้น ระบบจะแทรกแถวใหม่ในตาราง Users และดึงข้อมูลที่เกี่ยวข้องทั้งหมด
- การจับคู่: เส้นทางการจับคู่ที่จัดการคำขอที่ตรงกันทั้งหมด นอกจากนี้ยังมีอัลกอริธึมการจับคู่ที่อธิบายไว้ข้างต้นด้วย
- ข้อความ: เส้นทางการส่งข้อความที่จัดการการดำเนินการ CRUD ทั้งหมดที่เกี่ยวข้องกับข้อความ
การรับรองความถูกต้อง Spotify:
- แยกเซิร์ฟเวอร์ที่ใช้วิธี Authorization Code Flow ของ Spotify
ส่วนหน้า:
ส่วนหน้าได้รับการพัฒนาอย่างเต็มที่ใน ReactJS โดยใช้แผ่นหม้อไอน้ำ create-react-app