Backend Rails 6 avec GraphQL (ruby-graphql), frontend Vue.js/Quasar Framework, machines a etats pour workflow candidatures, tests RSpec + Jest.
Le choix de GraphQL plutot que REST a ete motive par la complexite des relations entre entites. Une mission implique un client, un candidat, un recruteur, des competences requises, des disponibilites, des heures travaillees et une facturation. En REST, afficher un tableau de bord recruteur aurait necessite 8 a 10 appels API. En GraphQL, une seule requete recupere exactement les donnees necessaires.
Les workflows metier sont geres par des machines a etats AASM. Une mission passe par les etats brouillon, publiee, candidatures ouvertes, assignee, en cours, terminee, facturee. Chaque transition valide les preconditions et declenche des effets secondaires : notifications, mises a jour de disponibilite, generation de facture. Cette approche rend la logique metier explicite et testable.
Le frontend Quasar/Vue.js fournit une interface responsive qui fonctionne sur desktop pour les recruteurs et sur mobile pour les candidats en deplacement. La couverture de tests RSpec backend et Jest frontend garantit que les workflows complexes restent fiables au fil des evolutions.
Backend Ruby on Rails 6 avec API GraphQL (gem ruby-graphql).
Frontend Vue.js avec Quasar Framework pour composants UI riches.
Machines a etats (state machines) pour gestion des workflows candidatures.
GraphQL subscriptions pour notifications temps-reel.
Tests complets : RSpec (backend) + Jest (frontend), couverture > 80%.
Authentification multi-roles, autorisation fine par politique.
Workflows candidatures
Ruby-graphql + Apollo
RSpec + Jest
Brief, repo, ou appel rapide - on s'adapte.