نسخة كاملة من مستودع سيرو عند 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>
لوحة مشرف المؤسسة — مواصلاتي
واجهة ويب (Vue 3 + Vite) يستخدمها مشرف الجامعة/الفندق/الشركة لإدارة أسطول
الباصات، الخطوط، الجداول، الطلاب، والإعلانات. تتصل حصراً بـ
backend/transit/* عبر بوابة connect_admin.php (مصادقة هاتف + OTP، جلسة
Bearer صالحة 24 ساعة).
التشغيل محلياً
cp .env.example .env # اضبط VITE_API_BASE على رابط الباك اند
npm install
npm run dev # http://localhost:5183
البناء للإنتاج
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) وتخزين التوكن فيlocalStoragesrc/components/MapRouteBuilder.vue— منشئ خطوط بخريطة Leaflet (نقر لإضافة محطة بالترتيب، سحب لتعديل الموقع) — لا يتطلب مفتاح API (OpenStreetMap)src/views/RouteEditorView.vue— محرر خط كامل (بيانات + محطات + جداول)- الأيام في الجداول الزمنية: قناع بت (
bit0=أحد … bit6=سبت، 62=الأحد–الخميس)
ملاحظات أمنية
- لا يوجد أي اتصال مباشر بقواعد main/ride/tracking — فقط
siroTransitDbعبر الباك اند. - التوكن يُحذف تلقائياً من
localStorageعند استجابة 401 من الخادم.