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 ↗