← Tilbake til prosjekter Webapplikasjon · Rekruttering

TRT Conseil

En rekrutteringsplattform for hotell- og restaurantsektoren med søk og filtrering.

TRT Conseil
PROSJEKT

Prosjektet

TRT Conseil er en webapplikasjon bygget rundt rekrutteringsannonser, kandidatutforskning og filtrering, med et funksjonelt grensesnitt designet for regelmessig bruk.

Systemarkitektur & HR-plattform

En spesialisert rekrutteringsplattform for hotell- og restaurantbransjen (CHR) utviklet med Symfony. Den har en rollebasert sikkerhetsmodell (RBAC) med manuell godkjenning av rådgivere, asynkron AJAX-søkemotor med KnpPaginator og dokumenterte REST API-endepunkter.

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

Menneskelig forankret rekruttering

Hver konto, stillingsutlysning og jobbsøknad blir grundig gjennomgått og godkjent av en HR-rådgiver før partene kobles sammen.

Sikkerhet & Rollehierarki

Strenge tilgangsnivåer med 4 roller og en midlertidig TOVALID-status som hindrer uautoriserte publiseringer.

Automatisert CV-utsendelse

Automatisk opprettelse og utsendelse av søknaden med vedlagt PDF-CV via Symfony Mailer ved godkjenning.

1. Sikkerhetsmodell & Rollehåndtering (RBAC)

Tilgangskontroll administrert gjennom Symfony Security-komponenten med obligatorisk forhåndsgodkjenning:

Systemrolle Status Rettigheter & Funksjoner
ROLE_ADMIN Administrator Opprette, redigere, sperre og slette administrator- og rådgiverkontoer.
ROLE_CONSULTANT HR-moderator Godkjenne kandidater og bedrifter, publisere stillinger og videresende CV-er.
ROLE_RECRUTEUR Arbeidsgiver Opprette bedriftsprofil, publisere stillingsannonser og motta forhåndskvalifiserte søknader.
ROLE_CANDIDAT Kandidat Sikker opplasting av PDF-CV, avansert søk og søknad på godkjente stillinger.

2. Arbeidsflyt & Søknadshåndtering

Strukturerte prosesser for å sikre full kontroll i hvert ledd av rekrutteringen:

Kandidatarbeidsflyt & PDF-CV-håndtering

Trygg opplasting av PDF-filer renset med transliterator_transliterate() og sporing av status i sanntid.

PDF Uploadtransliteratortovalid

Rådgiverarbeidsflyt & Automatisk e-post

Gjennomgang av ventende søknader og automatisk utsendelse av e-post med vedlagt CV til arbeidsgiver.

Symfony MailerDataPartPièce jointe CV

3. Asynkron AJAX-søkemotor

JavaScript Filter.js-modul i kombinasjon med KnpPaginator og Doctrine QueryBuilder for umiddelbare søk:

// 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;
}
            
  • Hendelseslyttere i sanntid: Direkte registrering av søkeord og stillingsfiltre med delvis oppdatering av nettleserens DOM.
  • Optimalisert KnpPaginator-paginering: Begrensning til 6 oppføringer per side for å redusere serverens minnebruk.
  • HTML5 Nettleserhistorikk (replaceState): Dynamisk oppdatering av nettadressen for enkel deling av filtrerte søkeresultater.

4. Headless REST API-spesifikasjoner

Dokumenterte JSON-endepunkter serialisert med JMS Serializer:

Method Endpoint URL JMS-gruppe Endepunktsbeskrivelse
GET /api/annonces getAnnonces Fullstendig liste over godkjente stillingsannonser i JSON-format
GET /api/annoncesby?page={n} getAnnonces Paginert liste over stillinger med tilhørende metadata
GET /api/annonce/{id} getAnnonces Fullstendige detaljer om en bestemt stilling basert på ID
GET /api/annoncesby/{poste} getAnnonces Filtrering og paginering av stillinger etter yrkestittel

5. Datamodell & ORM-relasjoner

Normalisert relasjonsdatabaseskjema i MySQL med referanseintegritet fra Doctrine:

Bruker- & Profilentiteter

User med unik e-post, Candidat med filsti til PDF-CV og Recruteur med bedriftsopplysninger.

Stillinger & Yrkestaksonomi

Poste med 28 restaurantyrker og Annonce med kontraktstype, lønn og beskrivelse.

Candidature-søknadentitet

Koblingstabell som knytter Annonce, Candidat og godkjennende Consultant sammen med status.

Utforsk TRT Conseil-plattformen

Se ledige stillinger i hotell- og restaurantbransjen og test sanntidssøket.

Gå til TRT Conseil-appen ↗