← Tillbaka till projekt Webbapplikation · Rekrytering

TRT Conseil

En rekryteringsplattform för hotell- och restaurangbranschen med sökning och filtrering.

TRT Conseil
PROJEKT

Projektet

TRT Conseil är en webbapplikation byggd runt rekryteringsannonser, kandidatsökning och filtrering, med ett funktionellt gränssnitt utformat för regelbunden användning.

Systemarkitektur & Rekryteringsplattform

En specialiserad rekryteringsplattform för hotell- och restaurangbranschen (CHR/HORECA), byggd med Symfony. Den förenar en rollbaserad säkerhetsmodell (RBAC) med manuell validering av konsulter, en asynkron AJAX-sökmotor med KnpPaginator samt dokumenterade REST API-slutpunkter.

┌─────────────────────────────────────────────────────────────────────────────┐
│                 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
            

Personlig rekrytering med hög kvalitet

Varje användarkonto, platsannons och jobbansökan granskas och godkänns av en HR-konsult innan kontakt upprättas.

Säkerhet & Behörighetshierarki

Ett strikt system med 4 roller och tillfällig TOVALID-status som förhindrar obehörig publicering.

Automatiserad CV-distribution

Automatisk generering och utskick av ansökan med bifogat PDF-CV via Symfony Mailer vid godkännande.

1. Säkerhetsmodell & Behörighetshantering (RBAC)

Behörighetsstruktur via Symfony Security-komponenten med obligatorisk manuell förhandsgranskning:

Systemroll Status Rättigheter & Behörigheter
ROLE_ADMIN Administratör Skapa, redigera, blockera och radera administratörs- och konsultkonton.
ROLE_CONSULTANT HR-moderator Godkänna kandidater och företag, publicera jobbannonser och vidarebefordra CV:n.
ROLE_RECRUTEUR Arbetsgivare Hantera företagsprofil, lägga upp platsannonser och ta emot förkvalificerade ansökningar.
ROLE_CANDIDAT Kandidat Säker uppladdning av PDF-CV, avancerad sökning och ansökan till godkända jobbannonser.

2. Operativa arbetsflöden & Ansökningshantering

Strukturerade processer för att säkerställa noggrann kontroll i varje rekryteringsskede:

Kandidatflöde & Hantering av PDF-CV

Säker uppladdning av PDF-filer rensade via transliterator_transliterate() med statusuppdatering i realtid.

PDF Uploadtransliteratortovalid

Konsultflöde & Automatisk e-post

Granskning av väntande ansökningar och automatiskt utskick av e-post med bifogat CV till arbetsgivaren vid godkännande.

Symfony MailerDataPartPièce jointe CV

3. Asynkron AJAX-sökmotor

JavaScript Filter.js-modul sammankopplad med KnpPaginator och Doctrine QueryBuilder för omedelbara sökningar utan sidomladdning:

// 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;
}
            
  • Realtids-händelselyssnare: Direkt avkänning av sökord och yrkesfilter med partiell DOM-uppdatering.
  • Optimerad KnpPaginator-paginering: Begränsning till 6 annonser per sida för att minska serverns minnesanvändning.
  • HTML5 Webbläsarhistorik (replaceState): Dynamisk synkronisering av webbadressen för att möjliggöra direkt delning av filtrerade sökresultat.

4. Headless REST API-specifikationer

Dokumenterade JSON-slutpunkter serialiserade med JMS Serializer:

Method Endpoint URL JMS-grupp Beskrivning av Slutpunkt
GET /api/annonces getAnnonces Fullständig lista över godkända platsannonser i JSON-format
GET /api/annoncesby?page={n} getAnnonces Paginerad annonslista med tillhörande sidmetadata
GET /api/annonce/{id} getAnnonces Fullständiga detaljer för en specifik platsannons baserat på ID
GET /api/annoncesby/{poste} getAnnonces Filtrera och paginera annonser utifrån yrkestitel

5. Datamodell & ORM-relationer

Normaliserat relationsdatabasschema i MySQL med referensintegritet från Doctrine:

Användar- & Profilentiteter

User med unik e-post, Candidat med sökväg till PDF-CV och Recruteur med företagsuppgifter.

Platsannonser & Yrkestaxonomi

Poste med 28 restaurangyrken och Annonce med anställningsform, lön och beskrivning.

Candidature Ansökningsentitet

Kopplingstabell som förenar Annonce, Candidat och godkännande Consultant med status.

Utforska TRT Conseil-plattformen

Se lediga jobb inom hotell- och restaurangbranschen och testa realtidssökningen.

Gå till TRT Conseil-appen ↗