قمت بتطوير موديول User Profile لتطبيق Flutter باستخدام GetX وFirebase، مع الالتزام بنمط MVVM + Clean Architecture. يعرض هذا الموديول المهارات في تنظيم الكود، بناء مكونات UI قابلة لإعادة الاستخدام، والتكامل الكامل مع Firebase.
الشاشات التي تم تنفيذها:
شاشة البروفايل (Profile Screen):
تعرض صورة واسم وإيميل المستخدم.
زرين: تعديل الحساب (Edit Profile)، طلباتي (My Orders).
شاشة تعديل الحساب (Edit Profile):
يمكن للمستخدم تعديل الاسم.
رفع صورة جديدة للبروفايل.
حفظ التعديلات مباشرة في Firestore، ورفع الصورة لـ Firebase Storage.
شاشة طلباتي (My Orders):
تعرض قائمة الطلبات السابقة للمستخدم.
يتم جلب البيانات من Firestore بشكل مباشر.
? المعمارية (MVVM + Clean Architecture):
يتم تقسيم الكود تنظيميًا إلى:
bash
Copy
Edit
lib/
├── core/
│ ├── constants/ # الألوان، المقاسات، الأنماط
│ ├── widgets/ # الأزرار والحقول المعاد استخدامها
│
├── data/
│ ├── models/ # UserModel، OrderModel
│ ├── services/ # FirebaseServices
│
├── modules/
│ ├── profile/
│ │ ├── views/
│ │ ├── controllers/
│ │ ├── viewmodels/
│ │ └── bindings/
│ └── orders/
│ ├── views/
│ ├── controllers/
│ └── bindings/
└── main.dart
التقنيات المستخدمة:
Flutter
GetX (Routing, State Management, Bindings)
Firebase:
Firestore (تخزين بيانات المستخدم والطلبات)
Firebase Storage (رفع صور المستخدم)
Firebase Auth (للحصول على بيانات المستخدم الحالي)
المميزات التقنية:
إدارة الحالة باستخدام GetX Controllers
? استخدام Widgets قابلة لإعادة الاستخدام (أزرار، حقول، AppBars)
? تقسيم واضح للمهام (Views - ViewModels - Controllers)
تصميم متناسق باستخدام constants مركزية