RPQ is a multi-tenant recruitment platform built with Laravel using Domain-Driven Design (DDD) and a modular monolith architecture.
- Domain-Driven Design — Explicit bounded contexts and aggregate roots
- Multi-tenancy — Team-based isolation as a first-class concern
- Modular Monolith — Self-contained modules under
app-modules/ - Auditability — Full activity logging and history tracking
| Module | Description | Documentation |
|---|---|---|
| Users | User accounts, authentication, profiles | 📖 README |
| Teams | Organizations, departments, team membership | 📖 README |
| Permissions | RBAC via Spatie, roles and permissions | 📖 README |
| Location | Polymorphic addresses for entities | 📖 README |
| Recruitment | Job requisitions, postings, pipeline stages | 📖 README |
| Screening | Screening questions and knockout logic | 📖 README |
| Candidates | Candidate profiles, skills, education, work history | 📖 README |
| Applications | Application lifecycle, stage transitions, offers | 📖 README |
| Feedback | Evaluations, ratings, and comments | 📖 README |
| Panel Admin | Filament admin panel for system management | 📖 README |
Modules prefixed with
panel-are Filament-based UIs
graph TB
subgraph Organization["🏢 ORGANIZATION"]
TEAM[Teams]
DEPT[Departments]
LOC[Locations]
end
subgraph Identity["👤 IDENTITY"]
USER[Users]
ROLE[Permissions]
end
subgraph Recruitment["📋 RECRUITMENT"]
REQ[Job Requisitions]
POST[Job Postings]
PIPE[Pipeline Stages]
SCREEN[Screening Questions]
end
subgraph Candidate["👥 CANDIDATES"]
CAND[Candidates]
SKILL[Skills]
end
subgraph Application["📝 APPLICATIONS"]
APP[Applications]
EVAL[Evaluations]
COMM[Comments]
end
TEAM -->|owns| USER
TEAM -->|owns| REQ
USER -->|creates| REQ
REQ -->|published as| POST
REQ -->|has| PIPE
REQ -->|has| SCREEN
CAND -->|applies to| APP
APP -->|links| REQ
APP -->|receives| EVAL
APP -->|has| COMM
make setup # Install dependencies
make env-up # Start Docker (DB, etc.)
make migrate-fresh # Database setup with seeds
make dev # Start Vite dev serverAccess admin panel at /admin (requires SuperAdmin role).
app-modules/{module}/
├── src/ # PHP classes (Models, Policies, Enums)
├── tests/ # Pest feature/unit tests
├── database/ # Factories, migrations, seeders
└── config/ # Module-specific config
- Namespace:
He4rt\{Module}(e.g.,He4rt\Users) - Testing: Pest v4 with factories
- Formatting: Laravel Pint
- Analysis: PHPStan + Rector
| Command | Description |
|---|---|
make test |
Run all tests |
make pint |
Format code |
make phpstan |
Static analysis |
make check |
Dry-run all checks |
make format |
Apply Rector + Pint fixes |
Run make help for all available commands.
- PHP 8.5 / Laravel 12
- Filament v4 — Admin panels
- Livewire v3 — Reactive components
- Tailwind v4 — CSS-first styling
- Pest v4 — Testing framework
- Spatie Permission — RBAC