Pular para conteúdo

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 localStorage ou sessionStorage para 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.