الدردشة الموسيقية - الدردشة في الوقت الحقيقي بين الأشخاص الذين لديهم أذواق مماثلة في الموسيقى
وصف:
الدردشة الموسيقية عبارة عن منصة حيث يمكن للمستخدمين التواصل والدردشة مع الأشخاص الذين لديهم نفس الذوق في الموسيقى مثلهم. يحتاج المستخدم إلى تسجيل الدخول باستخدام حساب Spotify الخاص به، والذي يسمح للمنصة بالوصول إلى الأغاني والأنواع التي يستمعون إليها. لقد قمت بإنشاء خوارزمية تأخذ في الاعتبار الأنواع المفضلة لدى المستخدمين وتطابق الأشخاص بناءً عليها. نظرًا لوجود العديد من الأنواع المختلفة، تأخذ الخوارزمية في الاعتبار مدى تشابه الأنواع بناءً على تشابه السلسلة. عند المطابقة، يكون بإمكانهم الدردشة في الوقت الفعلي مع بعضهم البعض باستخدام Web Switches.
الوقت المستغرق:
1 شهر
التقنيات المستخدمة:
- ReactJS
- NodeJS
- ويب سوكيتس (Socket.io)
- ماي إس كيو إل
- HTML
- CSS
- سبوتيفي API
- هيروكو
الواجهة الأمامية:
تتم استضافة الواجهة الأمامية على Netlify.
مستودع الواجهة الأمامية هو: https://github.com/machadop1407/musical-connection-client
النهاية الخلفية
هذا المستودع إذا كان للنهاية الخلفية. تتم استضافة الواجهة الخلفية على جهازين مختلفين من Heroku Dynos. أحدهما لواجهة برمجة تطبيقات Musical Chat Rest والآخر لمصادقة Spotify.
تصميم:
قاعدة البيانات:
2 طاولات:
- المستخدمون: يخزن كل شيء يتعلق بالمستخدم بما في ذلك اسم المستخدم وspotifyId والنوع المفضل والمطابقة الحالية وغرفة المقبس الحالية.
- الرسائل: يقوم بتخزين جميع الرسائل والمعلومات المتعلقة بها بما في ذلك الرسالة نفسها، وهوية المستخدم الذي أرسلها، وهوية المستخدم الذي استلمها.
جانب الخادم:
واجهة برمجة تطبيقات الراحة:
- خادم سريع مع 3 طرق:
- تسجيل الدخول: مسار تسجيل الدخول الذي يتحقق مما إذا كان لدى المستخدم حساب بالفعل في النظام الأساسي. إذا لم يكن الأمر كذلك، فإنه يقوم بإدراج صف جديد في جدول المستخدمين ويجلب جميع المعلومات ذات الصلة.
- المطابقة: مسار المطابقة الذي يتعامل مع جميع الطلبات المطابقة. ويتضمن أيضًا خوارزمية المطابقة الموضحة أعلاه.
- الرسائل: مسار الرسائل الذي يتعامل مع جميع عمليات CRUD المتعلقة بالرسائل.
مصادقة سبوتيفي:
- خادم منفصل يستخدم طريقة تدفق رمز التفويض الخاص بـ Spotify.
الواجهة الأمامية:
تم تطوير الواجهة الأمامية بالكامل في ReactJS باستخدام لوحة إنشاء التطبيق التفاعلي