↩ التسليم

مراحل تطوير المشروع

خطوة بخطوة — خلفية (.NET) + تطبيق ويب فعلي (واجهات مربوطة)

61%

التقدّم العام — 14 من 23

الخلفية 12/12 (منشورة وحيّة على iftehamet.com/api) · الواجهات 2/11 (تطبيق ويب فعلي على iftehamet.com/webapp).

الخلفية (Backend)

12/12 · 100%
✓
P0

الأساس والبنية

مكتملة

هيكل الحل + الاتصال بقاعدة البيانات + المراقبة.

  • حلّ Clean بـ4 مشاريع (Api/Application/Domain/Infrastructure)
  • اتصال MongoDB Atlas (singleton pool)
  • فحص صحّة /health (ping فعلي)
  • Swagger + Serilog + .gitignore للأسرار
.NET 8 · ASP.NET Core · MongoDB.Driver · Serilog
✓
P1

الهوية والدخول (M01)

مكتملة

تسجيل ودخول عبر OTP واتساب + JWT + الأدوار.

  • OTP عبر واتساب حقيقي (Cloud API) + ويبهوك بتوقيع
  • وضعان: حقيقي (واتساب) ووهمي (أرقام متسلسلة ثابتة للتجربة)
  • JWT (Access 15د + Refresh مُدوّر مُجزّأ)
  • إكمال الملف (اسم/تاريخ ميلاد/جنس) + الأدوار والسياسات
  • Rate limiting على OTP + استهلاك الرمز + محاولات محدودة
  • نقاط: /auth/otp/request · /verify · /register · /refresh · /logout · /me
JWT Bearer · WhatsApp Cloud API · RateLimiter · SHA-256
✓
P2

الملفات والمناهج (M02·M03·M11)

مكتملة

ملف المعلّم الكامل + المنهج العراقي + الطالب/ولي الأمر — مختبَر حيّاً.

  • ملف المعلّم: مواد/صفوف/سعر (أو «عند التواصل»)/الفئة/نمط الحضور/الشكل/مواقع/نطاق تغطية
  • قاعدة المناهج العراقية (مراحل/صفوف/مواد/فصلان) + بذرة أولية
  • ملف الطالب (الصف/تفضيل جنس المعلّم/مجموعات مختلطة) + مفضّلون
  • ولي الأمر: إدارة الأبناء
  • مستودع عام (Generic Repository) + Rate-limit مقسّم حسب IP
  • نقاط: /teachers/{id}·/me · /curriculum · /students/me · /parents/children
MongoDB · Generic Repository · DTOs · Authorize(Roles)
✓
P3

الاكتشاف والبحث (M04·M14)

مكتملة

بحث وفلترة + خريطة قرب + مطابقة الفئة — مختبَر حيّاً.

  • فلترة: مادة/صف/منطقة/سعر أقصى + الفئة (جنس) + نمط الحضور + الشكل
  • ترتيب (تقييم/سعر/الأحدث) + ترقيم Pagination
  • مطابقة الفئة: طالبة → معلّمات فقط · طالب → معلّمين فقط (الأعراف)
  • القرب: معلّمون ضمن نصف قطر كم مرتّبون بالأقرب (مسافة هافرساين)
  • نقاط: /search/teachers · /nearby
MongoDB Filters · Haversine · مطابقة الجنس
✓
P4

الحجز والجدولة (M05)

مكتملة

حجز + تأكيد/رفض + إعادة جدولة/إلغاء — مختبَر حيّاً.

  • حجز حصة (حالة Pending + مهلة تأكيد 24س + سعر موروث من المعلّم)
  • منع التعارض الزمني (تداخل الحصص) — 409
  • Idempotency-Key لمنع الحجز المزدوج عند الإعادة
  • تأكيد/رفض من المعلّم · إعادة جدولة · إلغاء (بصلاحية الطرفين)
  • أوقات المعلّم المتاحة (Availability) بالملف · حجوزاتي بالفلترة
  • نقاط: /bookings · /{id}/confirm·reject·reschedule·cancel
MongoDB · فحص التداخل · Idempotency · Authorize(Roles)
✓
P5

التواصل والإشعارات (M06·M12)

مكتملة

محادثة لحظية + إخفاء الرقم + إشعارات — مختبَر حيّاً.

  • محادثة بين الطرفين + رسائل + بثّ لحظي عبر SignalR (Hub /hubs/chat)
  • إخفاء رقم الهاتف حتى وجود حجز مؤكّد بين الطرفين ✓
  • إشعارات تلقائية عند الأحداث (طلب حجز/تأكيد/رسالة جديدة)
  • قائمة الإشعارات + تعليمها مقروءة + تفضيلات القناة (داخل التطبيق/واتساب/SMS)
  • نقاط: /chats · /{id}/messages · /notifications · /notifications/prefs
SignalR · MongoDB · INotifier
✓
P6

المجموعات الدراسية (M07)

مكتملة

مجموعات طلاب/أساتذة + مانيفستو + عروض والتحاق — مختبَر حيّاً.

  • مجموعة طلاب: ميزانية مشتركة (عدد×اشتراك) تبحث عن أستاذ (Seeking)
  • مجموعة أستاذ: مفتوحة للالتحاق (Open)
  • انضمام طلاب بحجز مقعد + مطابقة الفئة + امتلاء تلقائي (Full)
  • عروض الأساتذة على مجموعات الطلاب + قبول المنشئ (إسناد أستاذ)
  • مانيفستو شفّاف: مواد/مرحلة/أيام/موقع/عدد/اشتراك/فئة/أعضاء/عروض
  • نقاط: /groups · /{id}·/join·/offer·/accept
MongoDB · مطابقة الفئة · صلاحيات المنشئ
✓
P7

الجودة والسمعة (M08·M09)

مكتملة

تقييمات بعد حصة فعلية + توثيق بمراجعة — مختبَر حيّاً.

  • تقييم بعد حصة مكتملة فقط (منع الوهمي) + منع التكرار + تحديث معدّل المعلّم
  • ردّ المعلّم على التقييمات
  • توثيق: رفع وثائق (هوية/شهادة) → طلب مُعلّق
  • مراجعة الأدمن: قبول/رفض → شارة «موثّق» تلقائياً
  • مستخدم أدمن (نظام) مبذور + منع انتحال دور Admin بالتسجيل
  • نقاط: /bookings/{id}/complete·review · /reviews/{id}/reply · /verification · /admin/verification
MongoDB · صلاحيات الأدمن · تجميع التقييم
✓
P8

الذكاء الاصطناعي (M13)

مكتملة

بوابة معزولة (Gemini/Claude/Demo) — مختبَرة حيّاً مع Gemini.

  • تجريد IAiProvider يعزل المزوّد — التبديل بالإعداد بلا مسّ الكود
  • توصية ومطابقة: استخراج المادة/الصف/المنطقة/السعر من طلب بلغة طبيعية ثم بحث
  • مساعدة صياغة نبذة المعلّم بالعربية
  • إشراف المحتوى (كشف الإساءة/المحظور) — تصنيف فعلي
  • نقاط: /ai/recommend · /ai/assist/profile · /ai/moderate
Gemini/Claude API · تجريد المزوّد · JSON parsing
✓
P9

الإدارة والنمو (M15·M16·M17·M18)

مكتملة

إحالة + ترويج + اشتراك المعلّم + تذاكر دعم + سجل تدقيق — مختبَر حيّاً.

  • الإحالة (M16): رمز دعوة شخصي + رابط + ربط تلقائي عند التسجيل + إحصائية من دعوتهم
  • الترويج (M15): إبراز المعلّم في نتائج البحث (Boost) + كوبونات خصم يصدرها المعلّم
  • اشتراك المعلّم: خطط (مجاني/احترافي/بريميوم) + اشتراك/إلغاء (دفع للمنصّة، منفصل عن دفع الطالب↔المعلّم)
  • تذاكر الدعم (M17): فتح/ردّ المستخدم + ردّ الأدمن + تغيير الحالة + إشعار عند الردّ
  • لوحة القائد: نظرة عامة (أعداد مباشرة) + إدارة المستخدمين (تعليق/تفعيل، حماية الأدمن)
  • سجل التدقيق (M18): تسجيل غير قابل للتعديل لكل فعل إداري حسّاس + منع انتحال الأدمن
  • نقاط: /referrals · /promotions · /subscriptions · /tickets · /admin/overview·users·audit·tickets
MongoDB · IAuditLogger · Boost في الترتيب · Authorize(Roles)
✓
P11

الأخبار وFirebase والنظام

مكتملة

بلوج داخل التطبيق يظهر بالإشعارات + دفع FCM + مستخدم نظام — مختبَر حيّاً.

  • نظام أخبار/بلوج: إنشاء/تعديل/نشر/أرشفة/حذف + تغذية عامة (المثبّت أولاً) + عدّاد مشاهدات
  • النشر يبثّ إشعاراً داخل التطبيق لكل المستخدمين + دفع FCM لكل الأجهزة (منع تكرار البثّ)
  • دفع الإشعارات Firebase FCM (HTTP v1): تسجيل أجهزة + توقيع JWT بحساب الخدمة + وضعان (حقيقي/وهمي)
  • مستخدم افتراضي (نظام) مبذور «افتهمت؟» (id=system) لعمليات النشر الآلي بالباك
  • تكامل الدفع بكل الإشعارات (حجز/محادثة/تذكرة/خبر) + حذف رموز الأجهزة عند حذف الحساب
  • نقاط: /news · /news/{id} · /admin/news(نشر/أرشفة/حذف) · /devices/register·unregister
Firebase FCM HTTP v1 · RS256 JWT · بثّ إشعارات · IPushSender
✓
P10

التصليب والنشر — والإطلاق الحيّ

مكتملة

الـAPI منشور وحيّ على iftehamet.com/api — مختبَر end-to-end على الإنتاج.

  • 🟢 الـAPI حيّ: iftehamet.com/api/health → Healthy (IIS Application · ANCM inprocess · Production)
  • قاعدة إنتاج iftehamet مبذورة + OTP→JWT→/me + لوحة الأدمن — كلها مختبَرة حيّاً على الإنتاج
  • تصليب أمني: معالج استثناءات → ProblemDetails · ترويسات أمان (nosniff/DENY/Referrer/Permissions/CORP)
  • CORS مقيّد بنطاقات الموقع + سقف عام 120/دقيقة + OTP 10/دقيقة + HSTS + Swagger مُعطّل بالإنتاج
  • حزمة Release + web.config + دليل نشر (docs/deploy-p10.md) + سكربت نسخ احتياطي mongodump
  • يبقى قبل الإطلاق العام: تعبئة WhatsApp (تبديل OTP لـwhatsapp) + Firebase (Push fcm) + Atlas Backup
منشور حيّ · IIS/ANCM · Security Headers · CORS · Serilog

الواجهات (Frontend · تطبيق ويب فعلي)

2/11 · 18%
✓
F0

الأساس والتجاوب

مكتملة

بنية التطبيق على تصميم النموذج المعتمد + متجاوب ملء الشاشة + طبقة API.

  • إعادة استعمال تصميم النموذج المعتمد حرفياً (CSS + كل الشاشات + الشريط المنكمش)
  • إزالة بريزل الهاتف → متجاوب كامل (يملأ أي حجم شاشة)
  • طبقة API حقيقية (api.js) لكل نقاط الخلفية + توكن + تجديد تلقائي
  • PWA manifest (قابل للتثبيت + تصدير لاحق للمتاجر)
نفس أصل الـAPI (بلا CORS) · localStorage · PWA
✓
F1

المصادقة الحقيقية

مكتملة

تسجيل/دخول OTP حقيقي على التصميم المعتمد — مختبَر حيّاً.

  • اختيار الدور (طالب/معلّم/ولي أمر) + رقم الهاتف الحقيقي
  • OTP فعلي عبر الـAPI (رمز التجربة يظهر تلقائياً) + صناديق إدخال
  • إكمال الملف (اسم/ميلاد/جنس) → تسجيل حقيقي
  • مختبَر حيّاً: أنشأ مستخدماً فعلياً بقاعدة الإنتاج
OTP→JWT حقيقي · جلسة محفوظة
◆
F2

الرئيسية والبحث

قيد التنفيذ

ربط الرئيسية + البحث والفلاتر + توصية الذكاء ببيانات حقيقية.

○
F3

ملف المعلّم والحجز

قادمة

ملف المعلّم + التقييمات + إنشاء حجز حقيقي.

○
F4

الحجوزات

قادمة

قائمة الحجوزات + تأكيد/إلغاء/إكمال + تقييم.

○
F5

المحادثة

قادمة

محادثة لحظية + كشف الرقم بعد التأكيد.

○
F6

الإشعارات والأخبار

قادمة

الإشعارات + التفضيلات + تغذية الأخبار.

○
F7

المجموعات الدراسية

قادمة

إنشاء/انضمام/عروض المجموعات.

○
F8

الحساب والقانوني

قادمة

الحساب + الإعدادات + حذف الحساب + الصفحات القانونية.

○
F9

أدوات المعلّم

قادمة

الملف/التقويم/الاشتراك/الترويج/التوثيق/الإحالة.

○
F10

الأدمن وPWA

قادمة

لوحة الأدمن + تلميع + جاهزية التصدير للمتاجر.

تُحدَّث مع كل مرحلة · التطبيق الفعلي: iftehamet.com/webapp · الخلفية حيّة على /api.