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.javaedite 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.jarOptei 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.