التوثيق ومصفوفة التغطية
مرجع المقيّمين: ما الذي يعمل فعلًا، وما الذي اختُبر، وما الذي ما زال محاكاة أو خارج النطاق.
لم تُصنَّف المتطلبات كلها «ممتثلة» تلقائيًا. دليل الهوية الرسمي ووثيقة متطلبات العضوية والولاء المنفصلة غير متوفرين، ويلزم الحصول عليهما قبل تأكيد المطابقة الكاملة.
دليل العرض المختصر
- التمهيد (دقيقة)افتح الصفحة الرئيسية بالعربية. اعرض البحث بكلمة «عضوية» والفئات والبرامج المختارة.
- طلب ولي الأمر (3 دقائق)ادخل كمريم من دليل العرض. قدّم طلبًا لعمر لدى مركز الواحة عبر الخطوات الخمس. لاحظ المعرّف ذي البادئة.
- المراجعة (3 دقائق)ادخل كأحمد (معتمِد). أعد الطلب مع سبب. عد كمريم، اقرأ السبب، صحّح وأعد الإرسال. اعتمد ثم فعّل البطاقة.
- البطاقة والحضور (3 دقائق)اعرض بطاقة عمر لدى مريم. ادخل كنورة وسجّل حضور سلمى، ثم كرّر الإرسال لإظهار منع التكرار.
- النجوم والمكافآت (3 دقائق)المتاحة لسلمى 180 ← 200. استبدل مكافأة 150 نجمة: 50 متاحة و150 معلّقة. أكمل التنفيذ والاستلام: المعلّقة 0.
- الإغلاق (دقيقتان)اعرض الدفتر ولوحة الملخص وسجل التدقيق. بدّل إلى الإنجليزية واعرض الجوال. أعد الضبط لعرض سيناريو الإلغاء.
مصفوفة التغطية
مُنفَّذ ومُختبَر · جزئي · محاكاة · غير مُستعرَض
متطلبات إثبات المفهوم (PC)
| المتطلب | الموضوع | الحالة | الدليل |
|---|---|---|---|
| PC-01 | الصفحة الرئيسية العامة المعاد تصميمها | مُنفَّذ ومُختبَر | / و/services — بحث ومرشحات تعمل على البيانات المزروعة؛ متحقق في المتصفح عند 1440 و390 |
| PC-02 | الملف الموحد بعد تسجيل الدخول | مُنفَّذ ومُختبَر | /account — محدد الأسرة، البطاقة، النجوم، الإشعارات، المسار الزمني |
| PC-05 | لوحة التحكم الإدارية | مُنفَّذ ومُختبَر | /admin — مؤشرات مرتبطة بالسجلات، قائمة المراجعة، الحضور، التنفيذ، التدقيق |
| PC-06 | العربية أولًا مع اتجاه RTL حقيقي والإنجليزية | مُنفَّذ ومُختبَر | lang/dir على <html>، خصائص CSS منطقية، تبديل يحتفظ بالمسار (متحقق: /account → en ltr) |
| PC-07 | تجاوب الجوال واللوحي وسطح المكتب | جزئي | 390 و1440 متحقق منهما بصريًا؛ 768 لم يُختبر بلقطة. شريط تنقل سفلي وجداول بطاقية على الجوال |
| PC-08 | نظام تصميم ومعرض مكوّنات | مُنفَّذ ومُختبَر | /demo/showcase — أزرار وحقول وشارات وجدول وحوار ومتدرج ومسار زمني وبطاقة ومخطط بحالات متعددة |
| PC-09 | رحلة عرض قابلة للتكرار | مُنفَّذ ومُختبَر | /demo — 14 خطوة، حسابات تجريبية، إعادة ضبط محمية برمز |
| PC-10 | الإنشاء بواسطة فريق المشروع المقترح | غير مُستعرَض | يتطلب تأكيدًا صادقًا وموقّعًا من فيبوناتشي. لم يُوقَّع هنا ولم تُذكر أسماء. |
متطلبات التصميم (RD)
| المتطلب | الموضوع | الحالة | الدليل |
|---|---|---|---|
| RD-06 | رموز تصميم مركزية | مُنفَّذ ومُختبَر | app/globals.css — ألوان ونصف قطر وخطوط؛ ألوان كل جهة قابلة للتهيئة |
| RD-07a | هوية بصرية مؤقتة | جزئي | اتجاه واحد متماسك. دليل الهوية الرسمي غير متوفر — لا يُدّعى الامتثال |
| RD-08 | الطباعة العربية | مُنفَّذ ومُختبَر | IBM Plex Sans Arabic عبر next/font (مستضاف ذاتيًا)، نص أساسي 16–17px |
| RD-09 | إمكانية الوصول WCAG 2.1 AA | جزئي | دلالات وتسميات وتركيز مرئي وشارات بأيقونات ونص. لا يوجد تدقيق آلي أو بقارئ شاشة كامل |
| RD-12 | حالات التحميل والفراغ والخطأ | جزئي | حالات فراغ وأخطاء تحقق موجودة؛ هياكل التحميل في المعرض وليست في كل مسار |
| RD-14 | أيقونات متسقة ومعكوسة الاتجاه | مُنفَّذ ومُختبَر | lucide بسماكة موحدة؛ أيقونات الاتجاه تنعكس في RTL |
| RD-15a | تقليل الحركة | جزئي | prefers-reduced-motion في globals.css. لم يُختبر بإعداد نظام التشغيل |
| RD-19 | تخطيط الجوال المعاد تصميمه | مُنفَّذ ومُختبَر | شريط سفلي للأعضاء، قائمة منسدلة، محدد الأبناء بشبكة عمودين (لقطة 390px) |
| RD-20 | البطاقة الرقمية | مُنفَّذ ومُختبَر | /account/card — رمز QR تجريبي يقود إلى /verify ببيانات محدودة |
| RD-21 | جداول ومرشحات | مُنفَّذ ومُختبَر | /admin/applications و/admin/members — مرشحات تعمل عبر عنوان URL |
| RD-22 | مخططات ببديل جدولي | مُنفَّذ ومُختبَر | مخطط شريطي في /admin مع جدول مكافئ |
| RD-23 | خمسة مفاهيم تصميمية | غير مُستعرَض | خارج نطاق هذا النموذج — اتجاه واحد فقط |
| RD-24 | تطبيقات iOS وAndroid الأصلية | غير مُستعرَض | نموذج ويب متجاوب فقط |
العضوية (MB)
| المتطلب | الموضوع | الحالة | الدليل |
|---|---|---|---|
| MB-01 | تسجيل العضو وولي الأمر | مُنفَّذ ومُختبَر | /account/apply — خمس خطوات، تحقق مضمّن |
| MB-02 | اختيار الجهة ونوع الطلب | مُنفَّذ ومُختبَر | ثلاث جهات تجريبية ببادئات مختلفة |
| MB-03 | معرّف بادئة الجهة | مُنفَّذ ومُختبَر | اختبار المجال: WYC-/… يُنشأ عند الإرسال |
| MB-04 | قائمة مراجعة الجهة | مُنفَّذ ومُختبَر | /admin/applications — مقيّدة بالجهة على الخادم |
| MB-05 | اعتماد / رفض / إعادة مع سبب إلزامي | مُنفَّذ ومُختبَر | اختبار المجال يرفض السبب الفارغ |
| MB-06 | التصحيح وإعادة الإرسال | مُنفَّذ ومُختبَر | /account/apply/[id] — يظهر السبب ويُعاد الإرسال |
| MB-07 | معتمد ← بانتظار التفعيل ← نشط | مُنفَّذ ومُختبَر | اختبار المجال يتحقق من التسلسل والانتقالات غير الصالحة |
| MB-08 | إصدار البطاقة الرقمية | مُنفَّذ ومُختبَر | تظهر البطاقة لدى ولي الأمر بعد التفعيل |
| MB-09 | إشعارات ومسار زمني وتدقيق لكل انتقال | مُنفَّذ ومُختبَر | اختبار المجال يعدّ الأحداث |
| MB-10 | الإيقاف والانقضاء وتجاوز السن والخريجون والإلغاء | جزئي | في نموذج البيانات وبيانات الزرع؛ لا توجد إجراءات واجهة لتحويلها |
| MB-11 | قواعد السن والأهلية والانتهاء قابلة للتهيئة | مُنفَّذ ومُختبَر | /admin/loyalty — افتراضات عرض، ليست سياسة رسمية |
| MB-12 | علاقة ولي الأمر بالأبناء | مُنفَّذ ومُختبَر | اختبار المجال: ولي أمر آخر يُرفض |
| MB-13 | عزل الجهات | مُنفَّذ ومُختبَر | متصفح: /admin/members/m-b1 كموظفة الجهة أ ← مرفوض من الخادم |
| MB-14 | تصدير مقيّد بالنطاق | مُنفَّذ ومُختبَر | متصفح: /api/export/members أعاد 10 أعضاء للجهة أ فقط |
| MB-15 | التحقق من الهوية الإماراتية | محاكاة | محوّل محاكاة مُعلَّم؛ لا تُطلب أرقام حقيقية |
| MB-16 | الدخول بالهوية الرقمية (UAE PASS) | محاكاة | زر معطّل بعلامة «محاكاة»؛ الدخول عبر حسابات العرض |
| MB-17 | الرسائل النصية والبريد | محاكاة | إشعارات داخل التطبيق حقيقية؛ لا يُرسل شيء خارجيًا |
| MB-18 | المدفوعات | غير مُستعرَض | لا تُنفذ أي مدفوعات |
| MB-19 | محافظ Apple/Google | محاكاة | مُعلَّم كمحاكاة في صفحة البطاقة |
| MB-20 | صفحة التحقق من البطاقة | مُنفَّذ ومُختبَر | /verify/[token] — الحالة والجهة والاسم المختصر فقط |
| MB-21 | رفع المستندات | جزئي | معلومات داعمة نصية تجريبية؛ لا رفع ملفات |
الولاء (LY)
| المتطلب | الموضوع | الحالة | الدليل |
|---|---|---|---|
| LY-01 | تسجيل الحضور المخوّل | مُنفَّذ ومُختبَر | /admin/attendance — موظفو الجهة فقط |
| LY-02 | منع تكرار منح النجوم | مُنفَّذ ومُختبَر | اختبار المجال: الإرسال المكرر لا يضيف نجومًا |
| LY-03 | قواعد كسب قابلة للتهيئة (20/50/30) | مُنفَّذ ومُختبَر | /admin/loyalty |
| LY-04 | دفتر حركات بمراجع المصدر | مُنفَّذ ومُختبَر | /account/stars و/admin/members/[id] — الجهة والعضو والمنفّذ والنوع والوقت |
| LY-05 | المكتسبة / المتاحة / المعلّقة / المستبدلة / المعكوسة | مُنفَّذ ومُختبَر | الأرصدة مشتقة من الدفتر، لا قيدان لحدث واحد |
| LY-06 | كتالوج المكافآت | مُنفَّذ ومُختبَر | /account/rewards — ثماني مكافآت بفئات وأهلية ومخزون |
| LY-07 | الحجز ونقل النجوم إلى المعلّقة | مُنفَّذ ومُختبَر | اختبار المجال: 180 ← 200 ← 50/150 ← 50/0 |
| LY-08 | الإلغاء قبل الاستلام | مُنفَّذ ومُختبَر | اختبار المجال: يعود المتاح إلى 200 ويُستعاد المخزون |
| LY-09 | الرصيد غير الكافي ونفاد المخزون وعدم الأهلية والتكرار | مُنفَّذ ومُختبَر | اختبارات المجال لكل حالة |
| LY-10 | مطابقة اللوحة مع الدفتر | مُنفَّذ ومُختبَر | مؤشرات /admin محسوبة من المخزن نفسه |
المتطلبات التقنية (TE)
| المتطلب | الموضوع | الحالة | الدليل |
|---|---|---|---|
| TE-05 | الأداء: LCP ≤ 2.5 ث، INP ≤ 200 مللي ث، CLS ≤ 0.1 | جزئي | قياس مختبري في وضع التطوير فقط (انظر النتائج). لا توجد بيانات ميدانية عند المئين 75 |
| TE-12 | بنية الخدمات المصغّرة | جزئي | وحدات منفصلة داخل Next.js؛ النشر المستقل للخدمات المصغّرة غير مُستعرَض |
نتائج الاختبار الفعلية
نتائج مختبرية في بيئة المعاينة بتاريخ 27 أكتوبر 2026. ليست قياسات ميدانية.
| الفحص | النتيجة | التفاصيل |
|---|---|---|
| اختبارات المجال (35 فحصًا) | نجح | npm run test:domain — حساب النجوم، الاسترداد، الإلغاء، المخزون، التكرار، النطاق، دورة العضوية |
| فحص الأنواع TypeScript | نجح | tsc --noEmit بدون أخطاء |
| الصفحة الرئيسية بالعربية 1440px | نجح | لقطة متصفح، بلا أخطاء في وحدة التحكم |
| ملف ولية الأمر 1440px و390px | نجح | محدد الأبناء أُصلح على الجوال بعد الفحص |
| التبديل إلى الإنجليزية | نجح | lang=en dir=ltr والمسار /account محفوظ |
| عزل الجهات عبر تعديل الرابط | نجح | عضو الجهة ب مرفوض لموظفة الجهة أ |
| التصدير المقيّد | نجح | 10 صفوف للجهة أ، صفر من جهات أخرى |
| Web Vitals مختبري (جوال 390، وضع تطوير، محلي) | جزئي | الرئيسية: FCP 856 مللي ث، CLS 0. الملف: TTFB 466، LCP 1052 مللي ث، CLS 0. INP لم يُقس. بلا تقييد شبكة |
| الرحلة الكاملة عبر الواجهة (14 خطوة) | لم يُختبر | المنطق مُختبر على مستوى المجال؛ لم تُنفَّذ كل الخطوات بالنقر في المتصفح |
| لوحي 768px | لم يُختبر | لم يُختبر |
| لوحة المفاتيح وقارئ الشاشة | لم يُختبر | لم يُختبر بشكل منهجي |
| بناء الإنتاج وLighthouse | لم يُختبر | لم يُختبر |
مبررات التصميم
- الاتجاه
- منصة خدمات مدنية هادئة ودقيقة: كحلي عميق للثقة، تركوازي للحركة والإجراءات، عاجي دافئ كخلفية، ونحاسي خافت للزخرفة فقط. الألوان مؤقتة حتى تسليم الهوية الرسمية.
- الطباعة
- IBM Plex Sans Arabic مستضاف ذاتيًا عبر next/font مع وزن متدرج بدل التغليظ الشامل؛ نص أساسي 16–17px وتباعد أسطر مريح للعربية.
- الزخرفة
- نمط أقواس هندسية خفيف مستوحى من الإيقاع المعماري خلف البطل والبطاقة فقط، دون محاكاة لأي شعار أو خط رسمي.
- العنصر المميز
- البطاقة الرقمية وقسم النجوم: سطح كحلي مع شبكة دقيقة ورصيد موزّع بين «متاحة» و«معلّقة» بشكل مفهوم فورًا.
- الإدارة
- شريط جانبي على اليمين في العربية، مؤشر نطاق الجهة دائم الظهور، جداول مضغوطة تتحول إلى قوائم بطاقية على الجوال، وكل مؤشر يفتح سجلاته.
- التباين
- النص الأساسي #172B36 على #F7F6F2 يتجاوز 13:1؛ النص الخافت #52636D يتجاوز 5.5:1. النحاسي لا يُستخدم لنص صغير على خلفية فاتحة. الحالات تُعرض بأيقونة ونص لا باللون وحده.
البنية والتشغيل
- الإطار
- Next.js 16 (App Router) وTypeScript وTailwind CSS v4. العمليات عبر Server Actions مع تحقق وتفويض على الخادم.
- الوحدات
- lib/server/modules: core (التدقيق والإشعارات)، membership (الطلبات والموافقات والدورة)، loyalty (الحضور والدفتر والمكافآت)؛ identity.ts للأدوار والنطاق؛ queries.ts للتقارير.
- التخزين
- مخزن مستندات JSON على الخادم (.data/store.json محليًا، و/tmp على Vercel). كل تعديل يُطبَّق على نسخة ويُثبَّت كاملًا أو لا شيء. هذا ليس قاعدة بيانات إنتاجية: على Vercel قد لا تتشارك النسخ المتعددة الحالة وقد يُفقد الملف عند إعادة التشغيل. اختار المستخدم عدم ربط قاعدة بيانات.
- التشغيل
- npm install ثم npm run dev. لا توجد متغيرات بيئة مطلوبة. اختبارات المجال: npm run test:domain.
- إعادة الضبط
- من /demo بإدخال رمز إعادة الضبط المعروض هناك. يعيد بيانات الزرع الحتمية.
الافتراضات والعمل المتبقي
- قاعدة بيانات متعددة المستخدمين (مثل Neon) مع معاملات وقيود فريدة بدل مخزن JSON.
- إجراءات واجهة لحالات الإيقاف والانقضاء وتجاوز السن والخريجين والإلغاء (موجودة في النموذج فقط).
- مصادقة حقيقية وتكامل UAE PASS والتحقق من الهوية والرسائل والمحافظ والمدفوعات وأجهزة الحضور (كلها محاكاة أو غير منفذة).
- رفع المستندات مع فحص الملفات.
- تدقيق وصول كامل (axe ولوحة المفاتيح وقارئ شاشة عربي)، واختبار 768px.
- قياس الأداء على بناء إنتاجي وبيانات ميدانية عند المئين 75.
- خمسة مفاهيم تصميمية وتطبيقات أصلية — خارج نطاق هذا النموذج.
- النشر المستقل كخدمات مصغّرة — غير مُستعرَض.
- دليل الهوية الرسمي ووثيقة متطلبات العضوية والولاء — مدخلات مطلوبة.
- إقرار PC-10 من فيبوناتشي — يتطلب تأكيدًا صادقًا وموقّعًا.