Skip to content
pedrovilaca.dev
Read this page in Portuguese

pedro/projects/smartcampus

SmartCampus

Student assistant: a Telegram bot with AI and OCR, Canvas integration, on-campus location via Wi-Fi, and a REST API in Java with Spring Boot.

IoTWebAcademic

Context

SmartCampus is the project for the IoT II course at PUC Minas, built as a pair with Gabriel Batista de Almeida and advised by Prof. Mario Guimarães Buratto.

Problem

A student's routine is scattered across many places: the classroom whiteboard, Canvas with the assignments, the campus map. The idea was to bring all of that together in an assistant that lives where the student already is.

Solution

  • Telegram bot with AI and OCR: a photo of the whiteboard becomes a note.
  • Integration with the Canvas API, the learning management system.
  • Location by building, floor, and room when the phone connects to the campus Wi-Fi.
  • Web dashboard to keep track of everything.

In Sprint 2, the back end became a REST API in Java 21 with Spring Boot:

  • authentication with JWT;
  • PostgreSQL on Docker, with versioned migrations;
  • isolation between users and RBAC with an approval flow;
  • rate limiting.

Outcome and lessons learned

SmartCampus brings together both ends of my career: devices and networking on one side, a web API on the other. Security shows up in several layers of Sprint 2: authentication, isolation between users, roles with approval, and usage limits.