← Back to Home

E-Parking

CV-Assisted Smart Parking & Payments

A full-stack, multi-tenant smart parking platform that automates the gate: a computer-vision service reads the vehicle type from a camera, the system opens a parking session, computes the tariff, and takes payment by cash, dynamic QRIS, or RFID membership — wired to real gate hardware (RFID reader, ticket printer, camera) and rolled up into operator dashboards. (Freelance project.)

#Full-Stack#Computer Vision#Smart Parking#Multi-Tenant#Next.js#Prisma#FastAPI#PostgreSQL#RFID#Dynamic QRIS Payments#Hardware Integration#Object Storage (MinIO)#Observability (Prometheus / Grafana)

// Overview

What it does. The platform runs parking operations end to end. At the gate, a camera captures the incoming vehicle, a computer-vision service classifies it (car / motorcycle), the system opens a parking record, computes the tariff from the vehicle type and configured rates, and on exit charges and closes the session — supporting cash, dynamic QRIS QR payments, and RFID-card membership. A ticket is printed at the gate. Operators work through a web POS and dashboards (revenue, traffic, vehicle mix), and the system is multi-tenant — several parking businesses (usaha) run on one deployment with their own tariffs, members, and users.

Background

Manual gate operations and disconnected tools created real friction:

  • Manual vehicle handling is slow and error-prone. Reading the vehicle, picking the right tariff, and writing a ticket by hand at a busy gate doesn't scale.
  • Mixed payment methods. Operators needed cash, QR (QRIS), and tap-card membership in one flow, not three separate processes.
  • Hardware lives at the edge. RFID readers, ticket printers, and cameras are physical devices at the site that had to be wired into the software reliably.
  • Multiple businesses. One deployment had to serve several parking operators with isolated tariffs, members, and dashboards.
  • No operational visibility. Owners wanted revenue, traffic, and vehicle-mix analytics, plus system health monitoring.

Solution

  1. CV-assisted gate ticketing. A FastAPI computer-vision service classifies the vehicle (car/motorcycle) from a gate image (cropped/preprocessed, buffered via MinIO), and the core app opens a parking record and computes the tariff from the vehicle type and configured rates.
  2. Flexible tariffs. Per-business tariff rules (first-period rate, hourly rate, overnight rate, per vehicle type and day) drive automatic fee calculation on exit.
  3. Multi-method payments. Cash, dynamic QRIS QR codes, and RFID-card membership are all handled in the POS flow, with memberships deducting against balances/units.
  4. Edge hardware pipeline. A site-side pipeline integrates a USB RFID reader, ticket printer (with printer-status checks), and scanner/camera, and runs member sync and MinIO image sync with the central system.
  5. Operator UI & dashboards. A Next.js app provides POS, members, tariffs, users, and settings, plus Chart.js dashboards (revenue, traffic, vehicle mix).
  6. Multi-tenancy. A usaha (business) scopes tariffs, members, users, and reporting so many operators share one deployment.
  7. Observability & ops. Prometheus + Grafana monitor the services; everything is containerized behind nginx with Docker Compose and CI/CD.

Impact

  • Faster, more consistent gates. CV vehicle classification + automatic tariffing removes manual judgment and speeds up entry/exit.
  • One flow for every payment type. Cash, QRIS, and RFID membership handled in a single POS.
  • Software meets hardware. RFID readers, printers, and cameras are integrated through a reliable edge pipeline with cloud sync.
  • Scales across businesses. Multi-tenant design lets many operators run on one deployment with isolated data.
  • Operational insight + health. Chart.js dashboards give owners revenue/traffic analytics, while Prometheus/Grafana keep the system observable.

// Tech Stack

LayerTechnologies
Web app / APINext.js (React, TypeScript), Prisma ORM, API routes
DatabasePostgreSQL
Computer visionFastAPI CV service (Pillow image processing; TensorFlow variant), gate-image classification
PaymentsDynamic QRIS QR payments, RFID card membership, cash
Edge / hardwareUSB RFID reader, ticket printer (status checks), camera/scanner, member + image sync
StorageMinIO object storage (gate images, exports)
DashboardsChart.js (revenue · traffic · vehicle mix)
ObservabilityPrometheus (prometheus-fastapi-instrumentator) + Grafana
InfraDocker / docker-compose, nginx, GitHub Actions CI/CD, scheduler

// Architecture & Diagrams

1 / 4System Architecture — Simple (high level)
rendering…

Disclaimer: sample visuals may contain anonymized, simulated, or non-production values for presentation purposes.

// Demo

No demo configured yet.