← Torna ai progetti Applicazione web · Selezione

TRT Conseil

Una piattaforma di recruiting per il settore dell'ospitality e della ristorazione con ricerca e filtri.

TRT Conseil
PROGETTO

Il progetto

TRT Conseil è un'applicazione web costruita intorno a annunci di recruitment, scoperta del candidato e filtraggio, con un'interfaccia funzionale pensata per un uso costante.

Architettura di Sistema & Piattaforma HR

Piattaforma web di reclutamento specializzata nel settore alberghiero e ristorazione (HORECA), sviluppata con Symfony. Integra un modello di sicurezza RBAC con doppia validazione da parte di consulenti, motore di ricerca asincrono AJAX con KnpPaginator ed endpoint API REST documentati.

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

Reclutamento HORECA a Valore Umano

Ogni profilo, offerta di lavoro e candidatura viene verificata e validata da un consulente HR prima della messa in contatto.

Sicurezza & Gerarchia dei Ruoli

Sistema di autorizzazioni a 4 ruoli con stato transitorio TOVALID per impedire pubblicazioni non verificate.

Invio Automatizzato dei CV

Generazione e inoltro automatico via Symfony Mailer della candidatura con CV in formato PDF allegato al momento dell'approvazione.

1. Modello di Sicurezza & Gestione Ruoli (RBAC)

Gerarchia degli accessi gestita tramite il componente Security di Symfony con validazione umana preventiva:

Ruolo di Sistema Stato Permessi & Funzionalità
ROLE_ADMIN Supervisore Creazione, modifica, blocco ed eliminazione degli account di amministratori e consulenti.
ROLE_CONSULTANT Moderatore HR Validazione di candidati e aziende, pubblicazione annunci e inoltro dei CV ai datori di lavoro.
ROLE_RECRUTEUR Datore di Lavoro Profilo aziendale, pubblicazione annunci (indeterminato, determinato, extra) e ricezione candidature qualificate.
ROLE_CANDIDAT Candidato Upload sicuro del CV in PDF, ricerca avanzata e candidatura alle offerte di lavoro validate.

2. Workflow Operativi & Gestione Candidature

Flussi di lavoro strutturati per garantire la verifica di ogni fase del processo di selezione:

Workflow Candidato & Gestione CV PDF

Caricamento sicuro di file PDF sanificati con transliterator_transliterate() e tracciamento dello stato di validazione.

PDF Uploadtransliteratortovalid

Workflow Consulente & Invio Email Automatico

Revisione delle candidature in attesa e trasmissione automatica dell'email con CV allegato al datore di lavoro.

Symfony MailerDataPartPièce jointe CV

3. Motore di Ricerca Asincrono (AJAX)

Modulo JavaScript Filter.js abbinato a KnpPaginator e Doctrine QueryBuilder per ricerche immediate senza ricaricare la pagina:

// 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;
}
            
  • Event Listener in Tempo Reale: Rilevamento immediato dei testi digitati e dei filtri di mansione con aggiornamento parziale del DOM.
  • Paginazione Ottimizzata con KnpPaginator: Limitazione a 6 elementi per pagina per ridurre il consumo di memoria del server.
  • Cronologia HTML5 (replaceState): Aggiornamento dinamico dell'URL del browser per consentire la condivisione diretta dei risultati filtrati.

4. Specifiche dell'API REST Headless

Endpoint JSON documentati e serializzati con JMS Serializer:

Method Endpoint URL Gruppo JMS Descrizione Endpoint
GET /api/annonces getAnnonces Elenco completo delle offerte di lavoro approvate in formato JSON
GET /api/annoncesby?page={n} getAnnonces Collezione paginata di annunci con metadati di paginazione
GET /api/annonce/{id} getAnnonces Dettaglio completo di una specifica offerta tramite il suo ID
GET /api/annoncesby/{poste} getAnnonces Filtro e paginazione degli annunci in base alla mansione

5. Modello Dati & Relazioni ORM

Schema relazionale normalizzato in MySQL con integrità referenziale Doctrine:

Entità Utenti & Profili

User con email univoca, Candidat con percorso del file PDF e Recruteur con dati aziendali.

Entità Annunci & Mansioni

Poste con 28 professioni HORECA e Annonce con tipo di contratto, retribuzione e descrizione.

Entità Candidature

Tabella di unione che collega Annonce, Candidat e Consultant moderatore con stato di approvazione.

Esplora la Piattaforma TRT Conseil

Scopri le opportunità di lavoro nel settore alberghiero e prova la ricerca asincrona.

Visita l'Applicazione TRT Conseil ↗