السلام عليكم ورحمة الله وبركاته جميعًا.
طرح الأخ عبد الرحمن @عبدالرحمن نصار قبل فترة تساؤلًا مهمًا في المجتمع عن غياب التطبيقات المتخصصة في المساعدة على عملية الحفظ والمراجعة وتتبع الأخطاء.
ولأنني وجدت أن هذا التساؤل قد لامس حاجة حقيقية لاحظتها شخصيًا، طورت تطبيق ويب تقدمي (PWA) يعمل على كافة الأجهزة باسم إحكام، وهو عبارة عن مفكرة تساعد حفظة القرآن الكريم على تتبع مراجعتهم، وتسجيل أخطائهم، وربط الآيات المتشابهة بشكل منظم.
فكرة التطبيق ومميزاته
يهدف إحكام إلى تحويل عملية مراجعة الحفظ إلى تجربة منظمة تعتمد على التحليل وتوجيه الحافظ للتركيز على مواطن الضعف بدقة.
ولاستخدام التطبيق يحمل أولًا المستخدم القرآن عبر النقر على زر تحميل الآن الموجود في تبويب الرئيسية.

ثم يبدأ باستخدام التطبيق ويستفيد من المميزات التالية:
جلسات التسميع
يمكن بدء جلسة تسميع مخصصة لسورة معينة، حيث يمكن التحكم بإظهار الآية التالية أو إخفاء الآية السابقة عبر أزرار مخصصة.

إضافة الأخطاء
يمكن للحافظ النقر على أي آية وتسجيل خطأ فيها وتصنيفه ضمن تصنيفات رئيسية (مثل: حفظ - تشكيل - نسيان)، وفرعية (مثل: تردد - زيادة - نقص) مع إمكانية إضافة تصنيفات مخصصة.

وتتلون الآيات في المصحف بناء على نوع الخطأ لتشكيل خريطة بصرية للمواضع التي تحتاج مراجعة.

دفتر المتشابهات
يمكن ربط الآيات المتشابهة مع بعضها، وكتابة قاعدة ضبط أو رابط ذهني شخصي للتفريق بينها، ويوفر التطبيق محرك بحث داخلي للوصول إلى المتشابهات بسهولة.

تقارير
يعرض التطبيق في التبويب الرئيسي رسومًا توضح أكثر السور ضعفًا (التي تكثر فيها الأخطاء)، وتوزيعًا لأنواع الأخطاء، مما يسمح للحافظ بتتبع مستوى تقدمه وتجاوز الأخطاء مع تكرار الختمات.

نظرة تقنية على بنية المشروع
عند التطوير حرصت على جعل التطبيق خفيفًا وسريعًا وقابلًا للعمل دون اتصال بالإنترنت بشكل كامل لكي لا ينقطع الحافظ عن مراجعته، والتفاصيل التقنية كالتالي:
- الواجهة الأمامية: استخدمت HTML و CSS و JavaScript دون الاعتماد على أطر عمل ثقيلة لضمان أعلى أداء، واستخدمت مكتبة Chart.js لتوليد الرسوم البيانية التفاعلية.
- تخزين البيانات والعمل بلا إنترنت: بدلًا من الاعتماد على LocalStorage التي تحد من الأداء عند التعامل مع بيانات معقدة، استخدمت قاعدة بيانات متصفح العميل المتقدمة IndexedDB عبر مكتبة Dexie.js، وهذا سمح هذا بتخزين النص القرآني والأخطاء والمتشابهات محليًا وضَمِن سرعة استعلام عالية.
- النسخ الاحتياطي: لضمان عدم ضياع جهد المستخدم أو مسحه بالخطأ مع ذاكرة المتصفح، وفرت ميزة تصدير كافة البيانات على شكل ملف JSON لاستعادتها لاحقًا أو نقلها لجهاز آخر.
تجربة التطبيق والمساهمة في تطويره
يمكنك تجريب التطبيق والاطلاع على كافة ميزاته بشكل مباشر عبر (تجريب تطبيق إحكام).
والمشروع مفتوح المصدر بالكامل ومتاح تحت ترخيص MIT في GitHub، وقد تم الاعتماد فيه على واجهات Quran.com API لجلب النصوص القرآنية وتهيئتها، ويسعدني أن تطلعوا على الملفات والأكواد وتشاركوني بأي اقتراحات، كما أدعوكم للمساهمة في تطويره.
وختامًا لدي سؤال أود طرحه للنقاش معكم: بصفتكم مطورين ومهتمين بالتقنيات القرآنية، ما رأيكم بالاعتماد كليًا على التخزين المحلي عبر IndexedDB في التطبيقات المشابهة لهذا التطبيق بدلًا من الاعتماد على قواعد البيانات السحابية المركزية، وهل ترون أنه يجب إضافة ميزة التزامن السحابي مستقبلًا إلى التطبيق؟
أرحب بكافة آرائكم وتجاربكم التقنية.