Skip to content

JobHub

JobHub is a multi-module Maven monorepo: five backend services and a frontend, sharing a single PostgreSQL 16 database with schema-per-service isolation. All backends are Quarkus 3 on Java 21.

jobhub-parent (pom.xml)
├── api-contracts         : OpenAPI specs, the single source of truth for every API
├── crawler-service       : scheduled batch crawling of job boards
├── job-service           : REST API for browsing job postings
├── auth-service          : user identity, sessions, JWT issuing
├── application-service   : tracks the user's job applications
├── notification-service  : preferences, in-app notifications, weekly digest, reminders, ghosted alert
└── JobHub-ui             : React + Vite frontend

What each module does

Module Role Architecture Port (local)
crawler-service Scheduled crawling of job boards, persists postings Hexagonal background
job-service Browse/search job postings Hexagonal 8081
auth-service Register/login, JWT signing, account management Clean 8082 (/auth)
application-service Create & track job applications Hexagonal 8083
notification-service Preferences, in-app bell, weekly digest, interview reminders, ghosted alert Hexagonal 8084
JobHub-ui React SPA — 5173
PostgreSQL 16 One DB, schema per service (crawler, job, auth, applications, notification) — 5432

Where to go next

Two architectures on purpose

Technical, mechanistic services (job, crawler, application, notification) use Hexagonal; the domain-rich auth-service uses Clean. The Architecture overview explains when to pick which.