السلام عليكم ورحمة الله وبركاته،
أعمل حالياً ضمن فريق تطوير نظام "آية" (Ayah)، وهو نظام سحابي (SaaS) مبني ببيئة (NestJS & Prisma) مخصص لإدارة ورقمنة الحلقات القرآنية، ويهدف لتوفير أدوات دقيقة ومتكاملة للمعلمين لإدارة مسارات حفظ ومراجعة وتقييم الطلاب.
ضمن خارطة تطوير النظام، نقوم حالياً بهندسة وبناء "محرك تخطيط قرآني متقدم" (Advanced Quran Planning Engine) لتوليد الجداول بذكاء. أحببت أن أشارككم الهيكلة المقترحة والتحديات التقنية التي نواجهها، على أمل الاستفادة من خبراتكم التقنية المتميزة.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
نبذة عن المحرك الجديد
المحرك عبارة عن أداة تخطيط تعتمد على:
مصحف المدينة المنورة كمرجع أساسي صلب.
تخطيط يومي دقيق يعتمد على "الصفوف والأسطر" (بدلاً من التقسيم المعتاد القائم على عدد الآيات).
دعم خوارزميات التخطيط ثنائي الاتجاه (تصاعدي/تنازلي).
نظام هجين متعدد المسارات في الجدول الواحد (حفظ جديد + مراجعة قريبة + مراجعة بعيدة + أيام تثبيت).
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
التحديات الأساسية (Core Challenges)
- مشكلة بيانات المصحف المرجعية (Dataset)
المشكلة: لا توجد بيانات جاهزة لـ pageNumber, linesCount, thematicBreak لمصحف المدينة بشكل دقيق للأسطر.
التحدي: بناء Dataset متكامل من الصفر يتطلب دقة قطعية في:
حساب عدد أسطر كل آية (وهو المُدخل الأساسي لعمل المحرك).
تحديد مكان نهاية كل صفحة (Page Boundaries).
تحديد التقسيمات القرآنية (أرباع/أحزاب/أجزاء).
الهيكل المطلوب برمجياً لكل آية:
interface QuranAyahReference {
ayahId: number;
surahNumber: number;
ayahNumber: number;
pageNumber: number; (رقم الصفحة في مصحف المدينة)
linesCount: number; (عدد أسطر الآية الفعلي، بناءً عليه نحدد الورد)
isPageEnd: boolean;
isSurahEnd: boolean;
thematicBreak: string; (التقسيم الموضوعي ربع/حزب/جزء)
}
- خوارزمية التخطيط المعقدة
المشكلة: الانتقال من التخطيط المعتمد على عدد الآيات إلى بناء خطة يومية مبنية على مجموع أسطر مجزأة.
التحدي: تطبيق 4 قواعد بشكل متزامن (Simultaneously):
قاعدة سلامة الآية (Rule of Integrity): عدم قطع الآية في المنتصف أبداً.
الانجذاب لنهاية السورة (Surah Snapping): دمج المتبقي من السورة لورد اليوم إذا كان 3 أسطر أو أقل.
محاذاة نهاية الصفحة (Page Alignment): تمديد الورد ليقفل مع نهاية الصفحة إذا كان المتبقي 1-2 سطر.
الوقوف الموضوعي (Thematic Halting): حساب أقرب نقطة وقوف عند التقسيمات القرآنية بأقرب محاذاة ممكنة.
ملاحظة برمجية: لتجنب تعقيد الأداء ووجود while-loop ضخمة، التوجه هو فصل المنطق إلى نمط شبيه بـ (Rule Engine) لمسارات الإدخال:
advanceByLines -> snapToAyahBoundary -> applySurahSnap -> applyPageAlignment -> applyBalanceCorrection
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
التحديات المعمارية (Architectural Challenges)
- جدولة المسارات المتعددة (Multi-Track Scheduling)
المشكلة: هندسة مسارات مستقلة (مراجعة قريبة وبعيدة وحفظ) في صف بيانات يومي واحد.
التحدي: هندسة الكود لحساب الاعتماديات (Dependencies) بين الـ Tracks بحيث لا تتعارض الأوراد مع بعضها أو تُشكّل حملاً غير منطقي من الأسطر في يوم واحد.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
تحديات البيانات والتحقق (Data Challenges)
- التحقق من صحة البيانات (Dataset Validation)
المشكلة: التأكد من اكتمال واتساق هيكل بيانات المصحف بعد بنائه يدوياً.
التحدي: كتابة Tests صارمة تتحقق أتمتتياً من:
عدم وجود فجوات (Gaps) في تسلسل الـ ayahId و ayahNumber.
تطابق مجموع الأسطر المدرجة لكل صفحة مع الهيكل الحقيقي لمصحف المدينة (غالباً 15 سطراً للصفحة).
صحة ترابط التقسيمات الموضوعية.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
أسئلة للمجتمع
أحببت أن أستأنس بآرائكم وتجاربكم في النقاط التالية:
هل هناك مصادر مفتوحة لبيانات مصحف المدينة؟
هل صادفتم Datasets جاهزة وموثوقة تحتوي على هيكلة مشابهة وتحديداً حقلي (pageNumber) و (linesCount)؟
هل يوجد APIs مفتوحة توفر بيانات "عدد الأسطر الفعليّة" للآيات؟
الخوارزميات وهندسة الكود:
هل قمتم ببناء أو التعامل مع خوارزميات مشابهة تُعنى بـ (جبر الكسور القرآنية) والتخطيط الدقيق للورد؟
من واقع خبرتكم المعمارية، ما هو الـ Design Pattern الأنسب لمعالجة هذه الشروط والتراكمات دون إخلال بمعادلة الختم؟
هل هناك مشاريع مشابهة (Similar Projects) يمكن أن نتعلم منها؟
هل تبرز في بالكم مشاريع مفتوحة المصدر (Open Source Solutions) سواء تعليمية أو قرآنية عالجت تحديات المزامنة والتخطيط والاعتماديات؟
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
ختاماً
أشكركم جزيل الشكر على سعة صدركم ووقتكم. أي توجيه، نقد هندسي، أو روابط لمصادر مفيدة سيكون له أثر بالغ في تسريع عجلة هذا المشروع.
بارك الله فيكم ونفع بما تقدمون.