v1.3.0 - Modern Web Frontend / Lovable Integration¶
Objetivo¶
Integrar o frontend moderno exportado do Lovable em apps/web sem substituir a raiz do projeto e
sem mover backend, Streamlit, docs ou testes existentes.
Resultado¶
A v1.3.0 adiciona um app React/Vite em apps/web com:
- Home/Landing;
- Dashboard;
- Currículo;
- Vaga;
- Análise de Compatibilidade;
- Análise ATS;
- Ajuste de Currículo;
- Análise de GitHub;
- Candidaturas;
- Inteligência de Candidaturas;
- Fontes e Captura;
- Configurações;
- Privacidade.
Stack¶
- React 19;
- Vite;
- TypeScript;
- TanStack Router;
- TanStack Query;
- Tailwind CSS 4;
- Radix UI;
- Recharts;
- lucide-react.
Como rodar¶
Na raiz:
python scripts/run_api.py
No frontend:
cd apps/web
npm install
npm run dev
Validações do frontend:
cd apps/web
npm run build
npm run lint
npm run typecheck
Modos¶
Modo Demo¶
Usa dados fictícios locais e permite validar todas as telas sem backend ativo.
Modo API Real¶
Consome a FastAPI local:
http://127.0.0.1:8787/api/v1
Configuração local:
VITE_SOTUHIRE_API_URL=http://127.0.0.1:8787/api/v1
O client trata o envelope:
{
"ok": true,
"data": {},
"warnings": [],
"request_id": "string"
}
Endpoints consumidos¶
GET /health
POST /resume/extract
POST /job/extract
POST /match/analyze
POST /ats/analyze
POST /resume/tailor
POST /github/repo/analyze
GET /tracker/jobs
POST /tracker/jobs
PATCH /tracker/jobs/{id}
GET /tracker/metrics
GET /tracker/requirements
GET /tracker/funnel
GET /tracker/sources
Fontes e Captura¶
A tela /sources apresenta fluxos seguros para:
- colar vaga manualmente;
- colar link da vaga;
- importar CSV/JSON manual;
- captura assistida via extensão/local companion;
- radar de vagas públicas;
- APIs oficiais e integrações futuras.
O fluxo AUTHENTICATED_BROWSER existente no backend local tambem foi exposto nessa tela. Ele testa
o CDP local, abre um Chromium dedicado para login manual e coleta somente apos confirmacao de uso
autorizado. O fluxo nao automatiza login, nao contorna CAPTCHA/checkpoint e nao envia candidatura.
IA e Providers¶
A UI de Configurações mostra IA e Providers como integração planejada. A chave é mascarada e não é persistida no frontend.
Endpoints planejados para v1.4.0:
GET /api/v1/settings/ai
POST /api/v1/settings/ai
POST /api/v1/settings/ai/test
DELETE /api/v1/settings/ai
GET /api/v1/settings/ai/status
Quando implementados, a API local deve continuar sendo a fonte da verdade e nunca retornar a chave para o frontend.
Segurança¶
- O frontend não salva segredos.
- O frontend não usa
localStorageousessionStoragepara API keys. - O frontend não calcula score real.
- Regras de negócio continuam no backend/core.
- GitHub Pages continua estático/demo-oriented.
- Streamlit continua disponível como modo local/dev.
Screenshots¶
Os screenshots v1.3 ficam em:
docs/assets/screenshots/sotuhire-v1.3-web-home.png
docs/assets/screenshots/sotuhire-v1.3-web-dashboard.png
docs/assets/screenshots/sotuhire-v1.3-web-resume.png
docs/assets/screenshots/sotuhire-v1.3-web-job.png
docs/assets/screenshots/sotuhire-v1.3-web-compatibility.png
docs/assets/screenshots/sotuhire-v1.3-web-ats.png
docs/assets/screenshots/sotuhire-v1.3-web-tailor.png
docs/assets/screenshots/sotuhire-v1.3-web-github.png
docs/assets/screenshots/sotuhire-v1.3-web-sources.png
docs/assets/screenshots/sotuhire-v1.3-web-applications.png
docs/assets/screenshots/sotuhire-v1.3-web-intelligence.png
docs/assets/screenshots/sotuhire-v1.3-web-settings-ai.png
docs/assets/screenshots/sotuhire-v1.3-web-privacy.png
docs/assets/screenshots/sotuhire-v1.3-web-walkthrough.gif
Pendências para v1.4.0¶
- Endpoints seguros de settings/IA no backend local.
- Testes E2E versionados se o projeto decidir manter Playwright como dependência dev.
- Modo Streamlit Legacy documentado com fronteira clara entre app local/dev e frontend moderno.
- Possível endpoint dedicado para histórico/evidências se a UI precisar sair dos mocks.