خطة تنفيذ FIENDA
Backend
منصة ذكية لربط العملاء بمقدمي الخدمات المحليين. الهدف مش مجرد عرض قائمة بالخدمات، لكن إدارة رحلة العميل بالكامل — من وصف احتياجه وحتى تنفيذ الخدمة وتقييمها.
رحلة الخدمة داخل النظام
كل خدمة بتمر بـ 7 مراحل أساسية من لحظة وصف العميل لاحتياجه لحد تقييم الخدمة بعد تنفيذها.
Need
العميل يشرح احتياجه ويوصفه بالتفصيل
Understand
النظام يفهم التفاصيل ويستخرج البيانات المهمة
Match
النظام يحدد مقدمي الخدمات المناسبين
Connect
العميل ومقدم الخدمة يتواصلان عبر المنصة
Manage
متابعة حالة الطلب وتنفيذه
Complete
تأكيد اكتمال الخدمة
Rate
تقييم الخدمة ومقدمها
الأدوار الأساسية
Customer
يبحث عن الخدمات، ينشئ الطلبات، يتواصل مع مقدمي الخدمات ويقيّمهم.
Provider
يدير ملفه الشخصي وخدماته وتوافره ويستقبل الطلبات ويتعامل معها.
Admin
يدير المستخدمين ومقدمي الخدمات والتصنيفات والشكاوى والمراجعات.
أهداف فريق الـ Backend
بنهاية فترة التنفيذ، المفروض الفريق يكون قادر على تحقيق كل الأهداف دي:
التقنيات المقترحة
الأدوات والتقنيات اللي هنشتغل بيها في المشروع — اضغط على أي تقنية لفتح شرحها.
هيكل الـ Solution المقترح
الجدول الزمني — 12 إلى 14 أسبوع
بافتراض تخصيص نحو 10–15 ساعة أسبوعيًا لكل عضو.
- Value Types وReference Types
- Classes وObjects
- Encapsulation وInheritance وPolymorphism
- Interfaces وAbstract Classes
- Collections وGenerics
- Exception Handling
- LINQ
- Async/Await وTask
- HTTP Methods: GET, POST, PUT, PATCH, DELETE
- HTTP Status Codes
- REST API وJSON
- Dependency Injection
- Controllers وRouting
- DTOs وModel Validation
- الفرق بين Authentication وAuthorization
- Tables وRelationships
- Primary Keys وForeign Keys
- SELECT وINSERT وUPDATE وDELETE
- JOINs
- Constraints وIndexes
- Repository وBranches
- Commits وPull Requests
- Merge Conflicts
- مراجعة الكود قبل الدمج
المطلوب بنهاية المرحلة
تنفيذ مشروع تدريبي صغير باستخدام ASP.NET Core Web API، يدعم CRUD لبيانات بسيطة، ويتصل بقاعدة بيانات ويحتوي على Validation وSwagger.
- إنشاء الـ Solution بالمشروعات المنفصلة
- تحديد مسؤوليات كل Layer
- تطبيق Dependency Injection
- فهم الفرق بين Entity وDTO وService وRepository
- الاتفاق على أسلوب موحّد لتنظيم الكود
- User, ProviderProfile, Category, Service
- Address, ServiceRequest, Message
- Review, Notification
- MenuItem, Order, OrderItem (سيناريو الطعام)
- تحديد العلاقات والقيود المطلوبة
- مراعاة صحة البيانات التاريخية
- إنشاء DbContext وEntity Configurations
- تنفيذ Migrations
- إعداد الاتصال بقاعدة البيانات
- بناء CRUD APIs الأساسية
- إنشاء Global Exception Handling
- إعداد Logging
- توحيد Validation وAPI Responses
- توثيق الـ APIs باستخدام Swagger
المطلوب بنهاية المرحلة
هيكل Backend واضح، واتصال سليم بقاعدة البيانات، وأول مجموعة APIs تعمل ويمكن اختبارها.
- تسجيل المستخدمين وتسجيل الدخول
- إدارة كلمات المرور بطريقة آمنة
- إنشاء JWT والتحقق منه
- تطبيق Roles: Customer وProvider وAdmin
- حماية الـ Endpoints
- التأكد من ملكية الموارد وليس Role فقط
- إدارة الملف الشخصي
- إنشاء وتحديث ملف مقدم الخدمة
- إدارة بيانات الخدمات المقدمة
- إدارة التوافر
- التحقق الإداري من مقدمي الخدمات
- تفعيل وإيقاف الحسابات
- إدارة التصنيفات والخدمات
- البحث عن الخدمات ومقدميها
- التصفية حسب الموقع والتصنيف والسعر والتوافر
- Pagination وSorting
- تحسين استعلامات قاعدة البيانات
تنفيذ دورة حياة الطلب بقواعد واضحة — تحديد الحالات والانتقالات المسموحة وصلاحيات كل انتقال.
المطلوب بنهاية المرحلة
يستطيع العميل إنشاء طلب خدمة، ويستطيع مقدم الخدمة قبوله أو رفضه، ويتابع الطرفان الحالة وفق الصلاحيات وقواعد العمل.
- استقبال متطلبات العميل
- البحث داخل بيانات مقدمي الخدمات الفعلية
- ترتيب النتائج حسب نوع الخدمة والموقع والتوافر
- إرجاع أسباب واضحة لاختيار النتائج
- إرسال وصف احتياج العميل لنموذج AI
- استخراج بيانات منظمة: نوع الخدمة، الموقع، الوقت، الميزانية
- التحقق من صحة المخرجات قبل استخدامها
- عدم السماح للـ AI بإنشاء بيانات غير موجودة
- التعامل مع فشل النموذج أو بطء الاستجابة
- إنشاء المحادثات وربطها بالطلبات
- حفظ الرسائل في قاعدة البيانات
- التحقق من صلاحية الوصول للمحادثة
- إرسال واستقبال رسائل لحظية
- عدم الاعتماد على الاتصال اللحظي وحده في الحفظ
- إشعارات إنشاء الطلب وقبوله وتغيير حالته
- إشعارات الرسائل
- التقييم بعد اكتمال الخدمة فقط
- منع تكرار التقييم لنفس الطلب
- إدارة المستخدمين ومقدمي الخدمات
- إدارة التصنيفات
- مراجعة البلاغات والمحتوى المخالف
- عرض بيانات إدارية أساسية
المطلوب بنهاية المرحلة
تكامل الوظائف الأساسية مع المطابقة والمحادثات والإشعارات، وتجهيز سيناريو متكامل قابل للتجربة.
- Unit Tests لمنطق العمل
- Integration Tests للـ APIs وقاعدة البيانات
- اختبار Authentication وAuthorization
- اختبار انتقالات حالات الطلب
- اختبار البيانات الناقصة والحالات غير الصحيحة
- اختبار السيناريوهات من البداية للنهاية
- تخزين الأسرار في Configuration آمن
- عدم رفع كلمات المرور أو المفاتيح لـ GitHub
- استخدام HTTPS في بيئة النشر
- التحقق من المدخلات والصلاحيات
- عدم تسجيل بيانات حساسة في Logs
- إخفاء التفاصيل الداخلية عن المستخدم
- إعداد Docker
- إعداد CI/CD باستخدام GitHub Actions
- تجهيز إعدادات Development وProduction
- تحديد طريقة تشغيل Migrations في النشر
- نشر الـ API وربطها بالتطبيق
- اختبار قواعد العمل بعد النشر
المطلوب بنهاية المرحلة
اختبار الرحلة الكاملة للمستخدم ومقدم الخدمة والتأكد من أن الوظائف المطلوبة للعرض النهائي تعمل بدون تدخل يدوي غير ضروري.
تقسيم المسؤوليات
التقسيم مبدئي وممكن يتغير حسب مستوى كل عضو. الـ Architecture وقواعد العمل المشتركة مسؤولية الفريق كله.
- تصميم Architecture وهيكل الـ Solution
- وضع قواعد التسمية والـ Conventions
- قيادة تصميم الـ Domain وDatabase Design
- تحديد العقود بين الـ Modules
- مراجعة Pull Requests
- حل مشاكل الدمج والتكامل
- متابعة المهام والمخاطر الفنية
- المشاركة في Auth وMatching
- تصميم وتنفيذ كيانات قاعدة البيانات
- Entity Configurations وEF Core
- Migrations بالتنسيق مع الفريق
- APIs التصنيفات والخدمات ومقدمي الخدمات
- البحث والتصفية وPagination
- مراجعة الاستعلامات والعلاقات
- Service Requests وDTOs وValidation
- تنفيذ قواعد دورة حياة الطلب
- Reviews وNotifications
- كتابة Tests للوظائف المسؤولة عنها
- دعم التكامل بين المحادثات والطلبات
ترتيب أولويات التنفيذ
ركزوا على P0 أولًا، بعدين P1 بعد استقرار الأساس، وP2 حسب الوقت المتاح.
الوظائف الأساسية
- Authentication & Authorization
- Users & Provider Profiles
- Categories & Services
- Service Requests
- Database Design
- Validation وError Handling
وظائف مهمة
- Search & Matching
- AI Integration
- Reviews
- Notifications
- SignalR Chat
- Admin APIs
وظائف إضافية
- Food Orders
- Menu وCart وCheckout
- تحسينات متقدمة للبحث
- تحليلات وتقارير إضافية
- خصائص غير ضرورية للسيناريو الأساسي
قواعد العمل الجماعي على GitHub
main.أمثلة أسماء الفروع
معايير اكتمال أي Feature
لا تعتبر أي Feature مكتملة لمجرد أن الـ Endpoint يعمل. تأكد من كل النقط دي:
أول أسبوعين — ابدأوا من هنا
الأفضل ألا يبدأ كل عضو ببناء Module منفصل من أول يوم. اتعلموا الأساسيات ونفذوا مشروع تدريبي مشترك الأول.
- مراجعة أساسيات C# وOOP
- فهم Interfaces وDependency Injection
- دراسة أساسيات HTTP وREST APIs
- مراجعة SQL وRelationships وJOINs
- تعلم أساسيات Git وGitHub
- إنشاء ASP.NET Core Web API
- تنفيذ CRUD باستخدام EF Core
- استخدام DTOs وValidation
- إضافة Swagger وException Handling
- العمل بـ Branches وPull Requests
- إجراء Code Review بين الأعضاء
النتيجة المتوقعة
يكون كل عضو قادرًا على فهم الكود المشترك، إضافة Endpoint بسيط، والتعامل مع قاعدة البيانات، ورفع التعديل إلى GitHub بطريقة صحيحة.
نصائح مهمة للـ Backend Lead
النتيجة النهائية المستهدفة
Backend منظم وقابل للاختبار والنشر، يدعم تسجيل المستخدمين، وإدارة مقدمي الخدمات، والبحث والمطابقة، وإنشاء الطلبات ومتابعتها، والمحادثات والإشعارات والتقييمات.
الأهم أن يكون كل جزء مبني على قواعد عمل واضحة ومتكامل مع باقي أجزاء المنصة، بحيث يستطيع فريق Flutter استهلاك الـ APIs، ويستطيع فريق AI تقديم مخرجات منظمة للنظام.