← Zurück zu den Projekten Webanwendung · Rekrutierung

TRT Conseil

Eine Rekrutierungsplattform für den Gastgewerbe- und Restaurantbereich mit Suche und Filtern.

TRT Conseil
PROJEKT

Das Projekt

TRT Conseil ist eine Webanwendung, die auf Stellenausschreibungen, Kandidatensuche und Filterung ausgerichtet ist und eine funktionale Oberfläche für den regelmäßigen Gebrauch bietet.

Systemarchitektur & HR-Plattform

Eine spezialisierte Personalvermittlungsplattform für das Hotel- und Gaststättengewerbe (HORECA), entwickelt mit Symfony. Sie verfügt über ein rollenbasiertes Sicherheitsmodell (RBAC) mit Beratermoderation, eine asynchrone AJAX-Suche mit KnpPaginator und dokumentierte REST-API-Endpunkte.

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

HR-Vermittlung mit menschlichem Mehrwert

Jedes Konto, jedes Stellenangebot und jede Bewerbung wird vor der Kontaktherstellung von einem HR-Experten geprüft und validiert.

Sicherheit & Rollenhierarchie

Striktes 4-Rollen-Berechtigungssystem mit temporärem TOVALID-Status zur Verhinderung unautorisierter Veröffentlichungen.

Automatisierter Lebenslaufversand

Automatische Erstellung und Versand der Bewerbung via Symfony Mailer mit angehängtem PDF-Lebenslauf bei Validierung.

1. Sicherheitsmodell & Rollenverwaltung (RBAC)

Zugriffshierarchie über die Symfony Security-Komponente mit obligatorischer menschlicher Überprüfung:

Systemrolle Status Berechtigungen & Aufgaben
ROLE_ADMIN Supervisor Erstellen, Bearbeiten, Sperren und Löschen von Administrator- und Beraterkonten.
ROLE_CONSULTANT HR-Moderator Freigabe von Bewerbern und Arbeitgebern, Veröffentlichung von Stellenanzeigen und Weiterleitung von Lebensläufen.
ROLE_RECRUTEUR Arbeitgeber Unternehmensprofil anlegen, Stellenanzeigen schalten und vorqualifizierte Bewerbungen empfangen.
ROLE_CANDIDAT Bewerber Sicherer Upload von PDF-Lebensläufen, erweiterte Suche und Bewerbung auf geprüfte Stellenangebote.

2. Betriebliche Workflows & Bewerbungsabwicklung

Strukturierte Prozesse zur lückenlosen Überprüfung jedes Rekrutierungsschritts:

Bewerber-Workflow & PDF-Lebenslaufverwaltung

Sicherer Upload von mit transliterator_transliterate() bereinigten PDF-Dateien und Live-Statusverfolgung.

PDF Uploadtransliteratortovalid

Berater-Workflow & Automatisierter E-Mail-Versand

Prüfung ausstehender Bewerbungen und automatisierter Versand mit angehängtem PDF an den Arbeitgeber bei Freigabe.

Symfony MailerDataPartPièce jointe CV

3. Asynchrone AJAX-Suchmaschine

JavaScript Filter.js-Modul gekoppelt mit KnpPaginator und Doctrine QueryBuilder für blitzschnelle Suchen ohne Neuladen:

// 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;
}
            
  • Echtzeit-Ereignis-Listener: Sofortige Erkennung von Tastatureingaben und Stellenfiltern mit partieller DOM-Aktualisierung.
  • Optimierte KnpPaginator-Paginierung: Begrenzung auf 6 Datensätze pro Seite zur Schonung der Serverressourcen.
  • HTML5-Verlauf (replaceState): Dynamische Aktualisierung der Browser-URL zum direkten Teilen gefilterter Suchlinks.

4. Headless REST-API-Spezifikationen

Dokumentierte JSON-Endpunkte, serialisiert mit JMS Serializer:

Method Endpoint URL JMS-Gruppe Endpunkt-Beschreibung
GET /api/annonces getAnnonces Vollständige Liste aller geprüften Stellenangebote im JSON-Format
GET /api/annoncesby?page={n} getAnnonces Paginierte Stellensammlung inklusive Paginierungs-Metadaten
GET /api/annonce/{id} getAnnonces Vollständige Details einer bestimmten Stelle anhand der ID
GET /api/annoncesby/{poste} getAnnonces Filtern und Paginieren von Angeboten nach Berufsbezeichnung

5. Datenmodell & ORM-Relationen

Normalisiertes relationales MySQL-Datenbankschema mit Doctrine-Referenzintegrität:

Benutzer- & Profil-Entitäten

User mit eindeutiger E-Mail, Candidat mit PDF-Pfad und Recruteur mit Unternehmensdaten.

Stellenangebote & Taxonomie

Poste mit 28 HORECA-Berufen und Annonce mit Vertragsart, Gehalt und Beschreibung.

Candidature-Bewerbungsentität

Verknüpfung zwischen Annonce, Candidat und freigebendem Consultant inklusive Validierungsstatus.

Die Plattform TRT Conseil erkunden

Entdecken Sie die Stellenangebote im Gastgewerbe und testen Sie die asynchrone Suche.

TRT Conseil Anwendung besuchen ↗