تفاصيل العمل

Chatify تطبيق محادثات فورية بنيته بـ Flutter وFirebase: محادثات فردية وجماعية، ورسائل نصية وصور تصل لحظيًا، مع حالة نشاط كل مستخدم. الواجهة داكنة، عربية (من اليمين لليسار) وإنجليزية بزر تبديل واحد. مشروع شخصي نفذته لتطبيق المحادثات الفورية على Firebase، وجعلت رفع الوسائط فيه عبر Cloudinary.

المميزات:

- إنشاء حساب بالاسم والبريد وكلمة المرور مع صورة شخصية، وتسجيل الدخول والخروج، مع رسائل خطأ واضحة عند فشل الدخول أو التسجيل.

- قائمة المستخدمين مع بحث بالاسم (يدعم الأسماء العربية)، وبجانب كل مستخدم حالة نشاطه وآخر نشاط له بوقت نسبي.

- بدء محادثة فردية، أو اختيار أكثر من مستخدم لإنشاء محادثة جماعية.

- رسائل نصية وصور تظهر لحظيًا عند الطرفين، مع وقت نسبي لكل رسالة واسم المرسل في المحادثات الجماعية.

- قائمة المحادثات تعرض آخر رسالة ووقتها، ومؤشر كتابة عندما يكتب أحد أطراف المحادثة.

- حذف المحادثة بعد تأكيد.

- حالات واضحة للتحميل والخطأ والقوائم الفارغة مع إعادة المحاولة.

- تبديل اللغة بين العربية والإنجليزية من داخل التطبيق، والأوقات النسبية باللغة المختارة.

الجانب التقني:

- Firebase Authentication لتسجيل الدخول، وCloud Firestore لتخزين المحادثات والرسائل ومزامنتها لحظيًا عبر Streams.

- رفع الصورة الشخصية وصور المحادثات إلى Cloudinary وحفظ الرابط فقط في Firestore، فيبقى تخزين الوسائط مستقلًا عن قاعدة البيانات.

- إدارة الحالة بـ Provider بأسلوب MVVM: Provider مستقل للمصادقة، وقائمة المحادثات، وصفحة المحادثة، والمستخدمين.

- طبقة Services منفصلة عن الواجهة (قاعدة البيانات، التخزين، اختيار الملفات، التنقل) ومسجلة بـ get_it.

- الترجمة بـ easy_localization وخط IBM Plex Sans Arabic.

- اختبار Golden يرسم الشاشات ببيانات تجريبية باللغتين، ومنه صور هذا العمل.

التقنيات: Flutter، Dart، Firebase Authentication، Cloud Firestore، Cloudinary، Provider، get_it، easy_localization.

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
تاريخ الإضافة
تاريخ الإنجاز
المهارات