8000 GitHub - ganjoor/ghazal-mhkarami · GitHub
[go: up one dir, main page]

Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

غـــــزل (Ghazal)

وب‌اپلیکیشن پیشرفته PWA شعر فارسی، آموزش ادبی و حفظ اشعار با تکرار فاصله‌دار

«غزل» یک سامانهٔ جامع، آفلاین‌محور و کاملاً کلاینت‌ساید برای ادب‌دوستان پارسی است که چهار کارکرد اصلی را در یک رابط کاربری یکپارچه، راست‌به‌چپ (RTL) و واکنش‌گرا ترکیب کرده است:

  1. کتابخانه و مرور اشعار: مرور درختی دیوان‌های ۲۴۲ شاعر پارسی‌گوی با قابلیت دانلود انتخابی برای استفاده کاملاً آفلاین.
  2. آموزش و نقد ادبی: شناسایی صنایع بلاغی (بدیع و بیان) بر روی تک‌تک کلمات ابیات، اوزان عروضی و استناد به مقالات علمی.
  3. کاوش و تبارشناسی: نقشه جغرافیایی دیارها و شهرها، خط زمان مفاخر و درخت روابط خانوادگی اساطیری تفکیک‌شده به ازای هر اثر (نظیر شاهنامه فردوسی).
  4. حفظ شعر و آزمون‌های هفت‌گانه: جعبه لایتنر هوشمند مبتنی بر الگوریتم تکرار فاصله‌دار SM-2 با آزمون‌های جای خالی (Cloze)، مرتب‌سازی، گزینه‌ای، تایپ با انطباق فازی، حدس شاعر، حدس آرایه و محوشدن تدریجی کلمات.

🛠 فناوری‌ها و دلایل انتخاب پکیج‌ها

پکیج نسخه دلیل انتخاب و کارکرد در پروژه
Vue 3 ^3.5.13 هسته اصلی واکنش‌گرای برنامه با Composition API و کارایی بالا در رندر ابیات طولانی
TypeScript ^5.7.2 تضمین سلامت نوع داده‌ها منطبق بر مدل داده Schema v4 گنجور
Vite ^5.4.11 سریع‌ترین ابزار باندل مدرن با پشتیبانی درجه یک از وب‌ورکرها
Tailwind CSS ^3.4.17 پایدارترین نسخه برای استایل‌دهی سریع، بهینه‌سازی تم روشن/تاریک و RTL
Pinia ^2.3.0 مدیریت وضعیت سبک، واکنش‌گرا و ماژولار بدون بار پردازشی اضافی
Dexie (IndexedDB) ^4.0.11 سریع‌ترین لایه انتزاعی IndexedDB برای ذخیره صدها مگابایت شعر به صورت آفلاین
vite-plugin-pwa ^0.21.1 ایجاد Service Worker بهینه، پشتیبانی از حالت Standalone و کشینگ App Shell
Lucide Vue Next ^0.468.0 مجموعه آیکون‌های وکتوری مدرن و بسیار سبک
Leaflet ^1.9.4 سبک‌ترین کتابخانه نقشه تعاملی کلاینت برای نمایش دیارهای ادبی ایران و خراسان بزرگ
canvas-confetti ^1.9.4 بازخورد انگیزشی پس از اتمام موفقیت‌آمیز جلسات مرور و آزمون

📦 منبع داده و راهکار پین کردن نسخه (Data Pinning)

  • منبع داده: ریپازیتوری استاتیک MHKarami97/ganjoor-data از طریق شبکه لبه jsDelivr CDN.
  • نسخه متعهد پین‌شده:
    export const DATA_COMMIT_SHA = '34f4ab3e463903f9399d7ca208b9333911389f94';
    export const SUPPORTED_SCHEMA_VERSION = 4;
  • علت پین کردن به SHA به جای @main:
    • جلوگیری از شکستن کلاینت در زمان تغییر ساختار داده‌ها.
    • فعال شدن کش پایدار (Immutable) در CDN و مرورگر تا ۳۶۵ روز بدون خطر دریافت داده‌های ناقص.
    • اعتبارسنجی schemaVersion: نسخه ۴ از ایندکس‌گذاری ابیات از ۰ و کل شعر با ۱- استفاده می‌کند. در صورت عدم تطابق با نسخه کلاینت، فرآیند دانلود با پیام هشدار متوقف می‌شود.
  • استقلال داده‌های کاربر:
    • نشانک‌ها، یادداشت‌ها و کارت‌های حفظ با PoemId و CoupletIndex ذخیره می‌شوند و حتی در صورت به‌روزرسانی مسیر فایل‌ها یا متن، داده‌های کاربر پایدار می‌مانند.

🧠 سیستم تکرار فاصله‌دار (SM-2) و آزمون‌ها

الگوریتم SuperMemo 2 (SM-2) به دلایل زیر برای این پروژه انتخاب شده است:

  1. عملکرد کاملاً قطعی و سبک بدون نیاز به محاسبات سنگین ریاضی در محیط کلاینت.
  2. تطابق بی‌نقص با فواصل به خاطر سپاری متون منظوم و ابیات.
  3. قابلیت تنظیم ضریب آسانی (Ease Factor) با کف ۱.۳ برای جلوگیری از فشرده شدن بیش از حد دوره‌ها.

۷ حالت آزمون تعاملی:

  1. تکمیل مصرع (Cloze): حذف یک کلمه کلیدی از مصرع و انتخاب از بین ۴ گزینه.
  2. ترتیب‌دهی کلمات (Reorder): لمس کلمات درهم‌ریخته برای چیدمان صحیح بیت.
  3. انتخاب مصرع دوم (Multiple Choice): انتخاب ادامه بیت از ۴ گزینه.
  4. تایپ بیت از حفظ (Typing): تایپ مصرع با الگوریتم لون‌اشتاین (تحمل خطای املایی و نرمال‌سازی فارسی).
  5. حدس شاعر (Guess Poet): تشخیص سراینده بیت از بین مفاخر شعر پارسی.
  6. تشخیص آرایه (Guess Device): تشخیص صنایع بلاغی (تشبیه، استعاره، کنایه، ایهام...) همراه با توضیح.
  7. محوشدن تدریجی (Progressive Word Hiding): محو کردن گام‌به‌گام ۲۵٪ تا ۱۰۰٪ کلمات برای تمرین ذهنی.

🚀 راه‌اندازی و توسعه محلی

پس از رفع محدودیت اتصال شبکه در سیستم، با دستور زیر وابستگی‌ها را نصب و سرور توسعه را اجرا کنید:

# نصب پکیج‌ها
npm install

# اجرای سرور توسعه محلی
npm run dev

# ساخت نسخه نهایی PWA
npm run build

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0