بنية النظام والمنصة المخصصة للتوظيف
منصة ويب متخصصة في توظيف الكفاءات لقطاع الفندقة والمطاعم (CHR) تم تطويرها بواسطة Symfony. تجمع بين نموذج أمان متقدم متعدد الصلاحيات (RBAC) يعتمد على التدقيق البشري المزدوج عبر المستشارين، ومحرك بحث AJAX غير متزامن مع KnpPaginator، وواجهات REST API موثقة.
┌─────────────────────────────────────────────────────────────────────────────┐
│ TRT Conseil — Architecture RH & Recrutement │
└──────────────────────────────────────┬──────────────────────────────────────┘
│
┌───────────────────────────┼───────────────────────────┐
▼ ▼ ▼
🛡️ Sécurité & Modération RBAC 🔍 Moteur de Recherche AJAX 📡 API REST Headless
• Double validation (TOVALID)• Filter.js sans rechargement• JMS Serializer Groups
• 4 Rôles isolés (Admin/RH) • KnpPaginator (6/page) • Endpoints paginés (/api)
• Upload sécurisé de CV PDF • Synchronisation URL HTML5 • Support mobile & tiers
• Envoi CV par Symfony Mailer• Requête optimisée Doctrine • Documentation JSON
توظيف فندقي ذو قيمة إنسانية
تخضع كافة الحسابات وعروض العمل وطلبات التوظيف للمراجعة والتدقيق الإلزامي من قِبل مستشار خبير قبل التواصل المباشر.
الأمان وهرمية الأدوار
هيكلية صلاحيات صارمة تشمل 4 أدوار منفصلة مع حالة مؤقتة TOVALID لمنع أي نشر غير مرخص.
إرسال السير الذاتية آليًا
إنشاء وإرسال فوري لملف الترشح عبر Symfony Mailer مع إرفاق السيرة الذاتية PDF لصاحب العمل عند الاعتماد.
1. نموذج الأمان وإدارة الصلاحيات (RBAC)
هيكلية إدارة الوصول عبر حزمة Symfony Security مع شرط التدقيق البشري المسبق:
| دور النظام |
الحالة |
الصلاحيات والمهام |
ROLE_ADMIN |
المشرف العام |
إنشاء وتعديل وتعطيل وحذف حسابات المسؤولين والمستشارين. |
ROLE_CONSULTANT |
مستشار التوظيف |
اعتماد حسابات المرشحين والشركات، ونشر عروض العمل، وتحويل السير الذاتية للشركات. |
ROLE_RECRUTEUR |
صاحب العمل |
إنشاء ملف المؤسسة، ونشر الوظائف (دائم، مؤقت، إضافي)، واستقبال الترشيحات المعتمدة. |
ROLE_CANDIDAT |
المترشح |
رفع السيرة الذاتية PDF بأمان، والبحث المتقدم، والتقديم على الوظائف المعتمدة. |
2. مسارات العمل ومعالجة الترشيحات
مسارات عمل منظمة لضمان المراجعة الدقيقة لكل مرحلة من مراحل التوظيف:
مسار المرشح وإدارة السيرة الذاتية PDF
رفع آمن لملفات PDF بعد تنظيف أسمائها برمجيًا ومتابعة حالة التقديم في الوقت الفعلي.
PDF Uploadtransliteratortovalid
مسار المستشار والمراسلات المؤتمتة
مراجعة الطلبات المعلقة وإرسال بريد إلكتروني تلقائي مرفق به السيرة الذاتية للشركة عند الموافقة.
Symfony MailerDataPartPièce jointe CV
3. محرك البحث غير المتزامن (AJAX)
وحدة Filter.js في الواجهة الأمامية مدمجة مع KnpPaginator وDoctrine QueryBuilder للبحث الفوري دون إعادة تحميل:
// Requête QueryBuilder optimisée dans AnnonceRepository.php
private function getSearchQuery(SearchData $search): QueryBuilder
{
$query = $this->createQueryBuilder('p')
->select('c', 'p')
->join('p.poste', 'c')
->orderBy('p.id', 'DESC');
if (!empty($search->q)) {
$query->andWhere('p.titre LIKE :q')
->setParameter('q', "%{$search->q}%");
}
if (!empty($search->poste)) {
$query->andWhere('c.id IN (:poste)')
->setParameter('poste', $search->poste);
}
return $query;
}
- مستمعات أحداث الواجهة الفورية: التقاط فوري للكتابة واختيار الفئات مع تحديث جزئي سريع لشجرة الـ DOM.
- ترقيم صفحات KnpPaginator الفعال: تحديد النتائج بـ 6 عروض في كل صفحة لتحسين استهلاك ذاكرة الخادم.
- تزامن سجل المتصفح (replaceState): تحديث مسار الرابط تلقائيًا لتسهيل مشاركة نتائج البحث المصفاة مباشرة.
4. مواصفات واجهة REST API
نقاط اتصال JSON موثقة يتم تجهيزها بواسطة JMS Serializer:
| Method |
Endpoint URL |
مجموعة JMS |
وصف نقطة الاتصال |
| GET |
/api/annonces |
getAnnonces |
القائمة الكاملة للوظائف المعتمدة بتنسيق JSON |
| GET |
/api/annoncesby?page={n} |
getAnnonces |
مجموعة وظائف مقسمة لصفحات مع بيانات الترقيم الوصفية |
| GET |
/api/annonce/{id} |
getAnnonces |
التفاصيل الكاملة لوظيفة معينة عبر معرفها الرقمي |
| GET |
/api/annoncesby/{poste} |
getAnnonces |
تصفية وترقيم الوظائف بناءً على اسم المهنة |
5. نموذج البيانات وعلاقات Doctrine ORM
هيكلية قاعدة بيانات MySQL علائقية قياسية مع الحفاظ على التكامل المرجعي:
كيانات المستخدمين والملفات الشخصية
User بالبريد الإلكتروني الفريد، Candidat مع مسار ملف الـ PDF، وRecruteur مع بيانات المنشأة.
كيانات الوظائف والتصنيفات
Poste يضم 28 مهنة فندقية وAnnonce لتخزين نوع العقد، الراتب والوصف.
كيان الترشح Candidature
جدول وسيط يربط Annonce وCandidat والمستشار المعتمد Consultant مع حالة الترشح.