عتبر مشروع تطبيق إدارة المهام (Task Management App) من التطبيقات البسيطة والمهمة التي تساعد المستخدمين على تنظيم أعمالهم اليومية بشكل أفضل.
فكرة التطبيق تقوم على إضافة قائمة من المهام (To-Do List) حيث يستطيع المستخدم تسجيل المهام التي يريد إنجازها، ثم متابعتها وإدارتها بسهولة من خلال الواجهة الرسومية.
أهداف المشروع
إدارة الوقت: مساعدة المستخدم على ترتيب أولوياته اليومية.
تنظيم المهام: تقسيم الأعمال إلى مهام صغيرة يسهل إنجازها.
سهولة الاستخدام: توفير واجهة رسومية بسيطة تعتمد على الأزرار والقوائم.
الاختبار: تنفيذ جميع أنواع الاختبارات مثل Functional Testing و Validation Testing للتأكد من أن التطبيق يعمل كما هو متوقع.
️ وظائف التطبيق الأساسية
إضافة مهمة جديدة: يستطيع المستخدم كتابة اسم المهمة في خانة الإدخال، ثم الضغط على زر "Add" لتظهر المهمة مباشرة في القائمة.
عرض المهام الحالية: يتم عرض جميع المهام في قائمة واضحة يمكن التفاعل معها.
تحديد المهام كمكتملة: عند الانتهاء من مهمة معينة، يمكن للمستخدم تحديدها على أنها "Completed" بحيث تظهر بشكل مميز (️ أو بخط مشطوب).
حذف المهام: يمكن للمستخدم حذف أي مهمة لم يعد بحاجة إليها عبر زر "Delete".
️ التحقق من صحة المدخلات (Validation)
تم الاهتمام بالتحقق من المدخلات لتفادي الأخطاء الشائعة، ومن ذلك:
عدم السماح بإضافة مهمة فارغة.
إظهار رسالة خطأ مناسبة إذا حاول المستخدم الحذف دون اختيار أي مهمة.
التأكد من أن كل العمليات (Add – Delete – Mark Done) تتم بشكل صحيح.
? أهمية الاختبار في المشروع
تم إنشاء Test Cases لتغطية جميع السيناريوهات، ومنها:
إدخال مهمة صحيحة وإضافتها بنجاح.
محاولة إدخال مهمة فارغة.
حذف مهمة موجودة.
محاولة الحذف بدون تحديد أي مهمة.
تحديد مهمة كمكتملة والتحقق من تغيير حالتها.
مخرجات المشروع
الكود المصدري (Java Swing): ملف يحتوي على الواجهة الرسومية وجميع العمليات (إضافة، حذف، تعديل حالة).
لقطات شاشة (Screenshots): توضح واجهة التطبيق أثناء التشغيل، إضافة مهمة، وحذف مهمة.
تقرير اختبار (Test Cases Report): يوثق جميع سيناريوهات الاستخدام المتوقعة مع النتائج الفعلية والمتوقعة.
الفوائد العملية للمشروع
هذا المشروع يمثل مثالًا عمليًا لكيفية بناء تطبيق مكتبي (Desktop Application) باستخدام Java Swing، وهو يوضح أهمية التحقق من صحة البيانات (Validation) و الاختبارات الوظيفية (Functional Testing) في بناء أي نظام برمجي. كما يساعد الطلاب والمبتدئين على فهم مبادئ:
تصميم الواجهات الرسومية.
التعامل مع الأحداث (Event Handling).
تنظيم الكود وتحسين تجربة المستخدم.