← Powrót do projektów Aplikacja web · Rekrutacja

TRT Conseil

Platforma rekrutacyjna dla branży hotelarskiej i gastronomicznej z wyszukiwaniem i filtrami.

TRT Conseil
PROJEKT

Projekt

TRT Conseil to aplikacja webowa zbudowana wokół ogłoszeń rekrutacyjnych, wyszukiwania kandydatów i filtrowania, z funkcjonalnym interfejsem zaprojektowanym do regularnego użytkowania.

Architektura systemu & Platforma HR

Dedykowana platforma rekrutacyjna dla branży hotelarsko-gastronomicznej (HORECA), stworzona w Symfony. Zawiera model uprawnień RBAC z dwuetapową weryfikacją przez konsultantów, asynchroniczną wyszukiwarkę AJAX z KnpPaginator oraz udokumentowane endpointy REST API.

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

Rekrutacja HORECA z ludzkim podejściem

Każde konto, ogłoszenie o pracę i zgłoszenie kandydata jest weryfikowane przez eksperta HR przed nawiązaniem kontaktu.

Bezpieczeństwo & Hierarchia ról

Ścisły system 4 ról z przejściowym statusem TOVALID uniemożliwiającym nieautoryzowaną publikację treści.

Automatyczne przesyłanie CV

Automatyczne generowanie i wysyłka zgłoszenia przez Symfony Mailer z załączonym plikiem PDF w momencie akceptacji.

1. Model bezpieczeństwa & Zarządzanie rolami (RBAC)

Hierarchia uprawnień obsługiwana przez komponent Security Symfony z obowiązkową weryfikacją manualną:

Rola systemowa Status Uprawnienia i zadania
ROLE_ADMIN Administrator Tworzenie, edycja, blokowanie i usuwanie kont administratorów oraz konsultantów.
ROLE_CONSULTANT Konsultant HR Weryfikacja kandydatów i pracodawców, publikacja ofert oraz przesyłanie CV do firm.
ROLE_RECRUTEUR Pracodawca Zarządzanie wizytówką firmy, publikowanie ofert (umowa o pracę, zlecenie, dodatki) i odbiór zgłoszeń.
ROLE_CANDIDAT Kandydat Bezpieczne przesyłanie CV w formacie PDF, zaawansowane wyszukiwanie i aplikowanie na oferty.

2. Procesy operacyjne & Obsługa aplikacji

Ustrukturyzowane ścieżki użytkowników gwarantujące kontrolę na każdym etapie rekrutacji:

Ścieżka Kandydata & Zarządzanie CV w PDF

Bezpieczne przesyłanie plików PDF oczyszczonych przez transliterator_transliterate() ze statusem na żywo.

PDF Uploadtransliteratortovalid

Ścieżka Konsultanta & Automatyczna wysyłka

Weryfikacja oczekujących zgłoszeń i automatyczne wysyłanie e-maili z załączonym CV do pracodawcy po akceptacji.

Symfony MailerDataPartPièce jointe CV

3. Asynchroniczna wyszukiwarka (AJAX)

Moduł JavaScript Filter.js połączony z KnpPaginator i Doctrine QueryBuilder do wyszukiwania bez przeładowania:

// 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;
}
            
  • Nasłuchiwanie zdarzeń w czasie rzeczywistym: Błyskawiczne wykrywanie wpisywanego tekstu i filtrów stanowisk z częściową podmianą DOM.
  • Zoptymalizowana paginacja KnpPaginator: Ograniczenie do 6 ofert na stronę w celu zmniejszenia zużycia pamięci serwera.
  • Historia przeglądarki HTML5 (replaceState): Dynamiczna aktualizacja adresu URL umożliwiająca bezpośrednie udostępnianie przefiltrowanych wyników.

4. Specyfikacja headless API REST

Udokumentowane endpointy JSON serializowane za pomocą JMS Serializer:

Method Endpoint URL Grupa JMS Opis punktu końcowego
GET /api/annonces getAnnonces Kompletna lista zatwierdzonych ofert pracy w formacie JSON
GET /api/annoncesby?page={n} getAnnonces Stronicowana lista ofert wraz z metadanymi paginacji
GET /api/annonce/{id} getAnnonces Pełne szczegóły konkretnej oferty pracy według identyfikatora
GET /api/annoncesby/{poste} getAnnonces Filtrowanie i stronicowanie ogłoszeń na podstawie nazwy stanowiska

5. Model danych & Relacje ORM

Znormalizowany schemat bazy MySQL z integralnością referencyjną Doctrine:

Encje Użytkowników & Profili

User z unikalnym e-mailem, Candidat ze ścieżką do CV PDF oraz Recruteur z danymi firmy.

Encje Ofert & Stanowisk

Poste zawierający 28 zawodów HORECA oraz Annonce przechowujące rodzaj umowy, wynagrodzenie i opis.

Encja Aplikacji Candidature

Tabela łącząca Annonce, Candidat i weryfikującego Consultant wraz ze statusem zgłoszenia.

Poznaj platformę TRT Conseil

Przeglądaj oferty pracy w gastronomii i hotelarstwie oraz przetestuj wyszukiwarkę na żywo.

Przejdź do aplikacji TRT Conseil ↗