API completa de analytics com integração Discord para rastreamento de visualizações em tempo real.
- ✅ API REST completa com Express.js
- ✅ Banco de dados SQLite para persistência
- ✅ Notificações em tempo real no Discord via Webhook
- ✅ Bot Discord com comandos interativos
- ✅ Estatísticas detalhadas por página
- ✅ Histórico de visualizações recentes
- ✅ CORS habilitado para uso público
- Node.js 16+ instalado
- Conta no Discord
- Servidor Discord (para o bot)
git clone https://github.com/rickcosta-dev/public-analytics-api.git
cd public-analytics-apinpm installnpm run setup- Acesse seu servidor Discord
- Vá em Configurações do Servidor > Integrações > Webhooks
- Clique em Novo Webhook
- Copie a URL do webhook
- Acesse Discord Developer Portal
- Clique em New Application
- Vá em Bot > Add Bot
- Copie o Token
- Em OAuth2 > URL Generator, selecione:
- Scopes:
bot,applications.commands - Permissions:
Send Messages,Embed Links,Use Slash Commands
- Scopes:
- Copie a URL gerada e adicione o bot ao seu servidor
Edite o arquivo .env:
PORT=3000
API_URL=http://localhost:3000
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/SEU_WEBHOOK_AQUI
BOT_TOKEN=SEU_TOKEN_DO_BOT_AQUI
DISCORD_CHANNEL_ID=ID_DO_CANAL (opcional)npm startnpm run botnpm run allnpm run dev # Apenas API
npm run dev:bot # Apenas Bot
npm run all # API + BotRegistra uma nova visualização
Request:
{
"page": "/home",
"userAgent": "Mozilla/5.0...",
"ip": "192.168.1.1"
}Response:
{
"success": true,
"message": "View recorded successfully",
"data": {
"view": {
"id": 1,
"page": "/home",
"userAgent": "Mozilla/5.0...",
"ip": "192.168.1.1",
"timestamp": "2024-01-15T10:30:00.000Z"
},
"totalViews": 42
}
}Retorna estatísticas gerais
Response:
{
"success": true,
"data": {
"totalViews": 150,
"pages": {
"/home": 100,
"/about": 30,
"/contact": 20
}
}
}Retorna estatísticas de uma página específica
Response:
{
"success": true,
"data": {
"page": "/home",
"views": 100
}
}Retorna visualizações recentes
Response:
{
"success": true,
"data": [
{
"id": 150,
"page": "/home",
"user_agent": "Mozilla/5.0...",
"ip": "192.168.1.1",
"timestamp": "2024-01-15T10:30:00.000Z"
}
]
}Exibe estatísticas completas do analytics
- Total de visualizações
- Top 10 páginas mais acessadas
Exibe visualizações recentes
limit: Número de visualizações (1-25, padrão: 10)
Exibe estatísticas de uma página específica
path: Caminho da página (ex: /home)
public-analytics-api/
├── src/
│ ├── index.js # Entrada principal da API
│ ├── routes.js # Definição das rotas
│ ├── database.js # Configuração do SQLite
│ └── services/
│ ├── analyticsService.js # Lógica de negócio
│ └── discordService.js # Integração Discord
├── bot/
│ └── bot.js # Bot Discord com comandos
├── scripts/
│ └── setup.js # Script de configuração inicial
├── data/
│ └── analytics.db # Banco de dados (criado automaticamente)
├── .env # Variáveis de ambiente
├── .env.example # Exemplo de configuração
├── .gitignore # Arquivos ignorados pelo Git
├── package.json # Dependências e scripts
└── README.md # Documentação
- ✅ Não exponha seu
.envno Git - ✅ Use HTTPS em produção
- ✅ Configure rate limiting se necessário
- ✅ Valide todos os inputs do usuário
- ✅ Considere adicionar autenticação para endpoints sensíveis
heroku create seu-app
heroku config:set DISCORD_WEBHOOK_URL=sua_url
heroku config:set BOT_TOKEN=seu_token
git push heroku mainrailway login
railway init
railway add
railway up- Conecte seu repositório
- Configure as variáveis de ambiente
- Deploy automático a cada push
Contribuições são bem-vindas! Sinta-se à vontade para:
- Fork o projeto
- Criar uma branch (
git checkout -b feature/NovaFuncionalidade) - Commit suas mudanças (
git commit -m 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/NovaFuncionalidade) - Abrir um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
- 🐛 Encontrou um bug? Abra uma issue
- 💡 Tem uma sugestão? Abra uma discussion
- 📧 Email: rickdev0021@gmail.com
- Discord: rickzin02
Feito com ❤️ por RickZin
