# ? منصة التدريب والاستشارات التعليمية (EduConsultancy Platform)
## ? نظرة عامة (Overview)
هذا المشروع عبارة عن **منصة ويب متكاملة (SaaS-Level)** لشركة استشارات تعليمية، تم بناؤها باستخدام **ASP.NET Core 9.0**. تهدف المنصة إلى تقديم خدمات شراء الكتب، حجز استشارات مع خبراء، وتوليد مسارات تعليمية كاملة باستخدام **الذكاء الاصطناعي الحقيقي (OpenAI)**.
يتميز المشروع بتصميم **Glassmorphism** فاخر، لوحة تحكم إدارية متكاملة، ونظام حماية وأداء عالي الجودة.
---
## ? التقنيات المستخدمة (Tech Stack)
### Core & Backend
- **Framework:** ASP.NET Core 9.0 MVC
- **Data Access:** Entity Framework Core (Code-First)
- **Database:** SQL Server
- **Authentication:** ASP.NET Core Identity (Admin/User Roles)
- **Logging:** Serilog (File & Console)
- **AI Service:** OpenAI API (GPT-3.5 Turbo) with JSON Mode
### Frontend & UI
- **Styling:** Bootstrap 5 + Custom CSS (Glassmorphism Variables)
- **Font:** Inter (Google Fonts)
- **Charts:** Chart.js (Admin Dashboard)
- **Icons:** Bootstrap Icons (BI)
### Infrastructure & Security
- **Caching:** IMemoryCache (Admin Stats)
- **File Handling:** Custom `FileHelper` with Validation (Size/Type)
- **Error Handling:** Global Exception Middleware (Custom 404/500 Pages)
---
## ✅ ما تم إنجازه بالكامل (Completed Features)
### 1️⃣ الهيكل الأساسي والبنية التحتية (Core & Infra)
- [x] **بنية نظيفة (Clean Architecture):** تقسيم المشروع إلى (Domain, Application, Infrastructure, Web).
- [x] **نظام المستخدمين:** تسجيل الدخول، التسجيل، إدارة الأدوار (Admin/User).
- [x] **Logging:** تفعيل Serilog لتسجيل الأخطاء والعمليات.
- [x] **الأمان:** حماية ضد CSRF، تحديد الصلاحيات (Authorize Attributes)، ومعالجة الأخطاء الشاملة.
### 2️⃣ واجهة المستخدم العامة (Public UI)
- [x] **تصميم فاخر:** صفحات (Home, About, Services, Contact) بتصميم زجاجي حديث.
- [x] **متجر الكتب:** عرض الكتب، صفحة تفاصيل، وآلية الشراء (Mock logic connected to Stripe controller).
- [x] **صفحة المستشارين:** عرض الخبراء، التصفية، وحجز المواعيد.
### 3️⃣ الذكاء الاصطناعي (Real AI Integration)
- [x] **توليد الدورات:** الاتصال الفعلي بـ OpenAI API.
- [x] **هيكلة البيانات:** استخدام JSON Prompting لضمان توليد هيكل دورة (Modules/Lessons) دقيق وقابل للعرض.
- [x] **العرض:** تحويل رد الذكاء الاصطناعي إلى كائنات (Course Entities) وعرضها للمستخدم.
### 4️⃣ لوحة تحكم المسؤول (Admin Panel) - ? Major Update
- [x] **لوحة مؤشرات (Dashboard):** عرض إحصائيات حية (المستخدمين، المبيعات، الحجوزات) مع نظام **Caching** لتحسين الأداء.
- [x] **إدارة المحتوى (CRUD):**
- **الدورات:** إضافة/تعديل/حذف مع رفع صور (Validation Real).
- **الكتب:** إدارة كاملة مع رفع أغلفة الكتب والتحقق من الامتداد/الحجم.
- **المستشارين:** إدارة الملفات الشخصية ورفع الصور الشخصية.
- [x] **سجل العمليات (Transactions):** صفحة جديدة تعرض سجل المبيعات (الكتب) والحجوزات (الاستشارات) في مكان واحد.
- [x] **توجيه الروابط:** إصلاح جميع روابط القائمة الجانبية (Sidebar).
### 5️⃣ المدفوعات (Payments)
- [x] **خدمة الدفع:** هيكلة `StripePaymentService`.
- [x] **Webhooks:** إنشاء `WebhookController` لاستقبال إشعارات الدفع من Stripe.
- [x] **سجل الطلبات:** حفظ طلبات الكتب (`BookOrder`) تلقائياً بعد نجاح الدفع.
---
## ? ما هو موجود ولكن يحتاج تحسين (Partial / Needs Polish)
1. **بوابة الدفع (Stripe Key):** الكود جاهز ولكن مفتاح الـ API هو `placeholder`. يحتاج مفتاح حقيقي ليعمل الدفع الفعلي.
2. **ملفات الكتب (PDFs):** يتم رفع "غلاف الكتاب" بنجاح، لكن ملف الكتاب نفسه (PDF) حالياً يستخدم ملف افتراضي `placeholder.pdf`.
3. **التوطين (Localization):** الواجهة "هجينة" (عربي/إنجليزي). النصوص الأساسية مترجمة، لكن رسائل النظام (Identity) بالإنجليزية.
---
## ❌ النواقص النهائية (Missing / Final To-Do List)
هذه هي القائمة النهائية لما ينقص المشروع ليكون منتجاً كاملاً 100% (Production Ready):
### 1. نظام الاختبارات (Quizzes System)
- [ ] إضافة مؤقت (Timer) للاختبار.
- [ ] نظام منع الغش (Anti-Cheat) بسيط (منع تبديل التبويب).
- [ ] صفحة عرض النتائج وتحليل الأداء.
### 2. الشهادات (Certificates)
- [ ] توليد ملف PDF للشهادة عند إتمام الدورة/المسابقة.
- [ ] إضافة QR Code للشهادة للتحقق من صحتها.
### 3. الاشتراكات (Advanced Payments)
- [ ] تفعيل الاشتراكات الشهرية (Recurring Billing) للمستشارين أو المحتوى الحصري.
### 4. الاختبارات البرمجية (Testing)
- [ ] كتابة Unit Tests للخدمات الأساسية.
- [ ] كتابة Integration Tests لدورة حياة الطلب.
---
## ? كيفية الدخول (Admin Credentials)
- **البريد:** `admin@edu.com`
- **كلمة المرور:** `Pa$$w0rd`