تجربة شكل الموقع المستقبلي
روابط واضحة للمتصفح حتى يأخذ فكرة عن شكل الموقع قبل التنفيذ الفعلي. هذه الصفحات تجريبية وببيانات افتراضية فقط.
القرار العام والهدف
هذا القسم يخص أصحاب القرار في العائلة: هل الفكرة مناسبة؟ ما حدود استخدامها؟ ومن يملك صلاحية إدارتها؟
القيمة الأساسية
تحويل معرفة أفراد العائلة من معلومات متفرقة إلى قاعدة بيانات منظمة قابلة للبحث.
حدود الاستخدام
المنصة للاستخدام العائلي الداخلي فقط، وليست موقع توظيف عام أو منصة مفتوحة للزوار.
- لا يظهر المحتوى إلا للأعضاء المعتمدين.
- لا يتم نشر السير الذاتية كرابط مباشر.
- المنصة تساعد على الترشيح والتواصل، ولا تستبدل قرارات التوظيف الرسمية.
الأمن والتحقق
هذا القسم يخص من يراجع الخصوصية والأمان: الدخول، البريد، OTP، الجلسات، وحماية الصفحات.
- كلمة المرور تُحفظ مشفرة باستخدام password_hash / bcrypt.
- كود OTP مكوّن من 6 أرقام وصالح لمدة 10 دقائق.
- بعد 3 محاولات فاشلة يُلغى الكود ويطلب النظام تسجيل دخول جديد.
- الأفضل أمنيًا حفظ هاش كود OTP وليس الكود الصريح.
- بعد تفعيل البريد، يبقى العضو في حالة انتظار اعتماد المدير قبل رؤية بيانات الآخرين.
- كل صفحة داخلية تمر عبر فحص جلسة وصلاحية.
البيانات و JSON
هذا القسم يخص طريقة التخزين، النسخ الاحتياطي، وبنية ملفات الأعضاء.
| العنصر | القرار | ملاحظة |
|---|---|---|
| ملفات الأعضاء | ملف JSON مستقل لكل عضو | أسهل في التعديل والنسخ والقراءة الفردية. |
| الكتابة المتزامنة | استخدام flock() | يمنع تلف الملفات عند تحديثين بنفس الوقت. |
| النسخ الاحتياطي | نسخ مجلد private_data | يُفضّل عمل نسخة دورية يدوية أو عبر سكربت بسيط لاحقًا. |
| التوسع | SQLite أو MySQL لاحقًا | إذا زاد العدد أو تعقدت التقارير. |
الأرشفة الداخلية لتسهيل البحث
هذا القسم يخص سرعة البحث وتنظيم البيانات المختصرة القابلة للفهرسة.
- يتحدث الفهرس عند إنشاء عضو، اعتماد عضو، تعديل ملف شخصي، رفع CV، أو تغيير حالة البحث عن عمل.
- لا يحتوي الفهرس على كلمات مرور أو OTP أو token أو مسار CV الحقيقي.
- يوضع في لوحة المدير زر: إعادة بناء الفهرس عند الحاجة.
الملفات الشخصية والسير الذاتية
هذا القسم يخص محتوى ملف العضو: ماذا نطلب منه؟ وما البيانات التي تظهر للآخرين؟
| الحقل | الوصف | ملاحظات خصوصية |
|---|---|---|
| الاسم الكامل | اسم العضو | ظاهر للأعضاء المعتمدين. |
| البريد | للدخول و OTP | يمكن إخفاؤه عن غير المدير إذا رغبت العائلة. |
| رقم الجوال | للتواصل المهني | يفضّل جعله اختياريًا. |
| التخصص والدرجة | مجال العمل والمؤهل | أساسي للبحث. |
| سنوات الخبرة والمهارات | للفلترة والترشيح | تظهر في بطاقة العضو. |
| أبحث عن عمل | مؤشر اختياري | يجب أن يتحكم به العضو بنفسه. |
| السيرة الذاتية PDF | ملف مرفوع | لا يفتح إلا عبر endpoint محمي. |
- قبول PDF فقط وبحد حجم واضح، مثل 5 ميغابايت.
- تسمية ملفات CV بأسماء مشفرة لا تكشف هوية العضو.
- حذف السيرة القديمة تلقائيًا عند رفع نسخة جديدة.
- إمكانية وضع حالة: لا يوجد CV / CV مرفوع / يحتاج تحديث.
البحث والتوصيات
هذا القسم يخص تجربة البحث: كيف يصل فرد العائلة إلى الشخص المناسب بسرعة؟
فلاتر أساسية
الاسم، التخصص، المهارات، الدرجة العلمية، سنوات الخبرة، يبحث عن عمل.
نتائج مختصرة
بطاقات تعرض الاسم، التخصص، المهارات، الحالة الوظيفية، وزر عرض CV.
- البحث يتم عبر JavaScript و AJAX بدون إعادة تحميل الصفحة.
- لا تظهر في النتائج إلا الحسابات المعتمدة من المدير.
- عند اختيار عضو معيّن، يتم تحميل ملفه الكامل من JSON.
- يمكن لاحقًا إضافة ترشيح ذكي بسيط حسب المهارات المطابقة.
الواجهة ونظام التصميم
هذا القسم يخص شكل المنصة وتجربة الاستخدام، خصوصًا دعم العربية وسهولة الاستخدام لكبار وصغار أفراد العائلة.
- First public release of NDS-vanilla: تنفيذ مجتمعي مستقل للنظام الوطني السعودي للتصميم باستخدام HTML و CSS و JavaScript.
- التنفيذ الرسمي من DGA عبارة عن React/Storybook component library يغطي مكونات الواجهة الأساسية.
- هذا الخيار يتيح نفس روح النظام لأي Stack: مكونات، تخطيطات، قوالب، توثيق، وبيئة تطوير كاملة.
- 70+ components مع markup و styles و JavaScript behavior.
- Compliance-ready templates لقوالب DGA الرسمية ككود حي يعمل.
- Real-world examples لصفحات مركبة تظهر المكونات معًا.
- Zero runtime dependencies: بدون Bootstrap أو Tailwind أو jQuery أو framework.
- RTL/LTR native عبر CSS Logical Properties بدون ملفات منفصلة.
- 3-tier design tokens: color → semantic → component عبر CSS custom properties.
- Smart component loader: فحص DOM مرة واحدة وتهيئة المكونات الموجودة فقط.
- هدف الأداء: CSS حرج صغير، JS مضغوط، واجهة متوافقة مع Web Vitals.
الصفحات المستهدفة
الدخول، التسجيل، OTP، انتظار الاعتماد، الملف الشخصي، البحث، لوحة المدير.
المكونات المستهدفة
الأزرار، النماذج، التنبيهات، البطاقات، الجداول، وسوم المهارات، حالات الخطأ والنجاح.
لوحة المدير
هذا القسم يخص صلاحيات المشرفين ومن يدير اعتماد الأعضاء والبيانات.
| الصلاحية | معتمدة؟ | ملاحظة |
|---|---|---|
| اعتماد عضو جديد | نعم | بعد تفعيل البريد و OTP. |
| رفض أو حذف عضو | نعم | يدويًا، بدون حذف تلقائي للمعلقين. |
| تعطيل حساب | نعم | أفضل من الحذف عند وجود شك. |
| مشاهدة من لم يرفع CV | نعم | لمتابعة اكتمال البيانات. |
| إعادة بناء الفهرس | نعم | زر إداري مهم. |
| إحصائيات نصية | نعم | بدون رسوم بيانية. |
| إشعار جماعي | مؤجل | ليس ضروريًا للنسخة الأولى. |
| تصدير CSV | مؤجل | يمكن إضافته لاحقًا. |
التنفيذ والتشغيل
هذا القسم يخص الخطة العملية لبناء النسخة الأولى دون تعقيد زائد.
| المرحلة | المهام | الأولوية |
|---|---|---|
| ١ | هيكل المشروع، private_data، .htaccess، صفحات الدخول الأساسية | عالية |
| ٢ | التسجيل، تفعيل البريد، تشفير كلمة المرور | عالية |
| ٣ | OTP، الجلسات، حماية الصفحات، CSRF | عالية |
| ٤ | لوحة المدير والاعتماد اليدوي | عالية |
| ٥ | الملف الشخصي ورفع CV المحمي | عالية |
| ٦ | search_index.json والبحث والفلترة | عالية |
| ٧ | تحسين الواجهة وفق NDS-vanilla | متوسطة |
| ٨ | اختبار شامل وتجربة مع عينة من أفراد العائلة | عالية |
ما تم إلغاؤه أو تأجيله من النسخة الأولى
هذا القسم يمنع تضخم المشروع ويجعل النسخة الأولى قابلة للتنفيذ.
إلغاءات معتمدة
لا حذف تلقائي للحسابات المعلقة. لا رسوم بيانية. لا Chart.js.
مؤجل لاحقًا
التقارير الشهرية، CRON للتذكيرات، الإشعارات الجماعية، تصدير CSV، التحليلات المتقدمة.
أسئلة النقاش قبل اعتماد الوثيقة
هذه الأسئلة تساعد على استشراف آراء أفراد العائلة وتحويلها إلى قرارات واضحة.
- من يحق له التسجيل؟ كل من يحمل اسم العائلة؟ أم بدعوة فقط؟
- هل رقم الجوال يظهر للجميع أم فقط للمدير؟
- هل السيرة الذاتية تظهر لكل عضو معتمد أم تحتاج موافقة صاحبها عند التحميل؟
- هل نضيف المدينة أو منطقة السكن ضمن البحث؟
- هل نضيف جهة العمل الحالية؟ أم قد تكون حساسة؟
- كم مديرًا نحتاج؟ مدير واحد أم أكثر؟
- هل نحتاج سجل عمليات للمدير؟ مثل: من اعتمد، من عطّل، من عدّل.
- هل نطلق نسخة تجريبية على 10 أعضاء أولًا؟
حفظ أو إرسال الملاحظات
بعد قراءة الوثيقة وكتابة الملاحظات أسفل الأقسام، يمكن للقارئ من هنا جمع كل ملاحظاته في نص واحد، ثم حفظها كملف، نسخها، أو تجهيزها للإرسال بالبريد.
ملاحظة: الإرسال عبر البريد يفتح برنامج البريد في الجهاز باستخدام mailto. إذا لم يعمل، استخدم زر النسخ أو حفظ TXT ثم أرسله يدويًا عبر واتساب أو البريد.

