geffersonFerraz/neoway-front

★ 0Forks 0TypeScriptGitHub ↗Compare

README

Neoway Front

Projeto front-end desenvolvido com Vue.js 3.5.23, TypeScript, Vite, Vue Router e Pinia.

Tecnologias

  • 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

Pré-requisitos

  • Node.js 18+
  • npm ou yarn

Instalação

npm install

Executar em desenvolvimento

npm run dev

O projeto estará disponível em http://localhost:3000

Build para produção

npm run build

Docker

Para 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.

Estrutura do Projeto

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

Configuração

O arquivo .env contém as variáveis de ambiente:

VITE_API_BASE_URL=http://localhost:8080

Integração com API

O projeto está configurado para se comunicar com a API backend em localhost:8080.

Serviços disponíveis

  • AuthService - Autenticação (login, logout, refresh)
  • UserService - Gerenciamento de usuários
  • DocumentService - Gerenciamento de documentos

Cliente HTTP

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

Scripts

  • npm run dev - Inicia servidor de desenvolvimento
  • npm run build - Gera build de produção
  • npm run preview - Preview do build de produção
  • npm run lint - Executa ESLint

Autenticação

O sistema de autenticação utiliza JWT tokens armazenados no localStorage:

  • accessToken - Token de acesso
  • refreshToken - 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

Contributors

geffersonFerraz

Issues