«غزل» یک سامانهٔ جامع، آفلاینمحور و کاملاً کلاینتساید برای ادبدوستان پارسی است که چهار کارکرد اصلی را در یک رابط کاربری یکپارچه، راستبهچپ (RTL) و واکنشگرا ترکیب کرده است:
- کتابخانه و مرور اشعار: مرور درختی دیوانهای ۲۴۲ شاعر پارسیگوی با قابلیت دانلود انتخابی برای استفاده کاملاً آفلاین.
- آموزش و نقد ادبی: شناسایی صنایع بلاغی (بدیع و بیان) بر روی تکتک کلمات ابیات، اوزان عروضی و استناد به مقالات علمی.
- کاوش و تبارشناسی: نقشه جغرافیایی دیارها و شهرها، خط زمان مفاخر و درخت روابط خانوادگی اساطیری تفکیکشده به ازای هر اثر (نظیر شاهنامه فردوسی).
- حفظ شعر و آزمونهای هفتگانه: جعبه لایتنر هوشمند مبتنی بر الگوریتم تکرار فاصلهدار 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 |
بازخورد انگیزشی پس از اتمام موفقیتآمیز جلسات مرور و آزمون |
- منبع داده: ریپازیتوری استاتیک
MHKarami97/ganjoor-dataاز طریق شبکه لبه jsDelivr CDN. - نسخه متعهد پینشده:
export const DATA_COMMIT_SHA = '34f4ab3e463903f9399d7ca208b9333911389f94'; export const SUPPORTED_SCHEMA_VERSION = 4;
- علت پین کردن به SHA به جای
@main:- جلوگیری از شکستن کلاینت در زمان تغییر ساختار دادهها.
- فعال شدن کش پایدار (Immutable) در CDN و مرورگر تا ۳۶۵ روز بدون خطر دریافت دادههای ناقص.
- اعتبارسنجی
schemaVersion: نسخه ۴ از ایندکسگذاری ابیات از ۰ و کل شعر با ۱- استفاده میکند. در صورت عدم تطابق با نسخه کلاینت، فرآیند دانلود با پیام هشدار متوقف میشود.
- استقلال دادههای کاربر:
- نشانکها، یادداشتها و کارتهای حفظ با
PoemIdوCoupletIndexذخیره میشوند و حتی در صورت بهروزرسانی مسیر فایلها یا متن، دادههای کاربر پایدار میمانند.
- نشانکها، یادداشتها و کارتهای حفظ با
الگوریتم SuperMemo 2 (SM-2) به دلایل زیر برای این پروژه انتخاب شده است:
- عملکرد کاملاً قطعی و سبک بدون نیاز به محاسبات سنگین ریاضی در محیط کلاینت.
- تطابق بینقص با فواصل به خاطر سپاری متون منظوم و ابیات.
- قابلیت تنظیم ضریب آسانی (Ease Factor) با کف ۱.۳ برای جلوگیری از فشرده شدن بیش از حد دورهها.
- تکمیل مصرع (Cloze): حذف یک کلمه کلیدی از مصرع و انتخاب از بین ۴ گزینه.
- ترتیبدهی کلمات (Reorder): لمس کلمات درهمریخته برای چیدمان صحیح بیت.
- انتخاب مصرع دوم (Multiple Choice): انتخاب ادامه بیت از ۴ گزینه.
- تایپ بیت از حفظ (Typing): تایپ مصرع با الگوریتم لوناشتاین (تحمل خطای املایی و نرمالسازی فارسی).
- حدس شاعر (Guess Poet): تشخیص سراینده بیت از بین مفاخر شعر پارسی.
- تشخیص آرایه (Guess Device): تشخیص صنایع بلاغی (تشبیه، استعاره، کنایه، ایهام...) همراه با توضیح.
- محوشدن تدریجی (Progressive Word Hiding): محو کردن گامبهگام ۲۵٪ تا ۱۰۰٪ کلمات برای تمرین ذهنی.
پس از رفع محدودیت اتصال شبکه در سیستم، با دستور زیر وابستگیها را نصب و سرور توسعه را اجرا کنید:
# نصب پکیجها
npm install
# اجرای سرور توسعه محلی
npm run dev
# ساخت نسخه نهایی PWA
npm run build