← العودة إلى المشاريع تطبيق ويب · التوظيف

TRT Conseil

منصة توظيف لقطاع الفنادق والمطاعم، مع البحث والتصفية.

TRT Conseil
المشروع

المشروع

TRT Conseil هو تطبيق ويب مخصص لإعلانات التوظيف واكتشاف المرشحين والتصفية، مع واجهة عملية مصممة للاستخدام المتكرر.

بنية النظام والمنصة المخصصة للتوظيف

منصة ويب متخصصة في توظيف الكفاءات لقطاع الفندقة والمطاعم (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 مع حالة الترشح.

استكشف منصة TRT Conseil

تصفح عروض العمل في قطاع الفندقة والمطاعم واختبر البحث اللحظي.

زيارة تطبيق TRT Conseil ↗