- docs/00-15: دراسة، بنية، محرك تعرفة، تسعير، نموذج استئجار، تكاملات، بيانات، realtime، خطة، devops، لاندنج، مخاطر، اصطلاحات سيرفر، تدفق نشر - backend/: NestJS 11 على Docker (health + tenants + عزل tenant_id + بادئة tripz_ + Redis DB 3) - apps/rider, apps/driver, dashboards/admin-web, dashboards/superadmin-web (هياكل) - sync-to-server.sh + .gitignore Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
60 lines
4.6 KiB
Markdown
60 lines
4.6 KiB
Markdown
# 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/02-backend-plan.md) و[docs/03-mobile-plan.md](docs/03-mobile-plan.md).
|
|
|
|
---
|
|
|
|
## خريطة الوثائق
|
|
|
|
ابدأ من الأعلى للأسفل. كل ملف مستقل لكنه يشير للبقية.
|
|
|
|
| # | الملف | يجيب عن |
|
|
|---|-------|---------|
|
|
| 00 | [نظرة عامة](docs/00-overview.md) | الرؤية، الجمهور، التمايز، ما ليس ضمن النطاق |
|
|
| 01 | [البنية](docs/01-architecture.md) | كيف تتحدث الأنظمة معاً (مخطط عام) |
|
|
| 02 | [الباك إند](docs/02-backend-plan.md) | وحدات NestJS، الطبقات، الحرّاس |
|
|
| 03 | [الموبايل](docs/03-mobile-plan.md) | هيكل فلاتر، الحالة، الشاشات، الـ flavors |
|
|
| 04 | [محرك التعرفة](docs/04-tariff-engine.md) | كيف نسعّر الرحلة (JSON قواعد) |
|
|
| 05 | [تسعير المنتج والفوترة](docs/05-pricing-billing.md) | الباقات وخوارزمية فاتورة المستأجر |
|
|
| 06 | [نموذج الاستئجار](docs/06-tenant-model.md) | tenant_id، وضع السيادة، حزم الدول |
|
|
| 07 | [التكاملات](docs/07-integrations.md) | الدفع، OTP/SMS، واجهة المنظّم، Webhooks |
|
|
| 08 | [نموذج البيانات](docs/08-data-model.md) | الجداول الأساسية والعلاقات |
|
|
| 09 | [الطبقة الحية](docs/09-realtime.md) | قنوات Socket، الحضور، الإسناد |
|
|
| 10 | [خطة التنفيذ](docs/10-roadmap.md) | P0→P3 بالأسابيع وشروط الخروج |
|
|
| 11 | [النشر والأتمتة](docs/11-devops-cicd.md) | CI، flavors، fastlane، البيئات |
|
|
| 12 | [اللاندنج والبيع](docs/12-landing-gtm.md) | الموقع، قنوات البيع بلا إعلانات |
|
|
| 13 | [المخاطر والقرارات المفتوحة](docs/13-risks-decisions.md) | ما يحتاج حسم المالك |
|
|
| 14 | [اصطلاحات السيرفر والعزل](docs/14-server-conventions.md) | **قرارات تشغيلية محسومة:** البادئة، Redis DB، سيرفر مشترك، سيرو |
|
|
| 🌳 | [شجرة المستودع](docs/project-tree.md) | البنية الكاملة للمجلدات والملفات |
|
|
|
|
---
|
|
|
|
## البدء السريع (عند جهوزية القرار)
|
|
|
|
1. اقرأ [00-overview](docs/00-overview.md) → [01-architecture](docs/01-architecture.md).
|
|
2. احسم [القرارات المفتوحة](docs/13-risks-decisions.md) (الاسم، سوق الانطلاق، دور سيرو).
|
|
3. نفّذ [P0](docs/10-roadmap.md#p0) — تأسيس الـ Monorepo.
|
|
4. تابع الشجرة المرجعية في [project-tree](docs/project-tree.md).
|
|
|
|
---
|
|
|
|
**الحالة:** تخطيط · **آخر تحديث:** 2026-07-16 · **الاسم المؤقت:** Tripz
|