الميزات الرئيسية المتكاملة
📍 تتبع الموقع في الوقت الفعلي
· عرض الموقع الحي للمستخدم على خريطة Google Maps.
· البحث عن اي مكان على الخريطة باستخدام الإكمال التلقائي لـ Google Places.
· تحديد وجهة الرحلة وعرض الاتجاهات.
💳 إجراء المدفوعات (متكاملة مع Stripe)
· دفع تكلفة الرحلة باستخدام نظام Stripe الشهير.
· دعم وسائل دفع متعددة مثل البطاقات المصرفية.
🔄 ميزات مستخدم كاملة
· تدفق تسجيل دخول امن عبر البريد الإلكتروني (مع التحقق) او باستخدام حساب Google (oAuth).
· شاشة رئيسية تفاعلية تعرض الرحلات الحديثة.
· اختيار سيارة وسائق متاح بالقرب من موقعك من على الخريطة.
· تأكيد الرحلة مع عرض كامل التفاصيل (الوقت، السعر، معلومات السائق).
· إنشاء الرحلة رسميًا بعد تأكيد الدفع الناجح.
· صفحة ملف شخصي وسجل للاطلاع على كل الرحلات السابقة.
🛠️ التقنيات المستخدمة
لجعل كل هذا يعمل، يستخدم المشروع مجموعة تقنيات حديثة:
· واجهة أمامية: React Native مع Expo لبناء تطبيق يعمل على Android وiOS.
· الخلفية والقاعدة: PostgreSQL (قاعدة بيانات علائقية قوية).
· الخرائط والموقع: Google Maps Platform.
· المدفوعات: Stripe.
· المصادقة: Clerk لإدارة المستخدمين.
· التنسيق: Tailwind CSS.
🚀 كيف تبدأ في تجربته أو تعلمه؟
المشروع مصمم للتعلم خطوة بخطوة.
المستودع هو جزء من دليل تعليمي فيديو مفصل على قناة YouTube JavaScript Mastery.
للتشغيل محليًا، ستحتاج إلى:
1. استنساخ المستودع: git clone https://github.com/JavaScript-Mastery-Pro/uber.git
2. تثبيت المكتبات: npm install
3. الحصول على مفاتيح واجهات برمجة التطبيقات (API Keys) وإعدادها في ملف .
env، وهذا هو الجزء الأكثر أهمية ويتطلب حسابات في:
· Clerk (للمصادقة)
· Google Cloud Platform (للخرائط والأماكن)
· Stripe (للمدفوعات)
· NeonDB (لـ PostgreSQL السحابي)
4. تشغيل المشروع عبر Expo.
💡 نقطة مهمة جداً
هذا المشروع هو أولاً وأخيراً نموذج تعليمي.
الغرض منه هو تعليم المطورين كيفية بناء تطبيقات معقدة، وليس تشغيل خدمة نقل حقيقية.
التشغيل الكامل يتطلب تكوين العديد من الخدمات المدفوعة (مثل Google Maps وStripe) وقد يتضمن تكاليف.
https://github.com/adrianhajdin/uber/