Bot Discord para registrar Dailys com painel interativo, relatórios em embed e métricas de gestão para administradores.
- Sobre
- Funcionalidades
- Fluxo de uso
- Comandos
- Stack
- Pré-requisitos
- Configuração no Discord
- Variáveis de ambiente
- Instalação
- Uso
- Estrutura do projeto
- Licença
O CaféDaily-Bot centraliza o registro de Daily Scrum no Discord: a equipe preenche um formulário (modal) a partir de um painel com botão; cada envio é salvo no MongoDB e notificado em um canal privado para administradores, com embed formatado e menção @everyone.
Administradores também têm acesso a métricas de gestão: sequência de dias com daily, horários habituais de envio e ranking por streak.
| Área | Descrição |
|---|---|
| Painel interativo | Imagem de banner + botão persistente Registrar Daily (sobrevive a reinício do bot) |
| Modal | 5 campos: projeto, ontem, hoje, amanhã e impedimentos |
| Canal admin | Embed com cor de marca #2B140F, autor, timestamp e campos organizados |
| Persistência | Cada daily na coleção dailies com índices por guild, usuário e data |
| Métricas | Streak atual, recorde, horário mais comum e ranking entre membros |
| Deploy | Docker Compose com serviços bot + mongo |
sequenceDiagram
participant Membro
participant Discord
participant Bot
participant MongoDB
participant Admins
Membro->>Discord: Clica em Registrar Daily
Discord->>Bot: Interação (botão)
Bot->>Discord: Abre modal
Membro->>Discord: Envia formulário
Discord->>Bot: modal_submit
Bot->>MongoDB: insert daily
Bot->>Admins: @everyone + embed no canal admin
Bot->>Membro: Confirmação efêmera
Todos os comandos abaixo exigem permissão de Administrador no servidor. Respostas de métricas são efêmeras (só quem executou vê).
| Comando | Descrição |
|---|---|
/daily-setup |
Publica o painel (imagem + botão) no canal atual |
/daily-stats membro |
Métricas individuais: totais, streaks, horários habituais |
/daily-ranking-streaks limite |
Ranking por dias consecutivos com daily (3–25, padrão 10) |
| Camada | Tecnologia |
|---|---|
| Runtime | Python 3.12 |
| API Discord | discord.py 2.4+ |
| Banco | MongoDB 7 (Motor async) |
| Config | python-dotenv |
| Container | Docker + Docker Compose |
- Conta no Discord Developer Portal
- Docker e Docker Compose (recomendado) ou Python 3.12+ e MongoDB acessível
- Servidor Discord com permissão para convidar o bot e usar slash commands
- Crie uma aplicação e um Bot; copie o token.
- Em OAuth2 → URL Generator, marque os escopos:
botapplications.commands
- Permissões sugeridas do bot:
- Enviar mensagens · Incorporar links · Anexar arquivos
- Usar comandos de aplicação
- Mencionar @everyone, @here e todos os cargos (canal admin)
- Convide o bot com a URL gerada.
- Crie dois canais:
- Painel — visível à equipe que vai registrar dailys
- Admin — restrito à staff; destino dos relatórios
- No canal admin, em Permissões, permita que o bot envie mensagens e use
@everyone.
Ative Modo desenvolvedor em Configurações do usuário → Avançado e use Copiar ID no servidor e nos canais.
Copie o exemplo e preencha:
cp .env.example .env| Variável | Obrigatório | Descrição |
|---|---|---|
DISCORD_TOKEN |
Sim | Token do bot |
DAILY_ADMIN_CHANNEL_ID |
Sim | ID do canal onde as dailys são publicadas |
DISCORD_GUILD_ID |
Não | ID do servidor — acelera sync dos slash commands em dev |
MONGODB_URI |
Sim | URI do MongoDB (mongodb://mongo:27017 no Compose) |
MONGODB_DB_NAME |
Não | Nome do banco (padrão: cafedaily) |
TIMEZONE |
Não | Fuso IANA para datas/horários (padrão: America/Sao_Paulo) |
git clone git@github.com:aethos-tech/CafeDaily-Bot.git
cd CafeDaily-Bot
cp .env.example .env
# Edite .env com token e IDs
docker compose up -d --buildVer logs:
docker compose logs -f botApós alterar o
.env, recrie o container do bot (orestartsozinho não recarrega variáveis):docker compose up -d --force-recreate bot
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Edite .env — MONGODB_URI deve apontar para seu MongoDB
python -m src.main- Um administrador executa
/daily-setupno canal do painel. - O bot publica a imagem do painel e o botão Registrar Daily.
- O membro clica, preenche o modal e envia.
- O bot grava no MongoDB e envia o embed no canal admin com
@everyone. - O membro recebe confirmação privada (efêmera).
Para acompanhar a equipe:
/daily-stats @membro— visão individual (streak, horários, totais)./daily-ranking-streaks— ranking de consistência.
CafeDaily-Bot/
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
├── .env.example
└── src/
├── main.py # Entrypoint, sync de commands, view persistente
├── daily_view.py # Painel, modal, embed admin
├── admin_metrics.py # /daily-stats e /daily-ranking-streaks
├── metrics_service.py # Cálculo de streaks e horários
├── db.py # MongoDB (Motor)
└── assets/
├── banner_github.png
└── painel_de_daily.png
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Copyright © 2026 Ariel Sousa · Aethos Tech
Desenvolvido por Ariel Sousa · Aethos Tech
