هذا المشروع عبارة عن Flutter Expenses Tracker Application يسمح بإضافة وعرض المصروفات باستخدام Local Storage عبر ملفات JSON بدلاً من استخدام Database.
يعتمد التطبيق على تخزين البيانات داخل ملف محلي باستخدام File System و path_provider Package، مما يسمح بحفظ واسترجاع البيانات بشكل دائم حتى بعد إغلاق التطبيق.
التطبيق مبني باستخدام Model-Based Structure حيث يتم تمثيل البيانات داخل Expense Model Class مع استخدام toMap() و fromMap() للتحويل بين Objects و JSON Format.
مميزات التطبيق:
حفظ البيانات باستخدام JSON Local Storage
إدارة الملفات باستخدام File API
استخدام path_provider Package
تنفيذ عمليات CRUD Operations
إضافة مصروفات عبر Form Validation
استخدام TextFormField مع Form Widget
تحويل البيانات باستخدام JSON Encode & Decode
تحميل البيانات باستخدام Async/Await
عرض البيانات باستخدام ListView.builder
تحديث البيانات بعد الرجوع من الشاشة باستخدام Navigator.push + await
تنظيم المشروع باستخدام Model Class
تصميم قابل للتطوير Scalable Structure
طريقة العمل:
يقوم المستخدم بإضافة مصروف جديد من خلال شاشة AddEditExpenseScreen حيث يتم إدخال:
Date
Amount
Description
بعد الضغط على زر Save يتم حفظ البيانات داخل ملف expenses.json باستخدام LocalFileManager Class عبر JSON Encoding.
يتم تحميل المصروفات داخل ExpensesScreen باستخدام getExpenses() Method ثم عرضها باستخدام ListView.builder.
يتم تحديث البيانات تلقائياً بعد الرجوع من شاشة الإضافة باستخدام Navigator.push + await و loadExpenses() Function.