2026-10-08 09:07:05 +03:00
2026-10-04 00:19:45 +03:00
2026-10-04 00:19:45 +03:00
2026-10-04 00:19:45 +03:00
2026-10-04 00:19:45 +03:00
2026-10-04 00:19:45 +03:00
2026-10-08 09:07:05 +03:00

SportPath

SportPath تطبيق لياقة عربي قيد التطوير: تطبيق Flutter لـiOS وAndroid، واجهة ويب ولوحة إدارة، وواجهة PHP API مع MySQL. يدعم التتبع المحلي للتمارين، خطط التدريب ومكتبة الحركات، سجل الوجبات، تحليل صورة اختياري، وتذكيرات محلية. لا يُعد جاهزًا للإنتاج قبل إعداد مزود OTP وبيئة CloudPanel، واختبار قاعدة البيانات والنشر على staging.

بنية المشروع

  • mobile/: تطبيق Flutter، التخزين المحلي SQLite، المصادقة، المزامنة، التذكيرات، وتجربة التمرين والوجبات.
  • backend/: PHP API والمصادقة والتحقق ومخطط MySQL والترحيلات.
  • public/: نقطة دخول الموقع وصفحات /api/v1/ ولوحة /admin/.
  • deploy/: أدوات نشر الإصدارات وترحيلات قاعدة البيانات إلى CloudPanel.
  • IMPLEMENTATION_ROADMAP_AR.md: الحالة التنفيذية والمراحل والمتطلبات التي ما زالت تنتظر إعدادًا أو تحققًا خارجيًا.
  • FITNESS_PRODUCT_PLAN_AR.md: خطة المنتج والمراجع البحثية.

التطوير والاختبارات المحلية

يتطلب التطبيق Flutter SDK، ويتطلب الخادم PHP 8+ مع إضافات MySQL وملف إعدادات بيئة. شغّل الاختبارات من جذر المشروع:

for test_file in backend/tests/*_test.php; do php "$test_file" || exit 1; done
find backend public deploy -type f -name '*.php' -print0 | xargs -0 -n1 php -l
cd mobile
flutter pub get
flutter test
flutter analyze

بناء التطبيق يحتاج عنوان API حقيقي عبر HTTPS:

cd mobile
flutter build apk --dart-define=API_BASE_URL=https://your-domain.example
flutter build ios --dart-define=API_BASE_URL=https://your-domain.example

لا تضع كلمات مرور أو مفاتيح OTP أو AI أو JWT في --dart-define أو Git. تبقى الأسرار على الخادم خارج جذر الويب. mobile/README.md يشرح إعداد عنوان API وسلوك البيانات المحلية والمزامنة.

المصادقة والبيانات

تسجيل الدخول برقم هاتف دولي ورمز OTP، ثم رموز وصول وتجديد للجلسة. رمز التجديد في تطبيق الهاتف محفوظ عبر التخزين الآمن للنظام. يتطلب تشغيل OTP إعداد موفر الرسائل وبياناته السرية في بيئة الخادم؛ لا يُفترض أن التكامل الحي جاهز لمجرد وجود الواجهات.

SQLite هو مخزن الهاتف للعمل دون اتصال، وMySQL مصدر البيانات المشتركة بعد المزامنة. التمارين والوجبات مرتبطة بمالك الحساب محليًا، وسجلات outbox تنتظر الاتصال والمصادقة. تذكيرات التدريب إشعارات محلية على الجهاز. يستخدم تحليل صور الوجبات نقطة API اختيارية، ومغلق افتراضيًا إلى أن يُضبط المزود ويُفعّل على الخادم؛ نتائج السعرات تقديرية ويجب مراجعتها قبل الحفظ.

إعداد قاعدة البيانات وCloudPanel

توجد القاعدة الأولية في backend/schema.sql، والترحيلات الإضافية في backend/migrations/. لقاعدة جديدة، جهّز مستخدم MySQL محدودًا بقاعدة التطبيق واستورد المخطط وفق deploy/README.md. لقواعد موجودة، راجع إصدارها وخذ نسخة احتياطية قابلة للاستعادة قبل اختيار baseline أو تطبيق أي migration. لا يشغّل نشر Git ترحيلات قاعدة البيانات تلقائيًا.

يقرأ PHP إعداداته من environment أو من ملف .env خارج public/؛ راجع .env.example للأسماء المطلوبة. إعداد OTP وAI وJWT وMySQL وقيم CloudPanel الخاصة مسؤولية بيئة الخادم وليست محفوظة في المستودع. ابدأ بـstaging، ثم تحقق من migrations و/api/v1/health.php وواجهات الدخول قبل توجيه الإنتاج.

النشر

deploy/sync-to-server.sh ينشر commit منشورًا ونظيفًا إلى إصدار مستقل، ثم يبدل رابط current. المنفذ الافتراضي SSH هو 2101، ويمكن تغييره بـDEPLOY_PORT. لا ينشئ موقع CloudPanel أو قاعدة بيانات أو DNS/TLS، ولا يرسل بيانات اعتماد، ولا ينفذ migrations. يحتاج إلى Site User ومفتاح SSH موثوق، Git Deploy Key على الخادم، ملف بيئة خاص، وdocument root مضبوط على current/public.

راجع deploy/README.md للإعداد والمتغيرات وفحوص dry-run والاسترجاع. لا تنفذ نشرًا فعليًا قبل توفير نطاق وبيانات اتصال مصرح بها واختبار staging؛ وجود عنوان Git وحده لا يعني أن الخادم أو موفر الرسائل جاهز.

حالة الإطلاق

المشروع يتقدم محليًا، لكن ذلك لا يثبت تشغيله على خادم المستخدم. ما زالت هناك بوابات إطلاق، منها اختيار وربط موفر OTP الفعلي، إنشاء بيئة CloudPanel وقاعدة تشغيلية، اختبار migrations والنسخ الاحتياطي والاسترجاع، تعيين معرّف التطبيق النهائي، واختبار سلوك iOS وAndroid على أجهزة فعلية. قائمة مفصلة ومحدثة موجودة في IMPLEMENTATION_ROADMAP_AR.md.

S
Description
No description provided
Readme
1.6 MiB
Languages
Dart 56.6%
PHP 31.3%
Shell 5.3%
JavaScript 3.6%
Hack 2.5%
Other 0.7%