Doc · Arquitetura & Banco de dados
Arquitetura do sistema
Stack: React + Tailwind + Lovable Cloud (Auth, DB, Storage, Edge Functions)
Frontend
React + Tailwind
- •TanStack Router para navegação
- •Recharts para gráfico radar
- •Mobile-first (Tailwind responsive)
- •Zod para validação de forms
Backend
Lovable Cloud
- •Auth (e-mail/senha para recrutadores)
- •Postgres com RLS por company_id
- •Storage para portfólios
- •Edge Functions p/ envio de e-mail
Lógica específica
DISC Engine
- •40 blocos forçados (Marston)
- •Cálculo D/I/S/C 0–100
- •Match por distância euclidiana
- •Narrativa por lógica condicional
Esquema do banco — tabelas
PK = chave primária · FK = chave estrangeiracompanies
| id | uuid PK |
| name | text |
| segment | text |
managers
| id | uuid PK |
| company_id | FK |
| name | text |
| disc_d / i / s / c | int |
| disc_profile_label | text |
jobs
| id | uuid PK |
| title | text |
| company_id / manager_id | FK |
| ideal_d / i / s / c | int |
| has_technical_test | bool |
| status | enum |
| created_at | timestamp |
questions
| id | uuid PK |
| job_id | FK |
| type | enum |
| question_text | text |
| options | jsonb |
| correct_answer | text |
candidates
| id | uuid PK |
| job_id | FK |
| token | uuid único |
| name / email / phone | text |
| disc_d / i / s / c | int |
| match_job_pct | numeric |
| match_manager_pct | numeric |
| technical_score | numeric |
| portfolio_url | text |
| status / created_at | enum / ts |
disc_answers
| id | uuid PK |
| candidate_id | FK |
| block_number | int (1–40) |
| chosen_most | enum D/I/S/C |
| chosen_least | enum D/I/S/C |
Cloud Storage
bucket: portfolios/
Uploads de candidatos (PDF, DOCX, ZIP · máx 20MB). Acesso via URL assinada.
bucket: company-assets/
Logos e identidade visual das 11 empresas do grupo para customização do convite.