Case Study

Automated Parking Management with OCR Vehicle Tracking

30% Faster Operations

Less time spent on manual control and human oversight

Nova to Filament Migration

Architectural redesign for faster processing, end-user flexibility, and data aggregation
Monitor displaying the Pparking management system with OCR vehicle entry and exit tracking and complaint handling

PparKing, a Swiss parking lot operator, deploys automated systems to detect vehicle occupancy and calculate parking duration i.e. the timeframe between premises entry and exit. The platform enables parking lot operators to manage and bill parking sessions with minimal manual intervention. Customers can then access the service through 2 payment channels:

  1. Advance booking via the company's website using Twint, Switzerland's mobile payment solution

  2. Pay-as-you-go parking without prior reservation. CCTV cameras monitor vehicle entry and exit points, tracking registration plates and dwell times whilst the system automatically generates invoices based on usage duration.

At the point of engagement, PparKing operated an existing Laravel application that processed CCTV imagery via File Transfer Protocol (FTP) drive, performing image analysis to identify matching licence plate pairs, correlating entries and exits for individual vehicles before calculating parking duration and generating invoices accordingly.

Monitor displaying the Pparking management system with OCR vehicle entry and exit tracking and complaint handling.

Client's Pain-Point

PparKing required a Laravel expert capable of maintaining and extending their existing application under a monthly retainer-based contract, to ensure continuous development, bug fixes, and new feature development.

The legacy system suffered from significant performance bottlenecks. Its architecture relied on direct file system operations for image processing which was an inherently inefficient approach that created substantial processing delays.

As the retainer contract progressed, we identified critical limitations within Laravel Nova - the admin panel framework initially employed. These constraints prompted a migration to FilamentPHP, our preferred Admin Panel Builder. Consequently, we rebuilt the application using the existing database infrastructure, which delivered 3 key improvements: 

  1. Enhanced operational flexibility

  2. Measurably faster processing speeds

  3. The capability to develop more tailored views, screens, and interfaces to ease operations

This architectural shift from Laravel Nova to FilamentPHP ultimately enabled direct client portal access and expanded self-service functionality for end users.

Our Codebase Assessment Process

When engaging with existing codebases, we adhere to a rigorous evaluation protocol. Initially, we require full access to the project source code and are prepared to execute non-disclosure agreements to ensure confidentiality.

However, if preliminary access is unavailable, we stipulate contractual provisions permitting immediate project termination, as certain codebases prove unmaintainable due to substandard code quality or inherent security vulnerabilities that pose operational risks

Our assessment evaluates whether the codebase architecture supports continued development and whether successful knowledge transfer is achievable.

This involves reconstructing the original developer's design rationale, determining code intelligibility, assessing architectural coherence, and verifying that the existing structure can accommodate the required feature extensions and modifications.

Our engagement model prioritizes client autonomy.  We deliberately avoid creating vendor lock-in through proprietary dependencies or opaque implementations. The two-year retainer arrangement delivered continuous feature development whilst maintaining transparent, extensible code that PparKing could independently maintain or transition to alternative providers.

HOW DOES THE SOLUTION WORK?

CCTV cameras mounted at parking lot entry points capture images when vehicles drive in. When a camera takes a picture, the system registers it as an entrance event. Each entrance event then generates a timestamped picture with an automated licence plate recognition, creating a data point comprising time, registration number, and the direction i.e. a vehicle entered at this time with this plate number. 

That is entry point picture scenario #1.

Exit points employ the same procedure. When a vehicle departs, the system captures the corresponding timestamp and licence plate, thereby establishing a matched pair. The application subsequently reads the file system, identifies matching image pairs, and attaches them to billing records. The system then calculates parking duration through timestamp differential. For instance, 40 minutes of parking - before generating invoices based on the applicable tariff structure and billing parameters.  

And, that is it for exit point picture scenario #2.


Multiple automations occur in the process.

For example, in Switzerland, vehicle ownership data is accessible via town hall APIs. We developed an integration that automatically queries these municipal databases for registered owner details when retrospective billing is required.

With this platform, there is no need for parking barrier gates because the system captures a picture the moment vehicles enter the lot. Instead, prominent signage at entry points establishes the contractual terms of service. Camera surveillance begins at the threshold as vehicles drive into the facility:

  1. They are photographed,

  2. registration data is captured and,

  3. Billing authority is consequently established.

HOW WAS THE CUSTOM SOLUTION BUILT ?

PparKing deployed industry-standard CCTV cameras equipped with integrated optical character recognition (OCR) capabilities, which operate as a closed hardware ecosystem.

Our main touch point for improvements was the image storage layer where processed data is deposited. The legacy system's fundamental flaw was its reliance on direct file system operations for image pair matching - an inherently slow process that required significant optimization. 

Consequently, we redesigned the workflow.

Rather than manipulating individual image files, the system retrieved directory file lists and parsed filenames to extract licence plate data, timestamps, and metadata so that we have a date and time connection. Working with database records improved deliverability in substantial performance gains, and enhanced operational flexibility. 

Once file metadata is catalogued in the local database, the system eliminates further dependency on FTP storage access. Whenever there is a new file on disk, the  file system notifications trigger automated checks: 

  1. Does a matching image for the file exist?

  2. Does a matching licence plate exist? 

  3. Does it correspond to an active parking session? 

This is how we optimized the performance and reliability of our matching algorithm whilst reducing the human operation factor, manual control images, and the timeframe significantly. By doing so, we slashed the time needed by human operators by at least 30 percent.

We built a custom validation interface that consolidates all session data into a unified view. It presents images, records, and all other information per parking session. Consider this scenario: a customer books 1 hour but parks for 90 minutes.

The validation screen then presents entry/exit imagery, booking details, and parking lot metadata, including facility-specific grace periods (typically 5 - 10 minutes post-payment), depending on the size of the parking lot.  With all these details listed out, operators can approve overstay charges, adjust billing, or apply discretionary discounts. 

In addition, this interface streamlines case review through data aggregation and colour-coded visual cues: when a parking session is fully paid, it indicates green; when there is overtime, it indicates red. This dramatically reduces the time spent checking all this data manually.

If there is a misreading on the license plate from the OCR, the system surfaces similar registration images, enabling operators to connect fragmented data points and assign correct imagery to cases. This customized Filament interface substantially accelerated the validation workflow for parking sessions.

THE CHALLENGE

The primary challenge lay in the legacy system's poor performance and error susceptibility. The CCTV processing pipeline suffered from significant latency and reliability issues, which necessitated a complete architectural redesign.

Compensation for missed licence plate detections and OCR misreadings proved particularly demanding in extracting meaningful data from corrupted or incomplete inputs, requiring continuous algorithmic refinement. Human oversight remains essential for addressing edge cases that cannot be resolved programmatically.

Secondary challenges centred on interface usability. We prioritized user-centric design: streamlining workflows, reducing cognitive load, and eliminating superfluous interface elements. Extensive user testing ensured the platform remained accessible to first-time operators.

The most project-specific technical challenge was managing highly variable data quality; smudged plates, oblique camera angles, and adverse lighting conditions degrade OCR accuracy.

The system must process incomplete datasets, reconcile duplicate entries, and maintain data integrity despite inconsistent inputs - a persistent engineering constraint in computer vision applications.

WHY WE DO CODEBASE ASSESSMENT ?

Laramate GmbH insists on comprehensive codebase assessments before any engagement as a non-negotiable business imperative and part of its professional responsibility.

Our codebase audit is paid, non-refundable, and required. A thorough code audit takes hours for small projects and days for enterprise systems. We examine security vulnerabilities, evaluate architectural integrity, identify technical debt, assess scalability constraints, and audit third-party dependencies. This work demands senior-level expertise and delivers immediate business value.

The assessment has standalone value, regardless of whether you proceed with us.

You receive a comprehensive diagnostic report detailing critical issues, security risks, outdated packages requiring updates, architectural weaknesses limiting growth, and a prioritized remediation roadmap.

This intelligence is yours to keep and serves as your technical due diligence whether you engage us, approach another development firm, or brief your internal team.

For comparison: Would you purchase commercial real estate without a building inspection? Would you acquire a company without due diligence? Yet businesses routinely commit tens or hundreds of thousands to software development without understanding their foundations. As a business, you cannot afford to build on broken foundations.

The internet turned 30 years old, and your legacy software is showing its age. That said, if your platform experiences unexplained bugs, struggles to integrate modern features, runs on frameworks several versions behind, or makes developers hesitate when asked about maintenance, you are operating on borrowed time. These are not technical inconveniences but existential business risks with mounting technical debt.

In all, without an assessment, we cannot provide accurate project scoping, realistic cost estimates, or credible timelines. Any agency offering immediate quotes without examining your codebase is guessing or setting your business up for scope creep and budget overruns.

KEY FEATURES

CCTV Image Processing

Re-engineered image processing pipeline, replacing file system operations with database-driven queries to improve throughput and reduce latency

Colour-Coded Interface

Validation interface consolidating parking session data, entry/exit imagery, booking records, and facility metadata into a unified dashboard

Municipal API Integration

Automated API integration with Swiss municipal databases for real-time retrieval of registered user information for retrospective billing

DDEV (Local Development Environment)

DDEV Docker containerisation debugs and validates tenant isolation prior to deployment.

Laravel Nova to FilamentPHP Migration

Superior interface customization, improved performance, and greater flexibility across complex data management workflows.

Database Filtering and Query Optimization

Improved query functionality to filter parking sessions across multiple parameters simultaneously, for efficient data retrieval and management of large transaction volumes.

Customer Complaints Management System

Integrated ticketing system for email exchanges with secure portal access via registration number and cryptographic passcode. Customers review photographic evidence, zoom imagery, and billing discrepancies. Asynchronous messaging enables round-the-clock submissions with operator responses during business hours.

Kiosk Interface

Build-in simplified tablet interface for complimentary 1 hour parking validation. The kioske interface required only licence plate entry, making the system accessible to non-technical users. 

Self-Check-In Feature to be used as a Kiosk.

Why Choose Us as Laravel Experts

When clients reach out to us, they often do so specifically because we have the answers to their pain-points.

We have mastered the Laravel framework intimately, and we know how to use it.

We understand how to structure Laravel applications for complex projects, bi-directional system integration, maintainability, performance optimization, proper security implementation measures, website accessibility, and how to integrate Laravel with other and older systems.

For our future clients considering custom software development, Laravel represents an excellent choice, and partnering with us, Laravel experts, ensures that choice pays dividends.

Let's have a call

Do you have legacy software?

  • Comprehensive diagnostic report covering critical issues, security risks, outdated dependencies, and architectural weaknesses
  • Weekly feedback loops
  • Free initial consultation within 24 hours

Your contact person

chris.jpeg
Christian Wolf
Managing Director, Senior PHP Developer