Uma plataforma profissional de analytics que captura eventos via API, processa dados em tempo real e apresenta métricas em um dashboard interativo.
- Backend Escalável: Node.js + TypeScript com arquitetura limpa
- Processamento Assíncrono: Filas Redis com Bull para alta performance
- Tempo Real: WebSocket para atualizações instantâneas
- Dashboard Interativo: React com visualizações de dados profissionais
- API RESTful: Documentada e com rate limiting
- Containerizado: Docker Compose para desenvolvimento fácil
Cliente → API REST → Redis Queue → Event Processor
↓ ↓
WebSocket ← Cache/DB ← Agregações
Principais Componentes:
- API REST: Recebe eventos e expõe métricas
- Event Processor: Processa eventos assincronamente
- Aggregation Engine: Calcula métricas (contadores, médias, percentis)
- WebSocket Server: Push de dados em tempo real
- Dashboard: Visualização interativa de métricas
- Node.js + TypeScript
- Express.js
- PostgreSQL
- Redis + Bull
- Socket.io
- Jest
- React + TypeScript
- Recharts
- TailwindCSS
- Vite
- Docker + Docker Compose
- ESLint + Prettier
- GitHub Actions (CI/CD)
- Node.js 20+
- Docker e Docker Compose
- Git
- Clone o repositório
git clone <seu-repo>
cd analytics-platform- Configure as variáveis de ambiente
# Backend
cp backend/env.template backend/.env
# Edite backend/.env com suas configurações- Inicie com Docker Compose
docker-compose up -d- Ou rode localmente
# Backend
cd backend
npm install
npm run dev
# Frontend (em outro terminal)
cd frontend
npm install
npm run dev- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- API Docs: http://localhost:3000/api-docs
analytics-platform/
├── backend/
│ ├── src/
│ │ ├── config/ # Configurações (DB, Redis, etc)
│ │ ├── controllers/ # Controllers da API
│ │ ├── services/ # Lógica de negócio
│ │ ├── repositories/ # Camada de dados
│ │ ├── models/ # Modelos/Entities
│ │ ├── jobs/ # Processadores de fila
│ │ ├── middlewares/ # Middlewares Express
│ │ ├── routes/ # Definição de rotas
│ │ ├── validators/ # Schemas de validação
│ │ └── utils/ # Utilitários
│ └── tests/ # Testes unitários e integração
├── frontend/
│ └── src/
│ ├── components/ # Componentes React
│ ├── pages/ # Páginas
│ ├── services/ # Clients da API
│ ├── hooks/ # Custom React Hooks
│ └── utils/ # Utilitários
└── docker-compose.yml
POST /api/projects- Criar projetoGET /api/projects- Listar projetosGET /api/projects/:id- Obter projetoPUT /api/projects/:id- Atualizar projetoDELETE /api/projects/:id- Deletar projeto
POST /api/events- Enviar eventoPOST /api/events/batch- Enviar múltiplos eventosGET /api/events- Listar eventos
GET /api/metrics/:projectId- Obter métricas do projetoGET /api/metrics/:projectId/summary- Resumo de métricasGET /api/metrics/:projectId/timeseries- Série temporal
POST /api/keys- Criar API keyGET /api/keys- Listar API keysDELETE /api/keys/:id- Revogar API key
curl -X POST http://localhost:3000/api/events \
-H "Content-Type: application/json" \
-H "X-API-Key: your-api-key" \
-d '{
"projectId": "123",
"eventType": "page_view",
"data": {
"url": "/home",
"userId": "user123"
}
}'curl http://localhost:3000/api/metrics/123?period=1h \
-H "X-API-Key: your-api-key"# Backend
cd backend
npm test # Rodar todos os testes
npm run test:watch # Modo watch
npm run test:coverage # Com cobertura- Separação clara de responsabilidades (Controllers → Services → Repositories)
- Dependency Injection para testabilidade
- Design patterns: Repository, Factory, Strategy
- Filas assíncronas para processamento em background
- Cache em Redis para queries frequentes
- Agregações pré-computadas
- Conexão pool otimizada
- Logs estruturados com Winston
- Métricas de performance
- Health checks
- Rate limiting por API key
- Validação de schemas com Joi
- Helmet para headers de segurança
- CORS configurável
- Machine Learning para detecção de anomalias
- Exportação de dados (CSV, JSON)
- Alertas avançados com múltiplos canais
- Integração com Slack/Discord
- Dashboard customizável
- Multi-tenancy
MIT
⭐ Se este projeto foi útil, considere dar uma estrela!