Uber Clone
هو نموذج اولي لتطبيق موبايل لطلب سيارات الأجرة (Ride-hailing)، يحاكي أسلوب وتجربة "أوبر". تم بناء التطبيق بهندسة برمجية متطورة تضمن الأداء العالي والتتبع اللحظي للرحلات، مما يجعله جاهزاً لبيئات العمل الحقيقية (Production-Ready).
1. الواجهة الأمامية (Frontend Stack)
Framework: تم بناء التطبيق باستخدام React Native (Expo SDK 54) يعمل على أنظمة Android و iOS.
Navigation: استخدام أحدث إصدار من Expo Router 6 لإدارة التنقل والمسارات بشكل سلس ومنظم.
Styling: تصميم واجهات مستخدم عصرية ومتجاوبة بالاعتماد على NativeWind (TailwindCSS).
State Management: الاعتماد علىZustand لإدارة الحالة العامة للتطبيق (Global State)، إلى جانب Apollo Client 4 لإدارة البيانات القادمة من السيرفر.
Maps & Geocoding: دمج خرائط تفاعلية باستخدام react-native-maps مع ميزة الإكمال التلقائي للعناوين عبر واجهة OpenStreetMap Nominatim API.
2. بنية الـ Backend (Backend Architecture)
Server-side Framework: باستخدام NestJS .
API Architecture: استخدام GraphQL (Code-first approach) مع Apollo Server 5
Database: إدارة البيانات والعلاقات المعقدة عبر قاعدة بيانات PostgreSQL بالاعتماد على TypeORM .
Caching & PubSub: باستعمال Redis لزيادة سرعة الاستجابة، وإدارة الجلسات، عبر الـ PubSub.
3. الأمان وتخزين الملفات (Security & Storage)
Authentication: الاعتماد على Redis لإدارة الـ Refresh Tokens وتفعيل القائمة السوداء (Blacklist) لإبطال الجلسات.
Role-Based Access: نظام صلاحيات صارم يفرق بين العميل (Client) والسائق (Driver) لضمان أمان البيانات.
Cloud Storage: رفع وتخزين صور المركبات السحابي على منصة Cloudinary باستخدام تقنيات graphql-upload.
4. المميزات البرمجية (Core Functionalities)
التتبع اللحظي (Real-time Tracking): تتبع مسار الرحلة وتحديث حالتها فورياً (Requested, Accepted, In Progress, Completed) باستخدام GraphQL Subscriptions و WebSockets.
إدارة الرحلات (Ride Management): تمكين العميل من طلب الرحلات، تحديد مواقع الانطلاق والوصول، وحساب التكلفة. وتمكين السائق من قبول أو رفض الرحلات.
إدارة المركبات (Vehicle Management): واجهة مخصصة للسائقين لإضافة بيانات سياراتهم مع إمكانية التقاط الصور من الكاميرا أو المعرض ورفعها مباشرة.
نظام الإشعارات (Email System): استرجاع كلمة المرور عبر روابط آمنة تُرسل عبر البريد الإلكتروني باستخدام Nodemailer.
الأمان والحماية: تطبيق سياسات Rate Limiting لحماية السيرفر من الضغط، والتحقق الصارم من مدخلات المستخدمين (Validation & Sanitization).