Skip to content
pedrovilaca.dev
Read this page in Portuguese

pedro/projects

Projects

Everything I've built that's worth showing: from communication protocols between ESP8266 modules at CEFET-MG to today's homelab.

  • pedro/projects/horta-inteligente
    Horta Inteligente prototype set up on the table.

    Horta Inteligente

    ESP8266 with a soil moisture sensor publishing over MQTT, and a React Native app that shows soil moisture in real time and opens or closes the irrigation valve.

    Stack: ESP8266 NodeMCU · Soil moisture sensor · MQTT (PubSubClient) · HiveMQ · React Native 0.62

    IoTAcademic
  • pedro/projects/text-bubbles

    text-bubbles

    Open source npm library that turns text into interactive 2D Canvas particles: about 4 KB, zero dependencies, for plain JavaScript, React, or as <text-bubbles>.

    Stack: TypeScript · Canvas 2D · Web Components · React · tsup

    Web
  • pedro/projects/pse-image

    pse-image

    A visual image-processing environment: a pipeline of blocks (PGM, convolution, histogram) with the algorithms implemented from scratch.

    Stack: React 19 · React Flow · Zustand · Vite · Bun

    WebAcademic
  • 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.

    Stack: Java 21 · Spring Boot · JWT · PostgreSQL · Docker

    IoTWebAcademic
  • pedro/projects/homelab

    Homelab

    A Ryzen 7 5700G with Ubuntu Server and about 22 Docker Compose containers: smart home with Mosquitto and Home Assistant, media, networking, and dev tools.

    Stack: Ubuntu Server 26.04 · Docker Compose · WireGuard · Caddy · Pi-hole

    InfraIoT
  • pedro/projects/quicksort-paa
    Five charts, one per test dataset, showing the time reduction of the hybrid versions relative to the recursive Quicksort: between about 16% and 54%, largest at the smaller sizes.

    Comparative study of Quicksort

    Three Quicksort versions in C++17 tested on five datasets of 1,000 to 500,000 elements: hybrids up to 54% faster, theoretical worst case confirmed in practice.

    Stack: C++17 · Make · Docker · Python (matplotlib, pandas) · LaTeX (ABNT)

    Academic
  • pedro/projects/corporate-travel-onfly

    corporate-travel-onfly

    Corporate travel request system: Laravel API with JWT and tests, Vue.js front end, and a Docker environment.

    Details

    Laravel API with JWT authentication and automated tests, a Vue.js interface, and the entire environment in Docker, for creating and tracking corporate travel requests.

    Stack: Laravel · JWT · Vue.js · Docker

    Web
  • pedro/projects/dvrq
    DVRQ poster at the 27th META, with introduction, objectives, methodology, and screenshots of the virtual lab.

    DVRQ: Virtual Chemical Reactions Lab

    A web-based virtual lab built in Scratch that simulates chemical reactions for Chemistry technical program classes, without the risks of toxic materials.

    Details

    I was part of the DVRQ team at META, CEFET-MG's project exhibition. The virtual lab simulates chemical reactions so that students in the Chemistry technical program can test combinations of compounds without handling toxic or flammable materials. CEFET-MG's Technological Innovation Office ("Coordenação de Inovação Tecnológica", CIT) selected the project for software registration.

    Stack: Scratch

    ★ Selected by CEFET-MG's CITAcademic
  • pedro/projects/rede-packet-tracer

    Enterprise network in Packet Tracer

    Headquarters, three branch offices, and a home office with VLSM, VLANs, NAT, ACLs, IPSec VPN, and OSPF, documented in a LaTeX paper.

    Details

    A project for the Computer Networks course at PUC Minas: a network with headquarters, three branch offices, and a home office, using VLSM, VLANs, NAT, ACLs, IPSec VPN, and OSPF. The work became a LaTeX paper and also produced a set of tools to decode and encode .pkt files.

    Stack: Cisco Packet Tracer · OSPF · IPSec VPN · LaTeX

    InfraAcademic
  • pedro/projects/convex

    convex

    PDF-to-XML converter with a Python API and a web interface.

    Details

    PDF-to-XML converter with a Python API and a web interface.

    Stack: Python

    Web
  • pedro/projects/portal-filmes

    portal-filmes

    A movie portal built first in plain HTML, CSS, and JavaScript, then migrated to React with MUI as a hands-on study of React and stack migration, without AI.

    Details

    A study project on React and on migrating systems: the portal started out in plain HTML, CSS, and JavaScript and was later migrated to React with MUI.

    It was a hands-on learning project built without AI, back when there were no agents or LLMs suited to this kind of work yet.

    Stack: JavaScript · React · MUI

    Web
  • pedro/projects/sinsitro-teste

    sinsitro-teste

    A mobile phone insurance claims portal built in minutes at an AI workshop, later the project I used to learn OpenSpec and a documented software lifecycle.

    Details

    A mobile phone insurance claims portal with guided photo capture, built in React with Vite and published on GitHub Pages.

    The result came together in a few minutes during an AI workshop. The next step was the most important one: using the same project to learn OpenSpec and drive development the right way, with specified and documented changes and a healthy software lifecycle.

    Stack: React · Vite · GitHub Pages

    Web