Skip to content

mlapaglia/OpenAlprWebhookProcessor

Repository files navigation

OpenALPR Webhook Processor

Quality Gate Status Bugs Code Smells Coverage Duplicated Lines (%) Lines of Code Reliability Rating Security Rating Technical Debt Maintainability Rating Vulnerabilities

A comprehensive license plate recognition management system that processes webhooks from OpenALPR web servers, manages IP cameras, and provides intelligent alerting capabilities. Untitled

🎯 Core Features

License Plate Processing

  • Real-time Processing: Receives and processes license plate webhooks from OpenALPR web servers
  • Data Storage: Stores plate numbers, vehicle descriptions, timestamps, and confidence scores
  • Image Management: Handles full vehicle images and cropped license plate images
  • Statistics: Tracks plate frequency and visit patterns

Camera Management

  • Multi-Camera Support: Manage multiple IP cameras with individual configurations
  • Manufacturer Support: Compatible with Hikvision and Dahua camera systems
  • Live Overlay Updates: Display detected license plates directly on camera video feeds
  • Automatic Day/Night Mode: Schedule sunrise/sunset camera mode switching
  • Focus Control: Automatic zoom and focus adjustments based on time of day
  • Camera Masking: Define detection areas to improve accuracy

Intelligent Alerting

  • Custom Alert Rules: Set up alerts for specific license plates or patterns
  • Multiple Notification Channels: Push notifications, Pushover integration, and webhook forwarding
  • Real-time Notifications: Instant alerts when monitored plates are detected

Machine Learning Predictions

  • Visit Prediction: Predict when specific license plates will next appear
  • Pattern Recognition: Analyze historical data to identify visiting patterns
  • Batch Processing: Handle multiple prediction requests simultaneously
  • Model Training: Automatic background model retraining with latest data

πŸ“Š Management Interface

Dashboard & Monitoring

  • Live Feed: Real-time license plate detection updates
  • Search & Filter: Find specific plates by number, date, or camera
  • Statistics View: Plate frequency analysis and visit patterns
  • System Logs: Monitor application activity and troubleshoot issues

Configuration Management

  • User Management: Multi-user support
  • Camera Configuration: Set up overlay text, day/night schedules, and focus settings
  • Alert Configuration: Configure notification preferences and alert rules
  • Ignore Lists: Define plates to exclude from processing or alerts
  • Webhook Forwarding: Send processed data to external systems

Advanced Features

  • Two-Factor Authentication: Enhanced security for user accounts
  • Data Enrichment: Enhance plate data with additional information sources
  • Real-time Updates: Live system status and connection monitoring
  • Debug Tools: System diagnostics and scheduled job monitoring

πŸš€ Quick Start

Command Line

dotnet ./OpenAlprWebhookProcessor.dll

Docker

docker run -d \
  --name=openalprwebhookprocessor \
  --net=bridge \
  -v /host/path/:/app/config/ \
  -p 3859:80 \
  mlapaglia/openalprwebhookprocessor

πŸ“Έ Screenshots

License Plates Dashboard

image

Camera Configuration

image

Agent Settings

image

πŸŽ₯ Demo Video

IMAGE ALT TEXT HERE

πŸ“¦ Docker Hub

Available at: mlapaglia/openalprwebhookprocessor

πŸ’Ύ Data Storage

The application requires persistent storage for:

  • License plate database
  • User settings and configurations
  • Machine learning models
  • Camera snapshots and images

Mount a volume to /app/config/ to persist data between container restarts.

πŸ› οΈ Development

Prerequisites

Getting Started

Backend (ASP.NET Core)

  1. Navigate to the server project directory:

    cd OpenAlprWebhookProcessor.Server
  2. Restore dependencies:

    dotnet restore
  3. Start the backend server:

    dotnet run

    The backend will start at https://localhost:5001

Frontend (Angular)

  1. Navigate to the client project directory:

    cd openalprwebhookprocessor.client
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm start

    The frontend will start at https://localhost:4200 and automatically proxy API requests to the backend.

Running Both Together

For the best development experience, run both the backend and frontend simultaneously:

  1. Terminal 1 - Start the backend:

    cd OpenAlprWebhookProcessor.Server
    dotnet run
  2. Terminal 2 - Start the frontend:

    cd openalprwebhookprocessor.client
    npm start
  3. Open your browser to https://localhost:4200

Running Tests

  • Backend Tests: dotnet test (from the solution root)
  • Frontend Tests: npm test (from the client directory)