Marcelo Daniel Toledo

Marcelo Daniel Toledo

Software Developer | Bachelor's Degree in Computer Science

Back to Projects
Cover Water Park Access Control
Logo Water Park Access Control

Water Park Access Control

Freelance

Real-time ticket generation, validation and access control system for Aquasol, with a management dashboard and integration with Tango and Hikvision for physical turnstile management.

.NET Blazor SQL Server SignalR Hangfire Polly

Context

Aquasol, one of Mar del Plata’s most iconic recreational parks, reopened its doors in January 2024 after nearly four years of closure. The reopening involved an investment of over one million dollars, the creation of more than 260 direct jobs and a transformation of the space into an eco-park with activities for all ages: aquatic area, sports courts, flora and fauna. Given the scale of this reopening — with high attendance expected from day one — the manual access control they had was not viable: management had no real-time visibility into visitor flow, making operational decisions difficult during peak attendance periods.

The Challenge

Design and develop a real-time ticket generation, validation and access control system, integrated with the existing ERP (Tango Software) and with physical access devices (Hikvision), plus a management dashboard with live metrics.

The Solution

A web service covering the complete cycle: ticket issuance, validation at access points and real-time management monitoring. The Tango integration manages ticket inventory, while Hikvision controls the physical turnstiles. SignalR keeps the dashboard continuously updated.

Aquasol Access Control

Technical Challenges

Challenge 1 — Barcode reader compatibility with PDF tickets

The problem: The barcode reader integrated into the Hikvision turnstile could not achieve a 100% read rate. During peak season, every failed read translated into queues, operational friction and pressure on staff.

The root cause: The reader hardware had specific restrictions on the minimum barcode size and the blank space margins around it. The most common use case — a person arriving with the PDF ticket on their phone screen — amplified the problem: different devices, different screen sizes, different brightness levels and different PDF rendering methods created variability in the image the reader received.

The solution: The ticket generation parameters were adjusted — barcode size and inclusion of sufficient blank space margins per Hikvision hardware specifications — and the result was validated against the physical reader under multiple real conditions (phones with different screen sizes, different brightness levels, PDF rendered from different apps). The goal was not just to make it work in ideal conditions, but to achieve 100% successful reads under real-world usage conditions. As an operational contingency, a manual validation flow from the web application was also implemented, allowing staff to enter or scan the code manually in the event of a physical reader failure — ensuring operational continuity without relying exclusively on hardware.


Challenge 2 — Instant ticket invalidation to prevent double entry

The problem: Once a ticket was validated at the turnstile, it had to be immediately disabled so the same person could not re-enter with the same ticket. With high attendance at the turnstiles, any time window was a real risk.

The technical constraint: The official Hikvision API had a latency of ~3 seconds to propagate a ticket status change. Three seconds is an unacceptable window when the goal is to prevent double entry in real time — within that interval, the same ticket could be presented at another turnstile and pass as valid.

The technical decision: The official API was ruled out for this critical flow. The internal database of the Hikvision device (HikCentral) was identified and direct access was configured from the system’s own API using Dapper. The record status update is performed directly on that database, bypassing the official API layer. The change is instantaneous and consistent.

Technologies

  • .NET — backend and access control logic
  • Blazor — web interface and management dashboard
  • SQL Server — database
  • SignalR — real-time updates
  • Hangfire — scheduled tasks
  • Dapper — ORM for communication with the HikCentral database
  • Polly — resilience in external integrations