Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dashboard Memorial TecPred

Frontend React para gerar e acompanhar memoriais técnicos usando a API Memorial Descritivo.

O dashboard roda separado da API. A API gera os documentos .docx, salva os arquivos no Supabase Storage e persiste o histórico em Supabase Postgres. O frontend consome esses dados por HTTP usando VITE_API_URL.

Stack

  • React
  • TypeScript
  • Vite
  • Tailwind CSS
  • Axios
  • React Dropzone

Desenvolvimento Local

Rode a API em um terminal:

cd ~/Projects/api_memorial_descritivo
.venv/bin/uvicorn app.main:app --reload --host 127.0.0.1 --port 8000

Rode o dashboard em outro terminal:

cd ~/Projects/dashboard_memorial
npm install
npm run dev

Configure o dashboard com:

VITE_API_URL=http://localhost:8000

Integração Com A API

O dashboard usa os endpoints persistentes da API:

POST /api/v1/memoriais/{tipo}/from-files/persist
GET  /api/v1/memoriais
GET  /api/v1/memoriais?type=telecom
GET  /api/v1/memoriais/{id}
GET  /api/v1/memoriais/{id}/download

Mapeamento de tipos:

telecomunicacoes -> telecom
eletrico -> eletrico
gas_natural -> gas-natural
gas_glp -> glp

Scripts

npm run dev

Inicia o servidor local do Vite.

npm run build

Executa TypeScript e gera a build de produção.

npm run lint

Executa ESLint.

npm run preview

Serve localmente a build gerada.

npm run e2e

Executa a suíte E2E em Chromium com Playwright Test. Antes de rodar, mantenha a API local ativa em http://127.0.0.1:8000:

cd ~/Projects/api_memorial_descritivo
.venv/bin/uvicorn app.main:app --reload --host 127.0.0.1 --port 8000

A suíte contém um smoke real-backend que valida o dashboard contra essa API local e testes contract-mocked que interceptam contratos críticos no navegador para cobrir histórico, detalhe, download, exclusão, mobile, loading e erros seguros sem depender do Railway nem de credenciais reais.

npm run e2e:ui

Abre a interface do Playwright para depuração local dos testes E2E.

Produção

Recomendação atual:

  • Frontend: Vercel
  • API: Railway, preferencialmente em um serviço separado do chatbot
  • Persistência: Supabase Postgres + Supabase Storage

Variável no Vercel:

VITE_API_URL=https://<railway-api-domain>
VITE_SUPABASE_URL=https://<projeto>.supabase.co
VITE_SUPABASE_PUBLISHABLE_KEY=<publishable-key>

Variáveis relevantes na API Railway:

CORS_ORIGINS=https://<vercel-dashboard-domain>
SUPABASE_URL=...
SUPABASE_SECRET_KEY=...
OPENAI_API_KEY=...
USE_LLM_EXTRACTION=true
GENERATED_MEMORIALS_BUCKET=generated-memorials
GENERATED_MEMORIALS_SIGNED_URL_TTL=3600

No Supabase:

  • habilite login por email/senha;
  • desabilite cadastro público;
  • execute as migrations da API até migrations/005_auth_profiles_and_ownership.sql;
  • confirme que o bucket privado generated-memorials existe;
  • mantenha service role/secret key apenas no backend;
  • use no frontend somente a publishable key.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages