اقرأ بالعربيةRead in English

الجوّالمنذ 2025صدر

ملعبجي

ابحث عن ملعب، وابحث عن لاعبين، احجز، والعب.

يتيح «ملعبجي» البحث عن ملاعب كرة القدم القريبة ورؤية الأوقات المتاحة وحجزها. ويساعد البحث عن الفرق والتحديات والبطولات اللاعبين على إكمال المباراة.

ملعبجي — ابحث عن ملعب، وابحث عن لاعبين، احجز، والعب.

Project detailsتفاصيل المشروع

الدور
مؤسس: المنتج والتصميم والبرمجة كاملة
السنة
منذ 2025
الحالة
صدر
بُني بـ
  • React Native
  • Expo Router
  • TypeScript
  • Supabase
  • Zustand
  • React Query
  • React Hook Form
  • Zod
  • Reanimated
  • Skia
  • Restyle
  • In-App Purchases
  • Deep Linking
  • Calendars
  • Push Notifications

ما هو

Football pitch bookings in Jordan run through phone calls and WhatsApp. You ask a ground about Thursday, gather players, then find the slot has gone; payment happens in cash on arrival. You also need nine other players.

Malabji handles both. The booking side is a live availability calendar per pitch with instant reservation. The social side lets you look for a team, challenge another one, and run or join a tournament, plus a directory of sports academies.

I founded it and built all of it: the Expo client for both stores, the Supabase backend, the store releases, and the support that follows a real product.

حجز الملاعب في الأردن يجري بالمكالمات وواتساب. تتصل بالملعب، وتسأل عمّا هو شاغر يوم الخميس، فيُعطى لك وقت قد لا يبقى متاحًا حين تجمع اللاعبين، وتدفع نقدًا عند الوصول. نصف العناء في الحجز، والنصف الآخر أنك تحتاج تسعة أشخاص آخرين.

يعالج «ملعبجي» الأمرين. جانب الحجز تقويم إتاحة مباشر لكل ملعب مع حجز فوري. والجانب الاجتماعي يتيح البحث عن فريق، وتحدّي فريق آخر، وإنشاء بطولة أو المشاركة فيها، إضافة إلى دليل للأكاديميات الرياضية.

أسّسته وبنيته بالكامل: تطبيق Expo للمتجرين، وخادم Supabase، وإصدارات المتاجر، والدعم الذي يتبع أي منتج حقيقي.

التحديات

ألا تُباع الساعة نفسها مرتين

المشكلة

أن يفتح شخصان الموعد نفسه في السابعة مساءً في اللحظة ذاتها ليس حالة نادرة مساء الخميس، بل هو الحمل الطبيعي. التحقق من الإتاحة ثم كتابة الحجز خطوتان، وأي شيء قد يقع بينهما.

ما فعلته

لا يُوثق بالإتاحة الآتية من التطبيق أبدًا. الحجز عملية واحدة على الخادم مع قيد تفرّد على (الملعب، المدى الزمني)؛ ومن يخسر السباق يحصل على حالة «حُجز للتو» نظيفة ويُحدَّث التقويم أمامه بدل عملية دفع فاشلة.

المشتريات داخل التطبيق على متجرين بقواعد مختلفة

المشكلة

تختلف Apple وGoogle في الإيصالات، وفي معنى «الاستعادة»، وفيما توافق عليه. وعملية شراء تنجح على الجهاز ولا تصل إلى الخادم أسوأ خلل ممكن في منتج مدفوع.

ما فعلته

تُحسم الصلاحية على الخادم من إيصال مُتحقَّق منه، لا من كلام التطبيق. ويعيد التطبيق التحقق عند الإقلاع وبعد كل استعادة، فتُسوّى أي عملية شراء انقطعت في منتصفها عند الفتح التالي.

تقويم وإشعارات تحترم المستخدم

المشكلة

الحجز بلا فائدة إن نسيه اللاعب. لكن طلب إذن التقويم والإشعارات عند أول فتح، قبل أن يكسب التطبيق أي ثقة، يؤدي إلى رفض الإذنين.

ما فعلته

تُطلب الأذونات في اللحظة التي تُثمر فيها. يظهر طلب التقويم بعد حجز ناجح مباشرة، لا قبله. وتُجدوَل التذكيرات محليًا لتعمل حتى لو كان الجهاز دون اتصال.

روابط عميقة تنجو من التثبيت

المشكلة

يحدث النمو حين يشارك أحدهم دعوة مباراة في محادثة جماعية. وإن فتحت النقرة صفحة المتجر وضاعت الدعوة بعد التثبيت، انكسرت الحلقة كلها.

ما فعلته

تحمل روابط الدعوة حمولتها عبر التثبيت، فيصل المستخدم الجديد إلى المباراة نفسها بعد أول فتح للتطبيق، لا إلى شاشة رئيسية عامة.

النتائج

  • Live on the App Store and Google Play.
  • Bookings, team search, challenges and tournaments in one app.
  • Built and operated solo, from schema to store listing.
  • متاح على App Store وGoogle Play.
  • الحجوزات والبحث عن فرق والتحديات والبطولات في تطبيق واحد.
  • بُني ويُشغَّل منفردًا، من المخطط حتى صفحة المتجر.

لقطات من الشاشة

  • ملعبجي — لقطة 1
  • ملعبجي — لقطة 2
  • ملعبجي — لقطة 3
  • ملعبجي — لقطة 4
  • ملعبجي — لقطة 5
  • ملعبجي — لقطة 6
التصميم التالي — الطرفيةشاهد التصاميم الـ14