Update Saqel Platform: 2026-08-31 01:52:23
This commit is contained in:
@@ -12,14 +12,14 @@
|
||||
│ (Apps Ecosystem - Flutter) │
|
||||
└─────────────────────────┬─────────────────────────┘
|
||||
│
|
||||
┌───────────────────┬────────────────────────┼────────────────────────┬───────────────────┐
|
||||
│ │ │ │ │
|
||||
┌────────▼────────┐ ┌────────▼────────┐ ┌────────▼────────┐ ┌────────▼────────┐ ┌────────▼────────┐
|
||||
│ student_app │ │ teacher_app │ │ guardian_app │ │ admin_app │ │ Web Portal │
|
||||
│ (تطبيق الطالب) │ │ (تطبيق المعلم) │ │ (تطبيق ولي الأمر)│ │(الإدارة والمدارس)│ │ (بوابة الويب) │
|
||||
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘
|
||||
│ │ │ │ │
|
||||
└───────────────────┴────────────────────────┼────────────────────────┴───────────────────┘
|
||||
┌────────────────────────────┼────────────────────────────┐
|
||||
│ │ │
|
||||
┌────────▼────────┐ ┌────────▼────────┐ ┌────────▼────────┐
|
||||
│ student_app │ │ teacher_app │ │ admin_app │
|
||||
│ (الطالب + ولي الأمر)│ │ (استوديو المعلم)│ │(الإدارة والمدارس)│
|
||||
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
|
||||
│ │ │
|
||||
└────────────────────────────┼────────────────────────────┘
|
||||
│ HTTPS / REST API / JWT + Device Fingerprint
|
||||
│
|
||||
┌────────────────────▼────────────────────┐
|
||||
@@ -44,17 +44,15 @@
|
||||
|
||||
## 2. المعايير الهندسية لتطبيقات Flutter (`/apps`)
|
||||
|
||||
تعتمد جميع التطبيقات الأربعة مبدأ **(Thin Client)**؛ الواجهات للعرض فقط، وكافة المعالجات الحسابية والصلاحيات والتحقق تُنفذ في الـ Backend:
|
||||
تعتمد كافة التطبيقات مبدأ **(Thin Client)** مع هوية أبل وخطوط San Francisco الرسمية (`SF Pro Display` & `SF Arabic`)؛ الواجهات للعرض والتفاعل، وكافة المعالجات الحسابية والصلاحيات والتحقق تُنفذ في الـ Backend:
|
||||
|
||||
| المتطلب التقني | المكتبة / التقنية | الاستخدام والهدف |
|
||||
|---|---|---|
|
||||
| **إدارة الحالة (State Management)** | `flutter_bloc` / `Cubit` | بنية برمجية قياسية ونظيفة تفصل منطق العرض عن البيانات. |
|
||||
| **التخزين الآمن (Secure Storage)** | `flutter_secure_storage` | تخزين الـ JWT Tokens وبصمة الجهاز داخل Keychain / Keystore المشفر. |
|
||||
| **الاتصال بالشبكة (Networking)** | `http` | عميل شبكة خفيف ومحكم مع Interceptor لحقن الـ JWT وبصمة الجهاز في الـ Headers. |
|
||||
| **إدارة المتغيرات والبيئات** | `envied` | تشفير وتوليد مفاتيح الـ API في كود الفلاتر أثناء الـ Compile time لمنع الهندسة العكسية. |
|
||||
| **أيقونات وهوية التطبيقات** | `flutter_launcher_icons` | توليد أيقونات المنصة المعتمدة لكافة مقاسات iOS, Android, Desktop. |
|
||||
| **بصمة الجهاز (Device Fingerprint)** | `device_info_plus` + Platform Hash | استخراج معرّف عتادي فريد وثابت للجهاز وإرساله مع كل طلب API لربطه بالـ JWT. |
|
||||
| **الإشعارات اللحظية (Push Notifications)** | `firebase_messaging` | استقبال تنبيهات الكويزات، تقارير الأهل، وتحديثات الدروس. |
|
||||
| **الخطوط الرسمية (Apple Typography)** | `-apple-system` / `SF Pro` / `SF Arabic` | خطوط أبل الرسمية مع تباعد أحرف دقيق وهندسة Cupertino الداكنة. |
|
||||
|
||||
---
|
||||
|
||||
@@ -69,8 +67,8 @@
|
||||
3. **تشفير البيانات الحساسة (PII Encryption):**
|
||||
- تشفير رقم الهاتف والاسم بـ **AES-256-GCM** مع Nonce عشوائي.
|
||||
- إنشاء حقل **`phone_hash`** مفهرس أعمى (Blind Index) عبر `HMAC-SHA256` للبحث والتحقق اللحظي في قاعدة البيانات.
|
||||
4. **حظر تعدد الأجهزة الفوري (Redis Active Session Lock):**
|
||||
- مفتاح `active_session:{user_id}` في Redis يسجل بصمة الجهاز الحالية؛ أي دخول من جهاز آخر يبطل الجلسة فوراً.
|
||||
4. **عزل الجلسات النشطة في الذاكرة (Role-Isolated Session Lock):**
|
||||
- مفتاح `active_session:{role}:{user_id}` في Redis يعزل جلسة المعلم عن الطالب وولي الأمر لنفس رقم الهاتف، ويبطل أي دخول غير مصرح به من أجهزة أخرى فوراً.
|
||||
|
||||
---
|
||||
|
||||
@@ -78,19 +76,14 @@
|
||||
|
||||
```
|
||||
saqel/
|
||||
├── apps/ # مجلد تطبيقات Flutter
|
||||
│ ├── student_app/ # تطبيق الطالب (كويزات، مشغل فيديو، ملاحظات صوتية)
|
||||
│ ├── teacher_app/ # تطبيق المعلم (رفع المواد، كويزات، تقارير المبيعات)
|
||||
│ ├── guardian_app/ # تطبيق ولي الأمر (متابعة الأبناء، التقارير الذكية)
|
||||
│ └── admin_app/ # تطبيق الإدارة ومديري المدارس (B2B)
|
||||
├── backend/ # مشروع Laravel 11 API Gateway
|
||||
│ ├── app/Http/Controllers/Api # وحدات التحكم بالـ APIs
|
||||
│ ├── app/Services/ # خدمات AI (Gemini)، OTP (Tanbih)، و Bunny Stream
|
||||
│ └── database/migrations/ # مخطط قاعدة البيانات
|
||||
├── docker/ # إعدادات الحاويات والإنتاج
|
||||
│ ├── nginx/ # إعدادات الويب سيرفر
|
||||
│ ├── php/ # Dockerfile الخاص بـ PHP-FPM 8.3
|
||||
│ └── .env.docker.example # قالب المتغيرات الإنتاجية للـ Docker
|
||||
├── apps/ # مجلد تطبيقات Flutter (النموذج الثلاثي المعتمد)
|
||||
│ ├── student_app/ # تطبيق صَقِل الموحد (الطالب: كويزات وفيديوهات + ولي الأمر: تقارير الأبناء)
|
||||
│ ├── teacher_app/ # تطبيق المعلم (رفع المواد، كويزات، تقارير المبيعات والأرباح)
|
||||
│ └── admin_app/ # تطبيق الإدارة ومديري المدارس (B2B Management)
|
||||
├── backend/ # مشروع Laravel 11 / Native PHP 8.3 API Gateway
|
||||
│ ├── app/Controllers/ # وحدات التحكم بالـ APIs
|
||||
│ ├── app/Services/ # خدمات AI، و Nabeh WhatsApp Gateway، و Curriculum
|
||||
│ └── database/ # مخطط قاعدة البيانات
|
||||
├── docs/ # وثائق التخطيط والتحليل
|
||||
│ └── PLATFORM_MASTER_PLAN.md # هذا المرجع المعماري الشامل
|
||||
├── docker-compose.yml # حاويات: saqel_app, saqel_nginx, saqel_mysql, saqel_queue
|
||||
|
||||
Reference in New Issue
Block a user