Appearance
Project Structure - Estrutura do Projeto
Stack Tecnológico
| Categoria | Tecnologia | Versão |
|---|---|---|
| Framework | Vue 3 (Composition API) | 3.4.15 |
| Build Tool | Vite | 5.0.11 |
| Linguagem | TypeScript | 5.3.0 |
| Roteamento | Vue Router | 4.2.5 |
| Estado | Pinia | 2.1.7 |
| UI Library | Naive UI | 2.37.3 |
| CSS Framework | Tailwind CSS | 3.4.1 |
| Pré-processador | SCSS | 1.70.0 |
| HTTP Client | Axios | 1.7.2 |
| i18n | Vue i18n | 9.x |
| Ícones | Oh Vue Icons | 1.0.0-rc3 |
Estrutura de Pastas
src/
├── assets/ # Estilos globais e imagens
│ └── styles/scss/ # Arquivos SCSS modulares
├── components/ # Componentes globais compartilhados
│ ├── ContainerApp/ # Layout wrapper principal
│ ├── Header/ # Navegação superior
│ ├── SideMenu/ # Menu lateral
│ └── Logo.vue
├── config/ # Configurações (API, i18n)
├── locales/ # Arquivos de tradução (en.json, pt-BR.json)
├── domain/ # Tipos e constantes de domínio centralizados
│ ├── common/ # Tipos compartilhados (BaseEntity, Person)
│ ├── contract/ # Tipos do domínio Contract
│ └── template/ # Tipos do domínio Template
├── hooks/ # Stores Pinia e composables globais (sem dono de módulo)
├── models/ # Tipos globais de response
├── modules/ # Módulos de features (arquitetura principal)
│ ├── auth/
│ ├── contracts/
│ ├── dashboard/
│ ├── templates/
│ └── [outros módulos]
├── router/ # Configuração de rotas principal
├── theme/ # Configuração de temas (dark/light)
└── utils/ # Funções utilitárias puras (formatação, strings)Não existem
src/stores/nemsrc/types/. Stores globais ficam emsrc/hooks/; tipos vão parasrc/domain/<mod>/.
Arquitetura Modular
Cada módulo segue a estrutura:
modules/[nome-modulo]/
├── components/ # Componentes específicos do módulo
├── pages/ # Páginas/Views do módulo
├── router/ # Rotas específicas do módulo
├── services/ # Chamadas de API do módulo
├── hooks/ # Stores Pinia e composables (useXxx.ts, sem sufixo Store)
└── helpers/ # Helpers UI/UX por tópico (kebab-case, ex: contract-flow.ts)Não existem as pastas
stores/,composables/outypes/por módulo. Stores e composables ficam todos emhooks/; tipos de domínio vão parasrc/domain/<mod>/.
Variáveis de Ambiente
env
VITE_API_URL="http://localhost:8011"Scripts de Desenvolvimento
| Script | Descrição |
|---|---|
npm run dev | Servidor de desenvolvimento |
npm run build | Build de produção |
npm run test:unit | Testes unitários |
npm run lint | Lint e correção automática |
npm run format | Formatação com Prettier |
npm run start:mock | API mock com JSON Server |