Rails 6.1 backend with GraphQL (ruby-graphql), Vue.js/Quasar Framework frontend, state machines for the candidacy workflow, RSpec + Jest tests.
GraphQL was chosen over REST because of the complexity of the relationships between entities. An assignment involves a client, a candidate, a recruiter, required skills, availabilities, hours worked and invoicing. In REST, displaying a recruiter dashboard would have required 8 to 10 API calls. In GraphQL, a single query fetches exactly the data needed.
Business workflows are handled by state machines. An assignment moves through the states draft, published, applications open, assigned, in progress, completed, invoiced. Each transition validates the preconditions and triggers side effects: notifications, availability updates, invoice generation. This approach makes the business logic explicit and testable.
The Quasar/Vue.js frontend provides a responsive interface that works on desktop for recruiters and on mobile for candidates on the go. RSpec backend and Jest frontend test coverage ensures that the complex workflows stay reliable as things evolve.
Ruby on Rails 6.1 backend: implemented most of the GraphQL API (Ruby-GQL).
Vue.js frontend with Quasar Framework for rich UI components.
Contributed to the design of the state machines for the assignment and candidacy workflows.
GraphQL subscriptions for real-time notifications.
Comprehensive tests: RSpec (backend) + Jest (frontend), coverage > 80%.
Multi-role authentication, fine-grained policy-based authorization.
Candidacy workflows
Ruby-graphql + Apollo
RSpec + Jest
A brief, a repo, or a quick call - whatever works.