Almossar é um chatbot para Telegram que busca o cardápio do restaurante universitário da UFCA e envia para o usuário.
O cardapio do RU é disponibilizado no site da UFCA de forma semanal, em formato de PDF. Dessa forma, a proposta do bot é automatizar o processo de obtenção garantindo que o usuário receba o cardapio em formato de texto de forma diária, direto no Telegram.
- ✅ Receba o cardapio do almoço e do jantar todos os dias.
- ❌ Sem perda de tempo, sem precisar baixar arquivos, sem a poluição visual de uma tabela.
/start
: Inicia o bot e salva no banco o novo usuário./cardapio
: Exibe o cardápio do almoço (se ainda não são 14:00h) ou do jantar (se depois das 14:00h e antes de 0:00h)./horarios
: Exibe o horário de funcionamento do Restaurante Universitário./ajuda
: Exibe os comandos disponíveis./sobre
: Exibe informações do bot./contato
: Exibe formas de entrar em contato comigo.
- Java 11 ou superior
- Maven para configurar dependências
- PostgreSQL para salvar os usuários
- Telegram Bot API Token (necessário se registrar no BotFather).
- Clone o repositório
git clone https://github.com/alexreisc/Almossar.git
cd Almossar
- Crie o banco de dados e a tabela de usuários
CREATE DATABASE cardapio_bot;
CREATE TABLE cardapio_bot.usuario (
chatId BIGINT PRIMARY KEY
);
- Na classe
Connection.java
edite URL, USER e PASSWORD para acessar seu banco. - Cire uma variavel de ambiente para guardar o token do seu bot
Windows
SETX VARIABLE_NAME YOUR_BOT_TOKEN
- Compile o código (isto vai gerar um arquivo
.jar
)
mvn clean package
- Execute o bot
java -jar target/Almossar-0.0.1-SNAPSHOT-jar-with-dependencies.jar
Optei por estruturar o projeto na forma "package by feature".
java/br/edu/ufca/chatbot_UFCA/
Main.java
: Classe que executa o códigobot/
: Implementação do bot e seus comandosdownloader/
: Baixar o PDF direto do site e excluir o antigoextractor/
: Extração do texto do PDFrepository/
: Conexão com o banco de dadosscheduler/
: Agendamento de tarefasutils/
: Verificar se PDF existe
resources/arquivos/
: Armazena o arquivo PDF baixado
Sua contribuição é bem-vinda! Abra um pull request :) .
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.