Files
intaleq/transit_dashboard/README.md
T
Hamza-AyedandClaude Opus 5 92dc6b3641 chore: استيراد أولي من سيرو (ecfe7568) — بلا أي تعديل
نسخة كاملة من مستودع سيرو عند ecfe7568 لتكون أساس تطبيق «انطلق».
نُسخ المتعقَّب في git فقط (12,509 ملفاً / 302 م.ب) بـ git archive، لا
`cp -r` — فاستُثنيت تلقائياً مخلفات البناء (build · node_modules ·
.dart_tool · .gradle · Pods ≈ 10.7 غ.ب) وكل ما يستثنيه .gitignore.

هذا الكوميت **بلا أي تعديل عمداً** حتى يكون كل ما يليه فرقاً مقروءاً
مقابل سيرو الأصلي. سيرو نفسه لم يُمسّ.

⚠️ لا يبني بعد: `.env` و`lib/env/env.g.dart` غير متعقَّبين في سيرو (وهذا
صحيح — أسرار لكل مستأجر). كل تطبيق فلاتر هنا يحتاج .env خاصاً بانطلق ثم
توليد env.g.dart عبر build_runner. لا تُنسخ أسرار سيرو.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 05:10:29 +03:00

40 lines
1.8 KiB
Markdown

# لوحة مشرف المؤسسة — مواصلاتي
واجهة ويب (Vue 3 + Vite) يستخدمها مشرف الجامعة/الفندق/الشركة لإدارة أسطول
الباصات، الخطوط، الجداول، الطلاب، والإعلانات. تتصل حصراً بـ
`backend/transit/*` عبر بوابة `connect_admin.php` (مصادقة هاتف + OTP، جلسة
Bearer صالحة 24 ساعة).
## التشغيل محلياً
```bash
cp .env.example .env # اضبط VITE_API_BASE على رابط الباك اند
npm install
npm run dev # http://localhost:5183
```
## البناء للإنتاج
```bash
npm run build # يُنتج dist/
```
انشر محتوى `dist/` على `transit.siromove.com` (أو `admin.siromove.com` — كلا
الأصلين مضبوطان في CORS ضمن `backend/transit/connect_admin.php` عبر متغير
البيئة `TRANSIT_ADMIN_ORIGINS`).
## البنية
- `src/api/` — عميل HTTP (`client.js`) وكل نداءات `transit/*` (`transit.js`)
- `src/stores/auth.js` — جلسة المشرف (Pinia) وتخزين التوكن في `localStorage`
- `src/components/MapRouteBuilder.vue` — منشئ خطوط بخريطة Leaflet (نقر لإضافة
محطة بالترتيب، سحب لتعديل الموقع) — لا يتطلب مفتاح API (OpenStreetMap)
- `src/views/RouteEditorView.vue` — محرر خط كامل (بيانات + محطات + جداول)
- الأيام في الجداول الزمنية: قناع بت (`bit0=أحد … bit6=سبت`، 62=الأحد–الخميس)
## ملاحظات أمنية
- لا يوجد أي اتصال مباشر بقواعد main/ride/tracking — فقط `siroTransitDb` عبر
الباك اند.
- التوكن يُحذف تلقائياً من `localStorage` عند استجابة 401 من الخادم.