نسخة كاملة من مستودع سيرو عند 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>
40 lines
1.8 KiB
Markdown
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 من الخادم.
|