Skip to content

ArielRSousa/CafeDaily-Bot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CaféDaily-Bot — Seu bot de Daily Scrum no Discord

Bot Discord para registrar Dailys com painel interativo, relatórios em embed e métricas de gestão para administradores.

Python 3.12 discord.py MongoDB Docker Compose License MIT

Slash Commands Modals e Buttons Métricas Cor da marca


Índice


Sobre

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.


Funcionalidades

Á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

Fluxo de uso

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
Loading

Comandos

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)

Stack

Camada Tecnologia
Runtime Python 3.12
API Discord discord.py 2.4+
Banco MongoDB 7 (Motor async)
Config python-dotenv
Container Docker + Docker Compose

Pré-requisitos

  • 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

Configuração no Discord

  1. Crie uma aplicação e um Bot; copie o token.
  2. Em OAuth2 → URL Generator, marque os escopos:
    • bot
    • applications.commands
  3. 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)
  4. Convide o bot com a URL gerada.
  5. Crie dois canais:
    • Painel — visível à equipe que vai registrar dailys
    • Admin — restrito à staff; destino dos relatórios
  6. No canal admin, em Permissões, permita que o bot envie mensagens e use @everyone.

Copiar IDs

Ative Modo desenvolvedor em Configurações do usuário → Avançado e use Copiar ID no servidor e nos canais.


Variáveis de ambiente

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)

Instalação

Docker (recomendado)

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 --build

Ver logs:

docker compose logs -f bot

Após alterar o .env, recrie o container do bot (o restart sozinho não recarrega variáveis):

docker compose up -d --force-recreate bot

Local (sem Docker)

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

Uso

  1. Um administrador executa /daily-setup no canal do painel.
  2. O bot publica a imagem do painel e o botão Registrar Daily.
  3. O membro clica, preenche o modal e envia.
  4. O bot grava no MongoDB e envia o embed no canal admin com @everyone.
  5. 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.

Estrutura do projeto

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

Licença

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

About

Bot Discord para registrar Dailys com painel interativo, relatórios em embed e métricas de gestão para administradores.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 99.2%
  • Dockerfile 0.8%