Dashboard financeiro para acompanhar vendas, resumo consolidado e detalhes de cada venda com filtro por período, atalhos por mês e gráfico por status.
| Tecnologia | Uso no projeto |
|---|---|
| React | Construção da interface com componentes e hooks |
| TypeScript | Tipagem compartilhada e contratos de dados |
| Vite | Ambiente de desenvolvimento e build |
| React Router DOM | Rotas e navegação entre páginas |
| Recharts | Visualização do gráfico de vendas |
| Fetch API | Consumo da API de vendas |
| CSS Custom Properties | Tokens visuais e consistência de estilo |
| Media Queries | Adaptação da interface para telas menores |
Os testes cobrem os componentes que têm comportamento relevante:
src/Components/Loading.test.tsxsrc/Components/DateInput.test.tsxsrc/Components/MesBtn.test.tsxsrc/Components/Meses.test.tsxsrc/Components/DataRange.test.tsxsrc/Components/VendaItem.test.tsxsrc/Components/Sidenav.test.tsxsrc/Components/Header.test.tsxsrc/Components/GraficoVendas.test.tsx
npm install
npm run devnpm run buildnpm run testPara executar a suíte uma única vez:
npm run test:runnpm run preview- Resumo com total de vendas, recebido e processando.
- Lista de vendas com link para detalhe.
- Página de venda individual.
- Filtro por intervalo de datas.
- Atalhos por mês.
- Gráfico de vendas por status.
- Estados de carregamento durante a busca dos dados.
| Rota | Descrição |
|---|---|
/ |
Página de resumo com indicadores e gráfico. |
/vendas |
Lista de vendas carregadas pela API. |
/vendas/:id |
Detalhe de uma venda específica. |
As rotas estão definidas em src/App.tsx e usam BrowserRouter com Routes.
.
├── index.html
├── package.json
├── public/
├── src/
│ ├── Components/
│ ├── Contexts/
│ ├── Hooks/
│ ├── Pages/
│ ├── Types/
│ ├── Utils/
│ └── assets/
│ └── icons/
├── tsconfig.json
├── tsconfig.app.json
└── vite.config.ts
public/guarda os arquivos estáticos servidos diretamente pelo Vite, como o favicon.src/Components/concentra os componentes reutilizáveis da interface.src/Contexts/concentra o contexto global de dados e o intervalo de datas.src/Hooks/reúne hooks reutilizáveis, como o fetch genérico.src/Pages/contém as páginas roteadas.src/Types/centraliza os tipos compartilhados.src/Utils/traz utilitários pequenos, como a formatação de data.src/assets/armazena o SVG principal e os ícones usados na navegação.
Este projeto está sob a licença MIT.
Autor: ManoelReisDev
Repositório: fintech
Feito para acompanhar vendas com uma interface simples, dados compartilhados e visualização clara.