Frontend React para solicitacao e consulta de reembolsos, com autenticacao por perfil e integracao com API REST.
Este projeto possui dois fluxos principais:
employee: cria solicitacoes de reembolso e envia comprovante.manager: visualiza lista paginada de solicitacoes e abre os detalhes de cada item.
A aplicacao controla sessao com localStorage e envia token JWT no header Authorization.
- React 19 + TypeScript
- Vite 7
- React Router 7
- Axios
- Zod
- Tailwind CSS 4
- Login e cadastro de usuario
- Controle de sessao (
@refund:usere@refund:token) - Roteamento condicional por perfil (
employee/manager) - Cadastro de reembolso com validacao de formulario
- Upload de comprovante (
/uploads) - Tela de confirmacao apos envio
- Dashboard de solicitacoes com busca por nome e paginacao
- Visualizacao de detalhes de solicitacao (manager)
/-> login/signup-> cadastro
/-> formulario de solicitacao/confirm-> confirmacao de envio
/-> dashboard de solicitacoes/refund/:id-> detalhe da solicitacao (somente leitura)
- Node.js 20+
- npm 10+
- API backend rodando em
http://localhost:3333
Endpoints esperados pela UI:
POST /usersPOST /sessionsPOST /uploadsPOST /refundsGET /refundsGET /refunds/:id
# 1) instalar dependencias
npm install
# 2) ambiente de desenvolvimento
npm run dev
# 3) build de producao
npm run build
# 4) preview do build
npm run previewnpm run dev: sobe o servidor de desenvolvimento Vitenpm run build: compila TypeScript e gera build de producaonpm run preview: serve localmente o build gerado
src/
assets/ # icones e imagens
components/ # componentes reutilizaveis de UI
context/ # contexto de autenticacao
dtos/ # tipagens de contratos da API
hooks/ # hooks customizados
pages/ # paginas da aplicacao
routes/ # composicao de rotas por perfil
services/ # clientes HTTP (axios)
utils/ # utilitarios gerais
- A base da API esta fixa em
src/services/api.ts:baseURL: "http://localhost:3333"
- O logout limpa sessao local e redireciona para
/. - O acesso inicial mostra um
Loadingenquanto a sessao eh carregada do storage.
- Erro de CORS:
- confirme se o backend permite origem do frontend (
http://localhost:5173por padrao do Vite).
- confirme se o backend permite origem do frontend (
- Login funciona mas rotas nao liberam:
- valide se a resposta de
/sessionsretornatokeneuser.rolecomemployeeoumanager.
- valide se a resposta de
- Upload falha:
- confirme se o endpoint
/uploadsaceitamultipart/form-datacom campofile.
- confirme se o endpoint
- Mover
baseURLpara variavel de ambiente (VITE_API_URL) - Adicionar testes de componentes e rotas
- Adicionar tratamento centralizado de erros HTTP