RUBot
Telegram bot that serves the daily and weekly menu of UFPA's university restaurant by scraping the official site.
Overview
RUBot is a Telegram bot that delivers the menu of the Restaurante Universitário (UFPA). The official menu lives on a static, mobile-unfriendly web page — RUBot scrapes it, formats it nicely, and answers with a single command. The bot is live at t.me/rub_pa_bot.


Features
/hoje— today’s menu, formatted with emojis for readability./semana— the full week’s menu.- JSoup scraping with a 30-minute cache so the bot never hammers the source site.
- Runs as a long-polling Spring Boot service, containerized with Docker.
Tech stack
- Java 24 / Spring Boot 3.5
- TelegramBots API
- JSoup for scraping
- Docker + Google Cloud Run deployment
Running locally
cp .env.example .env # fill in BOT_KEY (BotFather token)
./mvnw spring-boot:run # or: docker compose up --build
Why this project?
A real-world bot in production: it combines an external API (Telegram), a fragile third-party source (the official site), caching, and a containerized deployment — the kind of resilience work backend developers do daily.