Files
fitness/mobile/README.md
T

2.1 KiB
Raw Blame History

SportPath mobile

تطبيق Flutter عربي لحفظ جلسات المشي والجري وسجل الوجبات محليًا، تسجيل الدخول برقم الهاتف، ومزامنة بيانات المستخدم مع PHP API. سجل الطعام الحالي إدخال يدوي قابل للتصحيح، وليس تحليلًا بصريًا بالذكاء الاصطناعي. يحتوي المشروع الآن منصتي iOS وAndroid؛ android/ يستخدم معرّف تطوير مؤقتًا com.example.fitness_tracker ويجب استبداله بمعرّف الحزمة الذي سيعتمده مالك المنتج قبل النشر على المتاجر.

عنوان خادم API

لا يوجد عنوان إنتاج افتراضي داخل التطبيق. مرّر نطاقًا حقيقيًا يعمل عبر HTTPS وقت البناء:

flutter build apk --dart-define=API_BASE_URL=https://fitness.example.com
flutter build ios --dart-define=API_BASE_URL=https://fitness.example.com

يستخدم التطبيق مسارات API_BASE_URL/api/v1/auth/ للمصادقة، وworkouts.php للتمارين، وmeals.php لسجل الطعام بين الأجهزة. تُحفظ وجبات الهاتف دون اتصال ثم تُرفع بمعرّف ثابت، ويُسحب آخر 30 يومًا عند فتح السجل. لا تضع مفاتيح OTP أو JWT أو قواعد البيانات في --dart-define؛ هذه تبقى على الخادم. يلزم إعداد مزود OTP وتطبيق migrations 001–005 بالترتيب على قاعدة قديمة، أو تجهيز القاعدة الجديدة من backend/schema.sql بدل تطبيق الترحيلات عليها.

جلسة التطبيق تحتفظ بـrefresh token في التخزين الآمن للنظام وتحدّث access token تلقائيًا عند استجابة 401. بيانات GPS والتمارين تبقى محليًا في SQLite/outbox إلى حين تسجيل الدخول والاتصال. لا تحذف التطبيق أو بياناته أثناء المزامنة إن كان لديك سجل غير متزامن.