Sistema de Locação de Trajes a Rigor - Frontend Electron
- Tecnologias
- Arquitetura
- Princípios Aplicados
- Como Executar
- Testes
- Qualidade de Código
- CI/CD
- Scripts Disponíveis
- Configuração da API
- Electron 33+ - Runtime desktop
- React 18 - Biblioteca de UI
- TypeScript - Linguagem
- Vite - Bundler
- React Router - Roteamento
- Axios - Cliente HTTP
- Zod - Validação
src/
├── dominio/ # Camada interna (innermost)
│ ├── entidades/ # Entidades do negócio
│ ├── interfaces/ # Contratos (abstrações)
│ └── erros/ # Erros de domínio
│
├── aplicacao/ # Casos de uso
│ └── clientes/ # Operações de cliente
│
├── infraestrutura/ # Implementações externas
│ └── api/ # Cliente API REST
│
└── interfaces-graficas/ # Camada externa (UI)
├── componentes/ # Componentes React reutilizáveis
├── contextos/ # React Context (estado global)
├── paginas/ # Telas/pages
└── estilos/ # CSS
- S - Single Responsibility (cada módulo tem uma responsabilidade)
- O - Open/Closed (extensível sem modificar código existente)
- L - Liskov Substitution (interfaces bem definidas)
- I - Interface Segregation (contratos focados)
- D - Dependency Inversion (dependências de abstrações)
- Node.js 18+
- Backend TCC rodando em http://localhost:8080
cd tcc-frontend
npm install# Executar frontend React (Vite)
npm run dev
# Executar com Electron
npm run dev:electron# Build para produção
npm run buildO executável será gerado em release/.
O projeto utiliza Jest com React Testing Library.
# Executar testes
npm run test
# Executar em modo watch
npm run test:watch
# Executar com coverage
npm run test:coveragejest.config.ts- Configuração principalsrc/setupTests.ts- Setup com jest-domsrc/__mocks__/- Mocks para arquivos estáticos
O projeto possui threshold mínimo de 50% de cobertura. O relatório é gerado em coverage/.
# Verificar erros
npm run lint
# Corrigir automaticamente
npm run lint:fix# Formatar código
npm run prettier
# Verificar formatação
npm run prettier:check# Verificar tipos
npm run typecheckO projeto possui workflows do GitHub Actions em .github/workflows/:
-
ci.yml - Pipeline principal
- Lint + TypeScript check
- Testes com coverage
- Build Vite
- Build Electron App
-
code-quality.yml - Análise de qualidade
- ESLint
- TypeScript
- Ubuntu latest
- Node.js 20
- Cache de dependências
electron/
├── main.ts # Processo principal (main process)
└── preload.ts # Bridge seguro IPC (preload script)
contextIsolation: true- Isolamento de contextonodeIntegration: false- Sem acesso direto ao Node.jssandbox: true- Sandboxed renderercontextBridge- Exposição segura de APIs
| Script | Descrição |
|---|---|
npm run dev |
Iniciar servidor Vite |
npm run dev:electron |
Iniciar com Electron |
npm run build |
Build de produção |
npm run build:vite |
Apenas build Vite |
npm run lint |
Verificar código |
npm run lint:fix |
Corrigir código |
npm run typecheck |
Verificar tipos |
npm run test |
Executar testes |
npm run test:watch |
Testes em modo watch |
npm run test:coverage |
Testes com coverage |
npm run prettier |
Formatar código |
npm run prettier:check |
Verificar formatação |
O backend padrão está configurado em http://localhost:8080/api.
Para alterar, modifique a constante API_BASE_URL em:
src/infraestrutura/api/ClienteApiRepositorio.ts