Uma plataforma completa de business intelligence que transforma dados empresariais complexos em insights visuais acionáveis.
- Visualizações Interativas: Gráficos D3.js (linha, barras, pizza, área, heatmap, scatter)
- Tempo Real: Atualizações via WebSockets com Socket.io
- Layout Personalizável: Drag-and-drop com react-grid-layout
- Exportação: PDF, CSV, XLSX, PNG
- RBAC: Controle de acesso baseado em papéis (Admin, Analista, Viewer)
- Design Responsivo: Mobile, tablet e desktop
- Relatórios Agendados: Sistema CRON com envio por e-mail
- Filtros Dinâmicos: Filtros em tempo real com múltiplas condições
- Next.js 16 (App Router)
- React 19
- TypeScript
- TailwindCSS 4
- D3.js 7
- Socket.io-client
- Zustand (state management)
- react-grid-layout
- Next.js API Routes
- Socket.io
- PostgreSQL 15+
- Prisma ORM
- node-cron
- nodemailer
- JWT authentication
- Jest + React Testing Library
- fast-check (Property-Based Testing)
- Playwright (E2E)
- Supertest (API testing)
- Clone o repositório:
git clone <repository-url>
cd dashboard-analytics- Instale as dependências:
npm install- Configure as variáveis de ambiente:
cp .env.example .envEdite o arquivo .env com suas configurações.
- Configure o banco de dados:
npm run prisma:migrate
npm run prisma:seed- Inicie o servidor de desenvolvimento:
npm run devAcesse http://localhost:3000
# Testes unitários
npm test
# Testes com coverage
npm run test:coverage
# Testes E2E
npm run test:e2e
# Testes E2E com UI
npm run test:e2e:uinpm run dev- Inicia o servidor de desenvolvimentonpm run build- Build para produçãonpm run start- Inicia o servidor de produçãonpm run lint- Executa o linternpm run lint:fix- Corrige problemas do linternpm run format- Formata o código com Prettiernpm run format:check- Verifica formataçãonpm run test- Executa testes unitáriosnpm run test:watch- Testes em modo watchnpm run test:coverage- Testes com coveragenpm run test:e2e- Testes end-to-endnpm run prisma:generate- Gera o Prisma Clientnpm run prisma:migrate- Executa migrationsnpm run prisma:studio- Abre o Prisma Studionpm run prisma:seed- Popula o banco com dados iniciais
dashboard-analytics/
├── app/ # Next.js App Router
│ ├── api/ # API Routes
│ ├── components/ # Componentes React
│ │ ├── charts/ # Componentes de gráficos D3.js
│ │ ├── widgets/ # Widgets do dashboard
│ │ └── layout/ # Componentes de layout
│ ├── dashboard/ # Páginas do dashboard
│ └── globals.css # Estilos globais
├── backend/ # Lógica do servidor
│ ├── services/ # Lógica de negócio
│ ├── controllers/ # Controllers da API
│ ├── repositories/ # Acesso a dados
│ ├── workers/ # Background jobs
│ └── middleware/ # Middlewares
├── lib/ # Utilitários
│ ├── types/ # Tipos TypeScript
│ └── utils/ # Funções auxiliares
├── store/ # State management (Zustand)
├── prisma/ # Prisma ORM
│ ├── schema.prisma # Schema do banco
│ └── migrations/ # Migrations
├── e2e/ # Testes E2E (Playwright)
└── public/ # Arquivos estáticos
Veja .env.example para todas as variáveis necessárias.
Principais variáveis:
DATABASE_URL- URL de conexão do PostgreSQLJWT_SECRET- Chave secreta para JWTSMTP_*- Configurações de e-mailNEXT_PUBLIC_API_URL- URL da APINEXT_PUBLIC_WS_URL- URL base do Socket.IO/WebSocket
Para mais informações, consulte:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está sob a licença MIT.
Dashboard Analytics Team