عن المشروع
## نظرة عامة
GRE Zhenkao 3000 هو تطبيق ويب تقدمي (PWA) خالص للواجهة الأمامية لتعلم مفردات GRE، مصمم للمتقدمين لاختبار GRE. يتضمن قاعدة المفردات الكاملة لـ «GRE Zhenkao 3000 كلمة (نسخة غير مرتبة)» (إجمالي 3275 مدخلًا، تشمل المعاني بالصينية والرموز الصوتية وأمثلة إنجليزية)، ويعتمد منحنى النسيان لإبينغهاوس لترتيب فترات المراجعة، مما يساعد المستخدمين على حفظ الكلمات بكفاءة.
## الميزات الأساسية
- **الكلمات الجديدة اليومية**: افتراضيًا 100 كلمة جديدة يوميًا، قابلة للتعديل في الإعدادات (50–150، بخطوة 10). تُختار الكلمات الجديدة من الكلمات غير المتعلمة وفق ترتيب القائمة غير المرتبة.
- **المراجعة المتباعدة وفق إبينغهاوس**: لكل بطاقة 8 مراحل (0–7)، بفواصل تتراوح من 8 دقائق إلى 15 يومًا، وتُعدَّل ديناميكيًا وفق أداء المستخدم عبر عامل ease (القيمة الأولية 2.5، إجابة صحيحة +0.1، خاطئة −0.2)، وزمن الانتظار الفعلي = الفاصل الأساسي × (ease / 2.5).
- **نمط أسئلة المراجعة**: عرض الكلمة الإنجليزية واختيار المعنى الصيني الصحيح من 4 خيارات (1 صحيح + 3 مشتتات).
- **متاح دون اتصال**: قاعدة المفردات مضمنة في التطبيق، وبعد الفتح الأول يخزّن Service Worker هيكل التطبيق وبيانات المفردات مؤقتًا، فيمكن الحفظ دون اتصال لاحقًا.
- **PWA قابل للتثبيت**: يدعم الإضافة إلى الشاشة الرئيسية للهاتف (iOS Safari / Android Chrome) والتشغيل في نافذة مستقلة.
- **تطبيق سطح المكتب**: يوفر حزمة تثبيت لنظام macOS (مبنية بـ Electron)، ويمكن بناء نسخة Linux محليًا.
- **اختصارات لوحة المفاتيح**: في صفحة الكلمات الجديدة، مسافة/إدخال لعرض المعنى، و1/2/3 لتمييز غير معروفة/غامضة/معروفة؛ في صفحة المراجعة، 1–4 لاختيار الإجابة، ومسافة/إدخال للسؤال التالي.
## الواجهة والتنقل
أربعة مداخل في الأسفل:
- **اليوم**: لوحة التقدم، تعرض حالة التعلم اليوم وعدد أيام المتابعة المتتالية وغيرها.
- **التعلم**: صفحة تعلم الكلمات الجديدة، الكلمة في الأعلى، والمعنى مطوي افتراضيًا، يُفتح بالنقر على البطاقة أو الضغط على المسافة. ثلاثة أزرار في الأسفل: غير معروفة، غامضة، معروفة.
- **المراجعة**: صفحة المراجعة، الكلمة في الأعلى، والخيارات الأربعة مرتبة عموديًا.
- **قاعدة المفردات**: تصفية حسب غير متعلمة، قيد المراجعة، متقنة، ولا يظهر المعنى إلا عند فتح الكلمة. الكلمات الداخلة في فئة 7 أيام تُعد متقنة.
## التنفيذ التقني
- **إطار الواجهة الأمامية**: مبني على Vite، ويستخدم React (أو إطارًا مشابهًا، لم يُذكر صراحةً لكنه يتوافق مع ممارسات الواجهة الأمامية الحديثة).
- **دعم PWA**: عبر vite-plugin-pwa (Workbox) لتوليد Web App Manifest وService Worker، لتحقيق التخزين المؤقت دون اتصال وقابلية التثبيت.
- **تخزين البيانات**: يُخزَّن كل تقدم التعلم في localStorage بالمتصفح (اسم المفتاح gre3000.vocab.v1)، دون الاعتماد على خادم خلفي.
- **تحليل قاعدة المفردات**: مصدر قاعدة المفردات الأصلية هو ملف PDF لـ «GRE Zhenkao 3000 كلمة (نسخة غير مرتبة)»، ويُحلَّل عبر سكربت Python (pymupdf) لتحليل الجداول وإزالة العلامات المائية ودمج الكلمات المقطوعة وإزالة التكرار لتوليد ملف JSON.
## طريقة الاستخدام
### الاستخدام عبر الإنترنت
يمكن البدء بالتعلم مباشرة عبر زيارة https://gre-3000-vocab.vercel.app. يُنصح بالإضافة إلى الشاشة الرئيسية للهاتف للحصول على أفضل تجربة.
### التشغيل المحلي
```bash
git clone https://github.com/jayden-dong411/gre-3000-vocab.git
cd gre-3000-vocab
npm install
npm run dev
```
يعمل خادم التطوير افتراضيًا على http://127.0.0.1:43173.
### بناء الإنتاج
```bash
npm run build
npm run preview
```
توجد مخرجات البناء في مجلد dist/، ويمكن نشرها على أي مضيف ثابت.
### تطبيق سطح المكتب
نزّل حزمة تثبيت macOS من GitHub Releases، أو شغّل محليًا `npm run desktop` لفتح النافذة مباشرة، و`npm run pack:mac` / `npm run pack:linux` للحزم والتوزيع.
## ملاحظات
- لا تتم مزامنة تقدم التعلم عند تغيير الجهاز (لأن البيانات مخزنة محليًا في المتصفح).
- يتطلب التثبيت على الشاشة الرئيسية للهاتف HTTPS (باستثناء localhost).
- حزمة تثبيت macOS غير موثقة من Apple، وقد يمنعها النظام عند الفتح الأول، ويلزم تنفيذ أمر `xattr -cr` في الطرفية لإزالة القيد.
## الخلاصة
GRE Zhenkao 3000 أداة كاملة الوظائف ومصممة بإتقان لتعلم مفردات GRE، تستفيد استفادة كاملة من قدرات PWA في العمل دون اتصال وقابلية التثبيت، مع توفير دعم تطبيق سطح المكتب. خوارزمية المراجعة وفق إبينغهاوس تراعي أداء المستخدم في الإجابة، وهي أكثر مرونة من الفواصل الثابتة. مصدر قاعدة المفردات واضح وعملية التحليل شفافة. مناسبة للمتقدمين الذين يحتاجون إلى حفظ منهجي لمفردات GRE.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.