Documentação: README em cada projecto
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
63
geradoresfe/README.md
Normal file
63
geradoresfe/README.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# geradoresfe
|
||||
|
||||
Frontend React 19 + Vite + Tailwind CSS 4 + TypeScript. A UI não conhece os tipos de gerador: lê
|
||||
`/api/v1/generators` e constrói as páginas e os formulários de opções a partir dos metadados da
|
||||
[API](../GeradoresWS/README.md).
|
||||
|
||||
## Desenvolvimento
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run dev # http://localhost:3000
|
||||
```
|
||||
|
||||
O Vite faz proxy de `/api`, `/docs` e `/openapi` para `http://localhost:5053`
|
||||
(`dotnet run --project GeradoresWS --launch-profile http`). Para outro backend:
|
||||
`API_PROXY_TARGET=http://host:porta npm run dev`.
|
||||
|
||||
| Script | Descrição |
|
||||
|---|---|
|
||||
| `npm run dev` | Servidor de desenvolvimento |
|
||||
| `npm run build` | Type-check (`tsc -b`) e build de produção em `dist/` |
|
||||
| `npm run lint` | ESLint |
|
||||
| `npm test` | Vitest |
|
||||
| `npm run preview` | Serve o build localmente |
|
||||
|
||||
## Páginas
|
||||
|
||||
| Rota | Página |
|
||||
|---|---|
|
||||
| `/` | Lista de geradores por categoria |
|
||||
| `/gerador/:id` | Opções, geração em lote (até 1000), cópia e exportação CSV/JSON/TXT |
|
||||
| `/validar` | Validador livre: detecta o tipo e explica porque é (in)válido |
|
||||
| `/NIF`, `/NISS`, `/CC` | Redireccionam para as rotas novas |
|
||||
|
||||
## Estrutura
|
||||
|
||||
| Caminho | Conteúdo |
|
||||
|---|---|
|
||||
| `src/lib/api.ts` | Cliente da API e tipos |
|
||||
| `src/lib/useGenerators.tsx` | Contexto que carrega a lista de geradores uma vez |
|
||||
| `src/lib/export.ts` | Exportação CSV/JSON/TXT (testado em `export.test.ts`) |
|
||||
| `src/pages/` | Páginas das rotas |
|
||||
| `src/components/` | Cartões, formulário de opções, validador, resultados |
|
||||
| `src/components/ui/` | Componentes base (botão, input, select, badge, …) |
|
||||
| `src/layout/` | Cabeçalho, rodapé e layout |
|
||||
| `src/context/ThemeContext.tsx` | Modo claro/escuro |
|
||||
|
||||
## API
|
||||
|
||||
Por omissão o cliente usa caminhos relativos (`/api/v1`). Em dev é o proxy do Vite; em produção é o nginx.
|
||||
`VITE_API_URL` (em build time) permite apontar para outro host.
|
||||
|
||||
## Docker
|
||||
|
||||
```bash
|
||||
docker build -t geradoresfe .
|
||||
docker run -p 3000:80 -e API_UPSTREAM=http://geradoresws:8080 geradoresfe
|
||||
```
|
||||
|
||||
A imagem serve o build com nginx. O `nginx.conf.template` é processado com `envsubst` no arranque, e
|
||||
`/api`, `/docs` e `/openapi` são encaminhados para `API_UPSTREAM` (por omissão `http://geradoresws:8080`).
|
||||
A mesma imagem serve em qualquer ambiente sem rebuild. Os ficheiros em `/assets/` têm cache longa e o resto
|
||||
cai no `index.html` (SPA).
|
||||
Reference in New Issue
Block a user