نبذة عن المشروع
Money Follows تطبيق لإدارة المصروفات الشخصية على أندرويد، مبني بـ React Native و Expo، ومصمم للعربية والإنجليزية من البداية مع دعم كامل لاتجاه الكتابة من اليمين لليسار (RTL). يجيب التطبيق بنظرة واحدة على سؤال: "كم يمكنني أن أصرف اليوم؟"، ويجعل تسجيل أي دفعة يستغرق ثواني: بلوحة أرقام، أو بكتابتها بكلام عادي، أو بالصوت، أو بتصوير الإيصال، أو بإضافة دفعة وجدها التطبيق في رسائل البنك.
كل البيانات محفوظة على الهاتف في قاعدة SQLite، فيعمل التطبيق بالكامل بدون إنترنت. ويُستخدم الذكاء الاصطناعي حيث يوفّر الجهد، ولا يُستخدم أبداً حيث يمكن أن يخطئ في رقم.
أهم المميزات
- شاشة رئيسية توضح ما يمكنك صرفه اليوم وهذا الأسبوع وفي شهر الراتب، مع مؤشر الالتزام بالوتيرة وتوقع الإنفاق وآخر الدفعات مجمعة حسب اليوم
- خمس طرق لإضافة دفعة: لوحة أرقام، وإدخال ذكي من جملة مكتوبة ("غداء 150 وتاكسي 60")، وإدخال صوتي بالعربية أو الإنجليزية مع موجات صوت حية، وقراءة صورة الإيصال، ودفعات مستخرجة من رسائل البنك
- التقاط رسائل البنك عبر وحدة أصلية مكتوبة بـ Kotlin: تُحلَّل الرسائل على الهاتف فقط ومن المرسلين الذين تختارهم، ولا يُحفظ شيء حتى تضغط "إضافة"
- محادثة "اسأل بياناتك" (بالكتابة أو بالصوت): يختار الذكاء الاصطناعي الاستعلامات من قائمة ثابتة، وينفذها التطبيق بـ SQL، وتأتي الإجابة مع رسم بياني من البيانات نفسها
- ميزانيات لكل فئة وخطة راتب تحدد الميزانية الشهرية ومصروفاً أسبوعياً، مع إمكانية بدء الشهر من يوم الراتب
- تقارير أسبوعية وشهرية وسنوية أو لفترة مخصصة: حلقة الفئات، وأعمدة يومية وشهرية، وأكثر التجار إنفاقاً، والضروريات مقابل الكماليات، والإنفاق مقابل الوتيرة، وتصدير PDF، وملخص اختياري بالذكاء الاصطناعي
- تقويم للإنفاق اليومي، وبحث وتصفية للمعاملات، وتقسيم الدفعات، والمشاريع، وأهداف الادخار، والفواتير والدخل المتكرر
- اكتشاف الاشتراكات تلقائياً من سجل الدفعات، وقواعد للتجار يتعلمها التطبيق من تصحيحاتك
- تذكيرات يومية وتذكيرات بالفواتير، وصور الإيصالات، واستيراد CSV، ونسخ احتياطي واستعادة JSON، وقفل التطبيق بالبصمة أو الوجه، والوضع الداكن، والتاريخ الهجري اختيارياً
ذكاء اصطناعي آمن
النموذج اللغوي لا يجري أي عملية حسابية أبداً. يقتصر دوره على تحويل النص إلى بيانات منظمة، أو اختيار الاستعلامات، أو صياغة أرقام حسبها التطبيق مسبقاً. كل إجابة يتم التحقق منها بـ Zod، وتُحوَّل المبالغ إلى وحدات صحيحة في الكود، وإذا أخطأ النموذج في مبلغ بمقدار 10 أو 100 أو 1000 ضعف يُعاد إلى الرقم الذي كتبته مع تنبيه، وكل إدخال ذكي يمر بشاشة تأكيد قبل الحفظ. وإذا ذكرت فئة غير موجودة ("جيم 300 رياضة") يعرض التطبيق إنشاءها.
يعمل التطبيق على نماذج OpenRouter المجانية: يكتشف النماذج المتاحة يومياً، ويرتبها حسب الجودة المقاسة، ويتخطى النماذج المتعطلة أو المحدودة، ويضع حداً لمدة كل طلب، ويتعرف على الحد اليومي المجاني حتى لا يُهدر أي طلب. كما توجد أداة تقييم تقيس دقة الإدخال الذكي و"اسأل بياناتك" على النماذج الحقيقية.
الخصوصية والجودة
لا يُرسل للنموذج إلا الحد الأدنى: لا ملاحظات، وتُخفى أرقام البطاقات والحسابات، ورسائل البنك لا تغادر الهاتف أبداً. ويغطي المشروع أكثر من 1,800 اختبار آلي (Jest و React Native Testing Library)، منها اختبارات تشغّل نظام التنقل الحقيقي، وتم التحقق من الميزات الأساسية بكسرها عمداً للتأكد من أن اختباراً يكتشف التغيير.
تم بناء المشروع بالكامل: تصميم المنتج، وواجهة الجوال مع الحركة ودعم RTL، وقاعدة البيانات المحلية وترحيلاتها، وتكامل الذكاء الاصطناعي، ووحدة أندرويد أصلية، ومجموعة الاختبارات.

