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 ↗