Team project · Nov 2025 – Jan 2026

Smart Parking — ALPR System

Manual parking monitoring was slow and error-prone. Built a real-time system using a CNN for spot occupancy and ALPR for license plate recognition, with ESP32-CAM gates, WebSocket-based live updates and automated event logging. Reduced manual checks to zero.

TugaPark web dashboard showing 3 of 9 parking spots free, with each spot marked as available, occupied or reserved, and a button to reserve a spot.
The web dashboard in demo mode, with live status for every spot.

Problem

Checking which spots are free, who came in and how long they stayed is usually done by hand, or with per-spot sensors that are expensive to install. We wanted a single camera over the lot to watch every spot, and cheap cameras at the gates to identify vehicles by their plates, so entry, billing and reservations could run without staff.

Solution

  • An ESP32-CAM streams the lot as MJPEG. The backend crops a 64×64 image for each marked spot and classifies all spots in one batch with a custom PyTorch CNN (three convolutional layers, trained with augmentation, dropout and weight decay).
  • A sliding-window temporal filter stops brief flicker from counting as a state change.
  • Entry and exit gates (ESP32-CAM, ultrasonic sensor, servo barrier) post photos to the API, where Fast-ALPR (YOLO detection + OCR) reads the plate and opens or closes the parking session.
  • FastAPI backend with asyncpg and PostgreSQL computes fees (€1.50/h), checks payment before the exit barrier opens and stores gate photos in Supabase Storage.
  • Spot states are pushed over WebSockets to a React dashboard and a React Native (Expo) app with reservations, payments and biometric login.
  • Reserved spots are checked against the vehicle actually parked there, with a €20 fee for no-shows.

Tech stack

  • PyTorch
  • OpenCV
  • Fast-ALPR
  • FastAPI
  • WebSockets
  • PostgreSQL
  • React Native
  • ESP32-CAM

Results

  • Entry, billing, exit and reservation enforcement run end to end without manual checks.
  • Real-time spot status on web and mobile.
  • The web dashboard is online as a public demo (mock mode).

Interested in working together?

I'm open to full-time Software Engineer (AI/ML) roles in Hamburg or remote.

Get in touch