Hamza-AyedandClaude Opus 4.8 c93be38622 feat: المجموعة N (طبقة الـSaaS) — تزويد المستأجر + مانيفست التطبيق + لوحة سوبر-أدمن
الهدف الأساسي: السوبر-أدمن ينشئ مستأجراً كاملاً (اسم/لوغو/دولة/دفع/باقة/
ميزات/bundle IDs) ويولّد تطبيقه.

الباك إند (خلف PlatformGuard):
- POST /admin/tenants/provision — تزويد بضربة واحدة
- GET /admin/tenants/:id/summary + /app-manifest (يستهلكه سكربت البناء)
- PATCH .../branding + .../payment-methods
- POST /admin/tenants/:id/logo (رفع) + GET /tenant/logo/:slug عام
  **يخدم أصل الهوية فقط لا مجلد التخزين كاملاً** — وإلا سُرّبت صور وثائق
  الهوية الحساسة بمفاتيحها
- كتالوج payment-methods.ts (cash/wallet/cliq/zaincash/paymob/mtn/
  syriatel/shamcash حسب الدولة) + تصفية المخترع
- GET /admin/features يرجع الميزات ووسائل الدفع للكتالوج

الواجهة: dashboards/superadmin-web/index.html — SPA مكتفية ذاتياً (vanilla
JS، بلا خطوة بناء)، سرّ المنصة في sessionStorage، RTL. تُخدَم كملف ثابت.

سكربت التوليد: scripts/generate-tenant-app.sh — يجلب المانيفست ويضبط
الهيكل؛ خطوات فلاتر موسومة [Q] تُوصَل عند بناء مشروع فلاتر.

اختبار: provision-test.mjs (يثبت الحارس + التزويد + تصفية الدفع +
الاستحقاقات + المانيفست). لا هجرة — settings/branding jsonb موجودان.

القرار: اللوحات ويب (لا فلاتر) — تحديث فوري، سطح مكتب، معيار الصناعة.
البدء بـN (طبقة الـSaaS) قرار المالك.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 03:39:02 +03:00
2026-07-16 16:01:28 +03:00

Tripz — منصة نقل ذكي متعددة المستأجرين (White-Label)

منصة SaaS لتأجير تطبيقات نقل بعلامة تجارية خاصة لكل مستأجر (مكتب تكسي / أسطول / مشغّل مرخّص) في دول متعددة. تُبنى لتكسر نموذج Onde عبر أربع فجوات: الشفافية السعرية، الاستضافة داخل الدولة (السيادة)، خرائط انطلق الذاتية (بلا فاتورة خرائط)، والعربية أولاً.

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


القرارات المحسومة (لا نقاش فيها عند البناء)

الطبقة القرار لماذا
الباك إند NestJS 11 + TypeORM + PostgreSQL/PostGIS + Redis باك إند انطلق مبني به أصلاً وفيه Tenant + Usage جاهزان
الـ Realtime Socket.IO Gateway (@nestjs/websockets) + redis-adapter لغة واحدة، فريق واحد، توسّع أفقي
الموبايل Flutter + flutter_bloc (Cubit افتراضياً، Bloc لدورة الرحلة والعروض) قابلية اختبار وتدقيق لمنتج يُرخّص + قرب من عقلية GetX
التوجيه/الحقن go_router + get_it معيار صناعي مقبول
الخرائط انطلق (Martin tiles + geocoding + routing ذاتي) الخندق التنافسي: بلا اعتماد على Google
الاستئجار قاعدة واحدة + tenant_id (قياسي)، ونسخة معزولة (وضع سيادة) أرخص تشغيلاً + منتج مضاد لثغرة Onde

تفاصيل كل قرار في docs/02-backend-plan.md وdocs/03-mobile-plan.md.


خريطة الوثائق

ابدأ من الأعلى للأسفل. كل ملف مستقل لكنه يشير للبقية.

# الملف يجيب عن
00 نظرة عامة الرؤية، الجمهور، التمايز، ما ليس ضمن النطاق
01 البنية كيف تتحدث الأنظمة معاً (مخطط عام)
02 الباك إند وحدات NestJS، الطبقات، الحرّاس
03 الموبايل هيكل فلاتر، الحالة، الشاشات، الـ flavors
04 محرك التعرفة كيف نسعّر الرحلة (JSON قواعد)
05 تسعير المنتج والفوترة الباقات وخوارزمية فاتورة المستأجر
06 نموذج الاستئجار tenant_id، وضع السيادة، حزم الدول
07 التكاملات الدفع، OTP/SMS، واجهة المنظّم، Webhooks
08 نموذج البيانات الجداول الأساسية والعلاقات
09 الطبقة الحية قنوات Socket، الحضور، الإسناد
10 خطة التنفيذ P0→P3 بالأسابيع وشروط الخروج
11 النشر والأتمتة CI، flavors، fastlane، البيئات
12 اللاندنج والبيع الموقع، قنوات البيع بلا إعلانات
13 المخاطر والقرارات المفتوحة ما يحتاج حسم المالك
14 اصطلاحات السيرفر والعزل قرارات تشغيلية محسومة: البادئة، Redis DB، سيرفر مشترك، سيرو
🌳 شجرة المستودع البنية الكاملة للمجلدات والملفات

البدء السريع (عند جهوزية القرار)

  1. اقرأ 00-overview → 01-architecture.
  2. احسم القرارات المفتوحة (الاسم، سوق الانطلاق، دور سيرو).
  3. نفّذ P0 — تأسيس الـ Monorepo.
  4. تابع الشجرة المرجعية في project-tree.

الحالة: تخطيط · آخر تحديث: 2026-07-16 · الاسم المؤقت: Tripz

S
Description
No description provided
Readme
110 MiB
Languages
Dart 56.8%
JavaScript 21.3%
PHP 12.3%
TypeScript 4%
Kotlin 1.8%
Other 3.5%