QR-based campus access control on Raspberry Pi

Engineered an automated, Linux-based campus access control system for CUJAE — Raspberry Pi nodes running Python + OpenCV scan QR-coded IDs at building entrances and verify identities against a Node-RED backend integrated with the Informatics department's central data.

Client
CUJAE (Faculty of Informatics)
Role
Project Lead — IT (Contract)
Year
2023
Timeline
2022 — 2024 (multi-semester rollout)
Python OpenCV Node-RED Raspberry Pi Linux Docker
QR-based campus access control on Raspberry Pi

Problem

CUJAE’s Faculty of Informatics needed a real-time access-control system at building entrances. Manual checks at the door don’t scale during class transitions, paper rosters drift out of sync with enrollment, and the faculty already had a digital record of who belongs where. The system had to live at the door — meaning embedded hardware, not server racks — and decide locally whether a person could come in.

Approach

I designed the system as an edge-and-bridge architecture under contract with the Informatics department:

Outcome

The system runs on the campus today, integrated with the faculty’s central registry through the Node-RED layer. The decision to use Node-RED for the backend turned out to be a sustainability call: when the contract ended, the Informatics team kept iterating on the flow without needing a software engineer in the loop.

The hardware-software split — Python doing the CV at the edge, Node-RED doing the integration in the middle — became the template for follow-on integrations between physical sensors and the faculty’s software layer.

Technologies used

Python OpenCV Node-RED Raspberry Pi Linux Docker
Visuals

Screens

Keep exploring

More work

Linkeum Wallet: a multi-currency fintech wallet in 30 days
Fintech · 30 days · 2 engineers

Linkeum Wallet: a multi-currency fintech wallet in 30 days

Shipped a production fintech wallet in 30 days with a 2-engineer team — multi-currency, KYC, 2FA, real-time notifications. Built on Nest.js + Next.js Server Actions over a Turborepo monorepo.

Nest.js Next.js Turborepo PostgreSQL
Read the case study
A fuel and cooking-gas marketplace for Cuba, with QR pickup
Fuel & Gas · Web + Android · External integration

A fuel and cooking-gas marketplace for Cuba, with QR pickup

Muévete y Cocina turns the daily scramble for fuel and cooking gas in Cuba into an order-ahead flow: browse nearby service centers and live prices, reserve litres or a gas cylinder, pay, and pick up against a QR. Since the team white-labelled it, the same codebase reaches customers under two selling brands, Mercaful and Gasolero. I proposed and built its offline-first Flutter courier app end to end, shipped heavily on the customer web app alongside the company's frontend lead and a designer, and over time took my work into the backend too: delivery evidence, access control, and per-brand legal documents.

Flutter React Router Vite TypeScript
Read the case study
AI News Intelligence — n8n agent over FastAPI + Redis + SvelteKit
Side project · n8n · Agent · RAG

AI News Intelligence — n8n agent over FastAPI + Redis + SvelteKit

Personal side project: an AI agent that orchestrates news data via n8n, serves it through a FastAPI + Redis cache layer, and talks to users through a SvelteKit chat UI. Whole stack containerized with Docker Compose for one-command deploy.

FastAPI Python Redis Docker
Read the case study