Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExpenseControl — Web (React + TypeScript)

Frontend do sistema de controle de gastos domésticos, consumindo a API ExpenseControl.Api (.NET).

Como rodar

npm install
npm run dev

A aplicação sobe em http://localhost:5173. O vite.config.ts já tem um proxy configurado para http://localhost:5241 (onde o backend roda por padrão) — então basta a API estar rodando em paralelo, sem precisar configurar CORS manualmente.

Estrutura

src/
├── api/
│   ├── client.ts       # instância do axios + interceptors (JWT automático, 401 -> logout)
│   ├── services.ts     # funções que chamam cada endpoint da API
│   └── types.ts        # interfaces TypeScript espelhando os DTOs do backend
├── context/
│   └── AuthContext.tsx # estado global de autenticação (login/logout/token)
├── routes/
│   └── ProtectedRoute.tsx # bloqueia acesso a rotas sem login
├── components/
│   └── Layout.tsx       # sidebar + área de conteúdo, comum a todas as páginas logadas
└── pages/
    ├── Login.tsx
    ├── Dashboard.tsx     # gráficos: saldo geral, por pessoa, por tipo, evolução mensal
    ├── People.tsx        # CRUD de pessoas
    ├── Totals.tsx        # Consolida os totais
    ├── Register.tsx      # CRUD de usuários
    └── Transactions.tsx  # CRUD de transações

Fluxo de autenticação

  1. Login.tsx chama POST /api/auth/login, recebe o token JWT
  2. O token é salvo em localStorage (via client.ts)
  3. Toda chamada subsequente já sai com o header Authorization: Bearer {token} automaticamente
  4. Se a API responder 401 (token expirado/inválido), o usuário é redirecionado para /login

Manutenção dos tipos

Os tipos em src/api/types.ts são mantidos manualmente em espelho aos DTOs (records) do backend C#. Não há geração automática de tipos a partir do OpenAPI neste projeto — se um DTO mudar no backend (novo campo, campo removido, enum novo), replique a mudança aqui também.

About

Frontend do sistema de controle de gastos domésticos, consumindo a API ExpenseControl.Api (.NET).

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages