Projeto front-end desenvolvido com Vue.js 3.5.23, TypeScript, Vite, Vue Router e Pinia.
- Vue.js 3.5.23 - Framework JavaScript progressivo
- TypeScript - Superset JavaScript com tipagem estática
- Vite - Build tool e dev server
- Vue Router - Roteamento oficial do Vue.js
- Pinia - State management para Vue.js
- Axios - Cliente HTTP para requisições à API
- ESLint + Prettier - Linting e formatação de código
- Node.js 18+
- npm ou yarn
npm installnpm run devO projeto estará disponível em http://localhost:3000
npm run buildPara executar o projeto com Docker, utilize o arquivo docker-compose.yaml localizado no projeto do backend. O arquivo completo de configuração do Docker Compose, incluindo serviços do frontend, backend e dependências (banco de dados, etc.), está centralizado no repositório do backend para facilitar a orquestração de todos os serviços da aplicação.
src/
├── assets/ # Arquivos estáticos (CSS, imagens)
├── components/ # Componentes Vue reutilizáveis
├── composables/ # Composables Vue (lógica reutilizável)
├── router/ # Configuração do Vue Router
├── services/ # Serviços de API
│ ├── auth.service.ts
│ ├── user.service.ts
│ └── document.service.ts
├── stores/ # Stores do Pinia
│ └── auth.ts
├── types/ # Definições TypeScript
│ └── api.ts
├── utils/ # Utilitários
│ └── api.ts # Cliente HTTP configurado
├── views/ # Páginas/Vistas
│ └── HomeView.vue
├── App.vue # Componente raiz
└── main.ts # Entry point da aplicação
O arquivo .env contém as variáveis de ambiente:
VITE_API_BASE_URL=http://localhost:8080O projeto está configurado para se comunicar com a API backend em localhost:8080.
- AuthService - Autenticação (login, logout, refresh)
- UserService - Gerenciamento de usuários
- DocumentService - Gerenciamento de documentos
O apiClient em src/utils/api.ts está configurado com:
- Interceptores para adicionar token de autenticação
- Refresh automático de token em caso de expiração
- Tratamento centralizado de erros
npm run dev- Inicia servidor de desenvolvimentonpm run build- Gera build de produçãonpm run preview- Preview do build de produçãonpm run lint- Executa ESLint
O sistema de autenticação utiliza JWT tokens armazenados no localStorage:
accessToken- Token de acessorefreshToken- Token para renovação
O cliente HTTP automaticamente:
- Adiciona o token nas requisições
- Renova o token quando expira
- Redireciona para login em caso de falha na renovação