"Match Mate" — تطبيق متكامل لإدارة وحجز مباريات كرة القدم وتبادل المنتجات والميديا بين المستخدمين.
منصة تسمح للمستخدمين بالبحث عن ملاعب قريبة باستخدام Google Places، اختيار الملعب، عرض الأوقات المتاحة للمباريات، حجز مباراة، وجمع اللاعبين في فريق واحد مع نظام جدولة ذكي لإدارة الأوقات.
أهم المميزات:
بحث الملاعب: عرض أماكن الملاعب من خرائط Google Places واختيار الملعب بسهولة.
حجز المباريات: رؤية الأوقات المتاحة وحجز شورت للمباراة مع تتبع الحالة.
تجميع اللاعبين: دعوة وجمع اللاعبين لإنشاء فريق وإدارة الحضور.
نظام تنظيم الأوقات: جدولة ذكية للمباريات، إشعارات مواعيد متزامنة، وإدارة تضارب المواعيد.
سوق اجتماعي داخل التطبيق: يمكن للمستخدم إضافة منتجات وميديا خاصة (صور/فيديوهات)، والآخرون يشترون ويتواصلون مباشرة.
سلة وطلبات شراء: دعم سلة مشتريات، طلبات بيع/شراء، وقوائم انتظار/قوائم مفضلة (Wishlist).
إشعارات وتواصل: إشعارات فورية (Push / داخلية)، وإرسال OTP عبر WhatsApp/SMS عند الحاجة للتوثيق.
إدارة وتنظيم: لوحة ودور إداري (Admin)، إدارة مباريات وسجل المباريات، وسجل الإشعارات.
التقنيات المستخدمة :
خادم وAPI: Node.js, Express (ملف البداية: index.js, تنظيم الـ routes داخل Modules).
قاعدة بيانات: MongoDB مع mongoose (موديلات تحت models).
التحقق والأمان: jsonwebtoken، bcrypt للمصادقة وحماية كلمات المرور، وjoi للتحقق من صحة البيانات.
التخزين والملفات: multer + multer-storage-cloudinary للتعامل مع رفع الصور والفيديوهات على Cloudinary (cloudnairy.js).
الإشعارات والRealtime: firebase-admin (ملف firebase.js) لخدمات الدفع والإشعارات.
الرسائل والتوثيق: twilio وملفات مثل sendWhatsappOtp.js لإرسال OTP عبر واتساب/SMS.
جدولة: node-cron وملف matchScheduler.js لجدولة المهام والمؤقتات.
مراسلات بريدية: nodemailer لإرسال الإيميلات (مثل دعوات، تأكيدات).
أدوات مساعدة: axios, moment, uuid، وملفات مساعدة مثل notificationService.js وsendNotification.js.
هيكل المشروع: فصل الـ Modules (Auth, Match, Product, Cart, إلخ) داخل Modules لتقسيم المسؤوليات.
مهمه المشروع:
يحل مشكلة تنسيق مباريات الأصدقاء وإدارة الأوقات بشكل عملي ومؤتمت.
يجمع بين سوق محلي داخل المنصة وميزة مشاركة الميديا، ما يعزز التفاعل بين المستخدمين.
يعتمد على تكامل مع خدمات موثوقة (Google Places, Firebase, Cloudinary, Twilio) للحصول على تجربة مستخدم قوية وسريعة.
بنية RESTful واضحة مع فصل المسؤوليات (Modules).
استخدام خدمات خارجية لتقليل التعقيد الداخلي (Cloudinary، Firebase، Twilio).
قابلية للتوسع: موديلات mongoose وواجهات منظمة تسهل إضافة خصائص مستقبلية مثل تقيم الملاعب أو دفع عبر الإنترنت.