Skip to content

Repository files navigation

اِقْرَأْ — تعليم القراءة العربية لطفل السادسة

اِقْرَأْ — يعلّم طفلك قراءة العربية، من الحرف الأول إلى القرآن. (اسمُ المشروع في سجلاته التاريخية «المُعلِّم»؛ العلامةُ «اِقْرَأْ» منذ ٨ أغسطس ٢٠٢٦ — docs/REVIEW_BRAND.md.)

تطبيق ويب (بلا أدوات بناء) يعلّم الطفل القراءة العربية على أساس القاعدة النورانية مطوَّعةً بأربعة مبادئ:

  1. ترتيب الحروف بالتواتر لا بالأبجدية — يقرأ الطفل كلمات حقيقية من الأيام الأولى.
  2. كلمات من عالم الطفل مشتركة بين الفصحى واللهجات (مراعاة الازدواجية اللغوية).
  3. مفكوكية ١٠٠٪ — لا يُعرض على الطفل حرف أو علامة لم تُدرَّس بعد، ويُفحص ذلك آلياً.
  4. مسار واحد ينتهي بالتهيئة لتلاوة القرآن الكريم.

التشغيل

python3 -m http.server 8000 -d app
# ثم افتح http://127.0.0.1:8000/  (أضف ?dev=1 لأدوات التجربة وفحص الأصوات)

«المرجع التعريفيّ» (للمعلمين والمدارس)

‎/welcome/موقعٌ من أربع صفحاتٍ بقشرةٍ واحدة وشريطِ تنقّلٍ واحد على شجرة النشر نفسها (http://127.0.0.1:8000/welcome/ محلياً):

الصفحة ما فيها
‎/welcome/ البوّابة في ثلاثين ثانية: ما هو ولمن، وأربعةُ فروقٍ تميّزه، وأرقامٌ ولقطات
‎/welcome/curriculum.html المنهج: الرحلة محطةً محطة — بطاقةٌ لكل نوع محطة، وخطٌّ زمنيّ، وجداول، ولقطةٌ لكلٍّ
‎/welcome/method.html الأسس: المذهب العلميّ ومسوّغاتُنا المعلَنة وحدودُ النطاق والمراجع
‎/welcome/guide.html الدليل العملي: البيت والصفّ، ولوحةُ وليّ الأمر، و?dev=1، والتثبيت والنسخة الاحتياطية

وتُطبَع طباعةً نظيفة (@media print) بترويسةٍ فيها علامةُ التطبيق وعنوانُ الموقع — فتخرج ورقةً تُسلَّم لمدرسة. وللتطبيق بابٌ إليها في ذيل خريطته («تعريفٌ بالمنهج»).

وهي خارج التطبيق وخارج قشرة عامل الخدمة عمداً: لا تُخزَّن، ولا تسجّل عاملاً، ولا تصل بيان التطبيق، ولا تحمل سطر جافاسكربت واحداً — فلا أثر لها على PWA المثبَّتة. وزرّ «ابدأ الآن» ينقل إلى التطبيق (../).

python3 tools/make_welcome_shots.py          # يولّد لقطات الرحلة من شاشات التطبيق نفسِها
python3 tools/make_welcome_shots.py --check  # تحقّق منها بلا توليد

بنية المشروع

المسار الدور
docs/METHOD.md المنهج التعليمي الملزم
docs/SESSIONS.md خطة جلسات التنفيذ وحالتها
app/js/curriculum.js مصدر الحقيقة لبيانات المنهج (الحروف والمجموعات والمهارات والقصص والمرحلة القرآنية)
app/data/lexicon.json معجم «حديقة الكلمات» — ٢٥٠ كلمة في عشرة بساتين (طبقة ب١)
app/welcome/ «المرجع التعريفيّ» — أربعُ صفحاتٍ (خارج قشرة عامل الخدمة) ولقطاتُها المولَّدة الثلاثَ عشرةَ
app/audio/ أصوات مولّدة مسبقاً (Gemini TTS) — تُستبدل بتسجيلات بشرية دون تغيير الشيفرة
tools/ توليد الأصوات، عدّة التسجيل البشري، فحص المفكوكية، اختبارات التقدّم
ref/ المرجعان: القاعدة النورانية والدروس الهجائية (PDF)

الأصوات

كل نصّ في المنهج له ملف app/audio/<key>.mp3 واسمه sha1 لنصّه العربي — فاستبدال أي ملف بتسجيل بشري لا يمسّ سطراً من الشيفرة. ولأنّ الاسم من النصّ لا من المحتوى، يكتب المولّد مع الفهرس بيانَ بصمات المحتوى app/audio/versions.json (أول ٨ من sha1 البايتات) يطلب به التطبيق <key>.mp3?v=<بصمة> — فيكسر استبدالُ صوتٍ كاشَ ملفه وحده على كل جهاز، ولولاه بقي مَن خزّن القديم على القديم أبداً.

.venv/bin/python tools/generate_audio.py                 # الناقص فقط (Gemini TTS)
.venv/bin/python tools/generate_audio.py --force         # إعادة توليد الكل
.venv/bin/python tools/generate_audio.py --audition      # صفحة مفاضلة أصوات
.venv/bin/python tools/generate_audio.py --verify-only   # تحقّق: لا ناقص ولا يتيم ولا مبتور ولا بصمة قديمة
.venv/bin/python tools/generate_audio.py --sync-versions  # إعادة اشتقاق بصمات المحتوى (بلا شبكة)
.venv/bin/python tools/generate_audio.py --engine edge   # المحرّك الاحتياطي (مايكروسوفت)

.venv/bin/python tools/generate_audio.py --queue-status   # قائمة الانتظار (docs/AUDIO_QUEUE.md)
.venv/bin/python tools/generate_audio.py --from-queue --rpm 8   # تصريف القائمة على حصة اليوم

.venv/bin/python tools/recording_list.py                 # قائمة تسجيل للمعلّم البشري
.venv/bin/python tools/import_recordings.py ~/rec        # استيراد التسجيلات (قصّ + تطبيع)

ونصّ المصحف خارج هذا كلّه (METHOD §٥.٦): لا يُولَّد صوتُه ولا يُنطق آلياً — تلاوتُه من تسجيل قارئٍ متقن، مسارُها مستقلّ عن المولّد وعن فهرسه:

python3 tools/fetch_recitation.py                        # تلاوة الآيات (الحصري المرتّل)
python3 tools/fetch_recitation.py --sync-only            # إعادة بناء بيانها بلا شبكة
python3 tools/fetch_word_recitation.py --sources         # تلاوة الكلمة المفردة: حال ترخيص كل مصدر
python3 tools/fetch_word_recitation.py --dry-run         # ما سيُجلب ومن أين (بلا شبكة)

جلبُ تلاوة الكلمة مقفلٌ ببوّابة ترخيص: لا يعمل حتى يُقِرّ إنسانٌ قرأ رخصةَ المصدر (--approve-license) ويُسنِده في CREDITS.md. وحتى ذلك تعمل محطات «كلمات السورة» صامتةً.

المفتاح GEMINI_API_KEY يُقرأ من البيئة أو من .env (غير مُتتبَّع في git ولا يُطبع).

الفحوص

python3 tools/check_decodable.py     # مفكوكية المنهج والتغطية
python3 tools/check_lexicon.py       # مفكوكية المعجم ومقاطعه وتفرّده (يرث فاحص المنهج)
python3 tools/icon_audit.py          # جرد الأيقونات وحارس التباسها (docs/REVIEW_ICONS.md)
node tools/test_icons.mjs            # «صدق الصورة»: المستعصية لا تُسأل بصورتها وتبقى في التهجئة
python3 tools/test_queue.py          # تصريف قائمة الانتظار الصوتية (بلا شبكة)
node tools/test_progress.mjs         # قواعد القفل والنجوم وسجلّ المهارات والتكرار المتباعد
node tools/test_gate.mjs             # بوابتا الإتقان: موضعهما وعتبتهما ومادّتهما والترحيل الرحيم
node tools/test_contrast.mjs         # محطتا «ميّز بين»: أزواج المتشابهات ومفكوكيتها وقياسها
node tools/test_fade.mjs             # خفوت التشكيل ز١→ز٣: العتبة والدرجات وحصانة التهجّي والمصحف
node tools/test_lesson.mjs           # مفكوكية جولات درس الحرف
node tools/test_words.mjs            # مفكوكية ألواح لعبة الكلمات وتغطية أصواتها
node tools/test_review.mjs           # جلسة المراجعة (مفكوكيتها وتغطية أصواتها) واللوحة
node tools/test_quran.mjs            # المرحلة القرآنية وأصالة نصّ المصحف و«الجسر القرآني» (كلمات السورة)
node tools/test_lexicon.mjs          # المعجم والبساتين ووصل قياسها بالمراجعة
node tools/test_pwa.mjs              # العمل دون إنترنت
node tools/test_welcome.mjs          # الصفحة التعريفية: خارج القشرة، وأرقامها محسوبة من المنهج
node tools/test_audio_cache.mjs      # بصمات المحتوى وكسر كاش الصوت (سيناريو استبدال كامل)
python3 tools/browser_test.py        # درس الحرف في Chrome حقيقي
python3 tools/browser_test.py --words    # لعبة الكلمات في Chrome حقيقي (المجموعات السبع)
python3 tools/browser_test.py --review   # المراجعة اليومية ولوحة وليّ الأمر في Chrome حقيقي
python3 tools/browser_test.py --story    # دروس المهارات وشاشة قراءة القصص
python3 tools/browser_test.py --quran    # المرحلة القرآنية والعمل دون إنترنت
python3 tools/browser_test.py --garden   # بساتين الموضوعات (حديقة الكلمات)
python3 tools/browser_test.py --gate     # بوابتا الإتقان (عبور وإخفاق وإعادة وترحيل)
python3 tools/browser_test.py --contrast # محطتا «ميّز بين» (المواجهة و«اسمع الفرق»)
python3 tools/browser_test.py --fade     # خفوت التشكيل: عبور العتبة والكشف عند الطلب وارتداد الدرجة
python3 tools/browser_test.py --map      # الخريطة: جبهة الفتح والطيّ الكسول وقياس سرعتهما
python3 tools/browser_test.py --welcome  # الصفحة التعريفية: صفر طلبٍ خارجي، ولا يبتلعها عامل الخدمة
python3 tools/browser_test.py --device   # مقاسات آيباد حقيقية: لا سحبَ في الوضع العرضي ولا فائض أفقي
python3 tools/browser_test.py --device --metrics   # معايرة توسيط الحرف البطل في صندوقه

ولقطةُ شاشةٍ واحدة بمقاس جهاز (للمراجعة البصرية، و--flat تعطّل رفعة الحرف لصورة «قبل»):

python3 tools/browser_test.py --device --shots out.png --screen lesson-listen --size 1180,820

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages