agenor_o_mestre
Agenor, o Mestre
Bot de WhatsApp com tema RPG medieval que transforma treinos em missoes epicas usando IA.
Agenor e um sábio guerreiro medieval que guia herois em jornadas de treino fisico dentro de um mundo de fantasia. Ele gera quests personalizadas, motiva com linguagem epica e adapta exercicios ao perfil de cada usuario — tudo via WhatsApp.
Como funciona
- O usuario envia uma mensagem no WhatsApp
- O bot inicia uma anamnese (perfil do heroi): idade, objetivo, local de treino, restricoes
- O usuario escolhe uma classe RPG (Guerreiro, Mago, Ladino, Patrulheiro ou Clerigo)
- A IA gera quests de treino personalizadas com linguagem imersiva de RPG
- O usuario recebe XP, sobe de nivel e mantém streak de treino
Classes RPG
| Classe | Foco | Icone |
|---|---|---|
| Guerreiro | Forca bruta e resistencia | ⚔️ |
| Mago | Flexibilidade e mente | 🔮 |
| Ladino | Velocidade e agilidade | 🗡️ |
| Patrulheiro | Endurance e disciplina | 🏹 |
| Clerigo | Equilibrio corpo e alma | ✨ |
Stack
- Crystal + Kemal — web framework rapido e type-safe
- PostgreSQL — banco de dados
- OpenAI API — geracao de quests e interacoes com IA
- Wappfly — API de WhatsApp
Deploy
Render (recomendado)
- Fork este repo
- No Render, crie um New Web Service
- Aponte para o seu fork
- Configure as variaveis de ambiente (ver abaixo)
- O Render detecta o
Dockerfilee faz o build automatico
Local
Requisitos
Setup
# Clone o repo
git clone https://github.com/davi19/agenor_o_mestre.git
cd agenor_o_mestre
# Copie e configure as variaveis de ambiente
cp .env.example .env
# Instale as dependencias
shards install
# Rode o servidor
crystal run src/agenor_o_mestre.cr
Docker
docker-compose up --build
Variaveis de ambiente
| Variavel | Obrigatoria | Descricao |
|---|---|---|
DB_HOST |
Sim | Host do PostgreSQL |
DB_PORT |
Sim | Porta do PostgreSQL |
DB_USER |
Sim | Usuario do banco |
DB_PASSWORD |
Sim | Senha do banco |
WAPPFLY_TOKEN |
Sim | Token da API Wappfly |
OPENAI_API_KEY |
Sim | Chave da API OpenAI |
OPENAI_MODEL |
Nao | Modelo OpenAI (default: gpt-4o-mini) |
PORT |
Nao | Porta do servidor (default: 3000) |
Endpoints
| Metodo | Rota | Descricao |
|---|---|---|
GET |
/health |
Health check |
POST |
/webhook |
Webhook do Wappfly (recebe mensagens do WhatsApp) |
Estrutura
src/
agenor_o_mestre.cr # Entry point e rotas
config/settings.cr # Configuracoes via ENV
data/
connection.cr # Conexao com PostgreSQL
migrations/ # Migrations do banco
game/
classes.cr # Classes RPG (Guerreiro, Mago, etc)
exercises.cr # Exercicios por classe e local
quests.cr # Logica de quests
templates.cr # Templates de mensagens
handlers/
anamnesis_handler.cr # Fluxo de anamnese (perfil)
class_handler.cr # Escolha de classe
intro_handler.cr # Mensagem inicial
provocation_handler.cr # Provocacoes motivacionais
quest_handler.cr # Geracao e feedback de quests
models/
user.cr # Modelo de usuario
quest.cr # Modelo de quest
exercise.cr # Modelo de exercicio
player_class.cr # Modelo de classe
services/
ai_service.cr # Integracao com OpenAI
message_router.cr # Roteamento de mensagens
wappfly_client.cr # Cliente da API Wappfly
utils/
phone.cr # Utilitarios de telefone
scripts/
migrate.cr # Script de migration manual
Contribuindo
- Fork o repo
- Crie uma branch (
git checkout -b minha-feature) - Commit suas mudancas (
git commit -m 'adiciona feature') - Push para a branch (
git push origin minha-feature) - Abra um Pull Request
Licenca
MIT — veja LICENSE para detalhes.
Repository
agenor_o_mestre
Owner
Statistic
- 0
- 0
- 0
- 0
- 3
- 4 minutes ago
- July 27, 2026
License
MIT License
Links
Synced at
Mon, 27 Jul 2026 23:09:48 GMT
Languages