agenor_o_mestre

Bot de WhatsApp RPG medieval que gera quests de treino com IA (Crystal + Kemal)

Agenor, o Mestre

Bot de WhatsApp com tema RPG medieval que transforma treinos em missoes epicas usando IA.

Build License: MIT Crystal

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

  1. O usuario envia uma mensagem no WhatsApp
  2. O bot inicia uma anamnese (perfil do heroi): idade, objetivo, local de treino, restricoes
  3. O usuario escolhe uma classe RPG (Guerreiro, Mago, Ladino, Patrulheiro ou Clerigo)
  4. A IA gera quests de treino personalizadas com linguagem imersiva de RPG
  5. 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

Deploy

Render (recomendado)

  1. Fork este repo
  2. No Render, crie um New Web Service
  3. Aponte para o seu fork
  4. Configure as variaveis de ambiente (ver abaixo)
  5. O Render detecta o Dockerfile e 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

  1. Fork o repo
  2. Crie uma branch (git checkout -b minha-feature)
  3. Commit suas mudancas (git commit -m 'adiciona feature')
  4. Push para a branch (git push origin minha-feature)
  5. 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