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

🧭 ما هو التطبيق/الموقع بالضبط؟

منصة نقل ركاب متكاملة (مثل أوبر وكريم) خاصة بمدينة أديس أبابا، إثيوبيا.

يتكون من ثلاثة تطبيقات تعمل معاً:

تطبيق الراكب (passenger_app) – للأشخاص الذين يريدون طلب سيارة.

تطبيق السائق (driver_app) – للسائقين الذين يريدون توصيل الركاب وكسب المال.

لوحة تحكم إدارية (admin_app) – للمسؤولين لإدارة كل شيء (سائقين، رحلات، أسعار، جوائز، إلخ).

وتعمل أيضاً كـ نظام كول سنتر و مساعد صوتي بالذكاء الاصطناعي.

التطبيق مبني بالكامل باستخدام Flutter و Supabase، وجميع الأكواد جاهزة (تم إنشاؤها بواسطة Claude Code) وتنتظر فقط التنفيذ النهائي والنشر.

🧑‍🤝‍🧑 الجمهور المستهدف

الركاب في أديس أبابا: أي شخص يريد سيارة بأمان وسعر عادل.

السائقون الذين يمتلكون سيارة ويريدون العمل مرنين (دوام كامل أو جزئي).

أصحاب أساطيل السيارات (Fleet Owners): أشخاص يملكون عدة سيارات ويعينون سائقين للعمل عليها، ويريدون متابعة أدائهم وأرباحهم.

إدارة المنصة: مسؤولون يديرون العمليات وخدمة العملاء والكول سنتر.

🎯 الهدف الرئيسي من المشروع

تشغيل منصة نقل ركاب حقيقية في أديس أبابا من خلال:

تطبيقات جوال (Android و iOS) جاهزة للتحميل من المتاجر.

لوحة تحكم ويب للمشرفين.

نظام متكامل للاشتراكات، المدفوعات، المكافآت، التتبع، والدعم.

✅ المميزات المطلوبة (ما يجب أن يشتغل 100%)

أ. تطبيق الراكب (passenger_app)

تسجيل الدخول – باستخدام رقم الهاتف فقط (OTP عبر SMS).

طلب رحلة – تحديد الوجهة على الخريطة، اختيار نوع السيارة (سيدان، SUV، ميني باص، VIP)، ورؤية السعر قبل الطلب.

تتبع السائق – خريطة حية تظهر موقع السائق ووقت وصوله.

دفع متعدد – نقدي، عبر Chapa، Telebirr، أو من رصيد المحفظة.

تقييم السائق – بعد الرحلة (نجوم وتعليق).

نقاط الولاء – يكسب نقاط عن كل رحلة، ويستبدلها بخصومات أو رحلات مجانية.

إحالة الأصدقاء – كود خاص، وعند دعوة صديق يسجل ويركب، يكسب الطرفان مكافآت.

سجل الرحلات – عرض كل الرحلات السابقة وتفاصيلها وإيصالاتها.

عناوين محفوظة – حفظ "البيت" و"العمل" لطلب سريع.

دعم فني – دردشة مباشرة، واتساب، أو فتح تذكرة.

ب. تطبيق السائق (driver_app)

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

الموافقة من الإدارة – بعد التسجيل، ينتظر موافقة المسؤول.

اشتراكات مرنة – خطط (تجريبي، يومي، أسبوعي، شهري) يدفعها السائق للمنصة (بدون عمولة على الرحلات). يختار الخطة ويدفع عبر Chapa، Telebirr، أو تحويل بنكي.

توصيل الركاب – يتلقى طلبات من الركاب (نافذة منبثقة)، يقبلها أو يرفضها أو يقدم عرضاً سعرياً.

تسعير ذكي (Surge Pricing) – في أوقات الذروة، يظهر تحذير للراكب ويزيد السعر تلقائياً.

تفضيل الوجهة – يحدد السائق وجهة مفضلة (مثلاً العودة للبيت)، ويستقبل رحلات في نفس الاتجاه فقط.

ركوب سريع من الشارع (Street Hail) – يدخل السائق رقم الراكب يدوياً، وتبدأ الرحلة، وتُرسل رسالة SMS للراكب بالأمهرية، ويحسب السعر حسب المسافة.

لوحة المتصدرين (Leaderboard) – ترتيب أسبوعي/شهري للسائقين بناءً على عدد الرحلات والتقييمات، مع جوائز مالية.

نقاط وخبرة (Gamification) – يكسب نقاط XP و Reward Points، يرتقي بمستويات (برونزي، فضي، ذهبي...)، ويفتح صناديق جوائز.

إحالة سائقين جدد – لكل سائق كود إحالة، وعند تسجيل سائق جديد وإتمام رحلات، يكسب الاثنان مكافآت.

إدارة الأسطول (Fleet Owner) – إذا كان السائق مالك أسطول، لديه تبويب خاص لإضافة سيارات وسائقين، ومتابعة أرباحه.

ج. لوحة التحكم الإدارية (admin_app)

إحصائيات رئيسية – عدد الرحلات، السائقين النشطين، الإيرادات.

إدارة السائقين – قائمة بكل السائقين، قبول طلبات التسجيل، تعليق حساب، عرض مستنداتهم.

إدارة الرحلات – مشاهدة كل الرحلات، تفاصيلها، وإمكانية استرداد المبلغ.

إدارة الاشتراكات – تعيين أسعار الخطط، مراجعة التحويلات البنكية وتأكيدها.

إعدادات النظام – تعديل أسعار الرحلات (لكل كيلومتر، لكل دقيقة)، إعداد نقاط الولاء، جوائز المسابقات.

نظام الكول سنتر – وكيل يحدد موقع الراكب على الخريطة، وينشئ رحلة، ويختار أقرب سائق.

المساعد الصوتي (AI Voice) – نظام هاتفي آلي يتحدث مع الراكب، يستمع إلى وجهته بالصوت، وينشئ رحلة.

تقارير مالية – إيرادات الاشتراكات، الغرامات، المدفوعات.

إدارة المكافآت والإنجازات – إنشاء إنجازات مخفية، صناديق جوائز، تحديد قواعد النقاط.

📄 الصفحات المطلوبة (باختصار)

passenger_app:

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

driver_app:

شاشة تسجيل دخول، تسجيل سائق جديد (4 خطوات)، انتظار موافقة، اختيار اشتراك، دفع، شاشة رئيسية (خريطة + زر اتصال/انقطاع)، نافذة طلب رحلة، قبول/عرض/رفض، توجيه إلى الراكب، رحلة قيد التنفيذ، إتمام رحلة، أرباح يومية، لوحة متصدرين، تفضيل وجهة، ركوب سريع، إدارة أسطول (للمالك).

admin_app:

تسجيل دخول، لوحة تحكم، قائمة سائقين، تفاصيل سائق، قائمة رحلات، تفاصيل رحلة، إدارة اشتراكات، تحويلات بنكية، إعدادات التسعير، إعدادات المكافآت، الكول سنتر، المساعد الصوتي، تقارير.

🛠️ الأمور التقنية (ما يحتاج المبرمج يعرفه)

قاعدة البيانات: Supabase (PostgreSQL). الجداول جاهزة (18 جدولاً) مع سياسات الأمان (RLS).

الخوادم الخارجية: يجب تفعيل:

Google Maps API (خرائط، بحث عناوين، توجيه).

Firebase Cloud Messaging (لإشعارات الدفع).

Chapa API و Telebirr API (بوابات دفع إثيوبية).

Africa's Talking أو أي مزود SMS محلي (لإرسال رسائل للأمهرية).

AWS S3 (للنسخ الاحتياطي اليومي) – اختياري لكن موصى به.

الترجمات: التطبيق يدعم 6 لغات (عربية، أمهرية، إنجليزية، أورومو، تيغرينيا، صومالية). الملفات موجودة بالفعل.

دون الحاجة للإنترنت: لا، التطبيق يحتاج اتصال دائم (ما عدا تخزين بعض البيانات مؤقتاً).

الأمان: تم تنفيذ Row Level Security (RLS) في Supabase، والمصادقة عبر OTP للهاتف. يجب إخفاء المفاتيح السرية في .env وعدم رفعها إلى GitHub.

🔒 متطلبات الأمان والحماية

استخدام Obfuscation عند بناء الإصدار النهائي (Flutter build --obfuscate).

إخفاء جميع مفاتيح API (Google، Chapa، Telebirr، SMS) في متغيرات البيئة (Supabase Secrets و .env).

تفعيل تأكيد رقم الهاتف (OTP) لكل من الراكب والسائق عند التسجيل.

عدم تخزين أي معلومات حساسة (مثل أرقام البطاقات الائتمانية) على الجهاز.

منع الوصول غير المصرح به إلى لوحة التحكم عبر 2FA للمسؤولين.

🚀 الرفع والنشر (Deployment)

الاستضافة:

Supabase (يوجد مشروع Supabase جاهز – سيتم إنشاؤه أو استخدام حساب المبرمج مؤقتاً).

تطبيق الويب (admin_app) يمكن رفعه على Vercel أو Netlify مجاناً.

النطاق (Domain): لا يوجد حالياً، يمكن استخدام الروابط المجانية المقدمة من Vercel أو Netlify.

المتاجر:

Google Play Store: رفع passenger_app و driver_app (AAB) في مسار Closed Testing أولاً.

Apple App Store: رفع passenger_app و driver_app عبر TestFlight (يتطلب حساب مطور Apple).

النسخة التجريبية: يجب أن يقدم المبرمج رابط اختبار (APK للموبايل و link للويب) قبل التسليم النهائي.

🧪 الاختبار والتجربة

المبرمج ملزم باختبار كل الميزات المذكورة أعلاه على أجهزة حقيقية (أو محاكيات) وتصحيح الأخطاء.

بعد الانتهاء، يجب تقديم تقرير بالأخطاء التي تم حلها.

يجب تقديم رابط معاينة (APK لتطبيقات الموبايل + رابط لـ admin_app) يمكنني فتحه ومعاينته بنفسي.

📁 الملفات والكود

جميع الأكواد موجودة في مستودع GitHub على هذا الرابط:

https://github.com/aggamo...

(سيتم إعطاؤك صلاحية الوصول إليه).

الكود تم إنشاؤه بواسطة Claude AI، وهو كامل وجاهز للتنفيذ، لكن قد يحتاج بعض التعديلات البسيطة التي وردت في مراجعة PR (مثل إصلاح race condition، إضافة distance_km، إلخ).

🛠️ الصيانة والدعم بعد التسليم

فترة الضمان: 15 يوماً بعد تسليم المشروع – لأي خطأ (bug) يظهر، يتم إصلاحه مجاناً.

تكلفة إضافة ميزات جديدة: يتم الاتفاق عليها حسب الوقت المطلوب.

التدريب: أطلب منك مقطع فيديو قصير أو شرح كتابي يوضح لي:

كيف أدخل إلى لوحة التحكم.

كيف أوافق على سائق جديد.

كيف أغير أسعار الاشتراكات.

كيف أشرف على الرحلات والمدفوعات.

(لأني غير تقني، الشرح يجب أن يكون بالعربي البسيط مع لقطات شاشة).

📋 قائمة المهام التي سيقوم بها المبرمج (ملخص)

قراءة الكود الموجود على GitHub وفهمه.

إنشاء مشروع Supabase جديد (أو استخدام الموجود) وتطبيق جميع ملفات الترحيل (migrations).

تفعيل Edge Functions وإضافة المفاتيح السرية (Google Maps، Chapa، Telebirr، SMS، FCM).

إصلاح المشاكل الحرجة المذكورة في مراجعة PR (race condition، أعمدة rides، streak_configs، إلخ).

إعداد Firebase Messaging لكل من passenger_app و driver_app.

إعداد SMS Gateway (Africa's Talking أو غيره) لضمان إرسال رسائل الأمهرية.

بناء نسخ نهائية (Release) من التطبيقات الثلاثة.

رفع passenger_app و driver_app إلى متاجر Google و Apple (على الأقل في وضع اختبار Closed/Internal).

رفع admin_app على الإنترنت (Vercel/Netlify) وتوفير رابط دائم.

إجراء اختبار شامل لكل الميزات (سير عمل كامل من تسجيل المستخدم إلى إتمام الرحلة).

تقديم تقرير نهائي بالأخطاء التي تم حلها، ورابط للاختبار، وتوثيق بسيط للإدارة.

📌 ملاحظة أخيرة للمبرمج

أنا عميل غير تقني، ولا أفهم في البرمجة. كل ما أريده هو مشروع يعمل 100% حسب الوصف أعلاه. يرجى التواصل معي باللغة العربية الواضحة، وشرح أي تحديات تقنية بشكل مبسط. شكراً لك.

الرجاء تأكيد استلام هذا الوصف وإرسال عرضك (السعر والزمن)


صاحب المشروع
Ahmed A.
تاريخ التسجيل
معدل التوظيف
المشاريع المفتوحة 1
مشاريع قيد التنفيذ 0
التواصلات الجارية 5

تقدم للمشروع

العروض المقدمة

مرحبا أستاذ أحمد، اطلعت على وصف المشروع بالكامل وفهمت كل التفاصيل التقنية والوظيفية الخاصة بالمنصة، وأؤكد لك أنني قادرة على تنفيذ المشروع وتشغيله بشكل كامل وجاه...

Khaled M.

السلام عليكم، شفت الكود على GitHub وأنا مرتاح مع التقنيات المستخدمة. أ. أحمد، أتمنى تكون بخير. أنا خالد، مطور Flutter بخبرة في التقنية التي في المشروع وبالضبط ن...

السلام عليكم استاذ احمد ، أنا Flutter Developer وعندي خبرة أكثر من 4 سنوات في تطوير تطبيقات الموبايل والأنظمة المتكاملة باستخدام Flutter، بالإضافة إلى خبرة في ا...

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

أنا مبرمج Full Stack بخبرة 5 سنوات، ولدي خبرة قوية في تطوير تطبيقات النقل المشابهة لأوبر وكريم باستخدام Flutter وSupabase مع إدارة قواعد بيانات PostgreSQL وRLS،...

السلام عليكم، تمت مراجعة الوصف بالكامل، وأؤكد استلام جميع المتطلبات الخاصة بمنصة النقل المتكاملة (Passenger App - Driver App - Admin Panel). أنا سعيد هاشم، Seni...

السلام عليكم، اطلعنا على تفاصيل المشروع بعناية، ونرى أنه مشروع متكامل وطموح يحتاج إلى خبرة في Flutter وSupabase والأنظمة السحابية والتكاملات الخارجية، وهو ضمن ن...

قبولك لهذا العرض يعتبر اتفاقاً بينك وبين المستقل وسيبقى موقع مستقل وسيطاً بينكما حتى تسليم المشروع. لن تتمكن من تغيير العرض أو إلغائه لاحقًا لذلك تأكد من اختيارك للعرض المناسب باتّباع النصائح التالية:

  • راجع صفحة حساب المستقل الذي اخترته واطّلع على أعماله السابقة
  • إن كانت هناك تفاصيل غير مذكورة في المشروع، فتواصل مع المستقل وأخبره بها أولًا
  • بإمكانك أن تتواصل مع المستقل وتسأله عن أية أمور تحتاجها
  • احرص دائمًا على إبقاء التواصل مع المستقل داخل الموقع قدر الإمكان وذلك لضمان حقوقك
  • لا تتردد من التواصل معنا ان احتجت لأي مساعدة، نحن نحب مساعدتك!

المستقل غير متاح لاستلام مشاريع، يمكنك ارسال تنبيه له لقبول العرض وإعادة المحاولة بعد بضعة ساعات، أو اختيار عرضاً من مستقل آخر.