All work

Auticket

Municipal enforcement system

End-to-end municipal parking enforcement with an AI vision layer - five separate apps for the citizen, the officer, the authority and the administrator, from writing the ticket in the field to payment or appeal.

Role
Product · UX/UI · Full-stack
Type
GovTech · Municipal enforcement
Stack
Next.js · tRPC · FastAPI
Scope
5 apps · Hebrew RTL

What it is

Parking enforcement in Israel runs on a broken chain: the officer writes a ticket, the citizen receives paper, payment happens in another system, and appeals disappear into bureaucracy. Neither side ever sees the whole picture.

Auticket unifies the chain into one system - and adds a layer of vehicle and licence-plate recognition that turns cameras a city already owns into enforcement infrastructure.

The problem

  • A broken chain - Issuing, payment and appeals live in three systems
  • The citizen is blind - No idea what they got, why, or what the options are
  • The officer is on paper - No GPS, no photo, no digital signature
  • No BI for the authority - No picture of revenue, zones or officer performance

The solution

  • An app per role - Citizen, officer, authority, administrator
  • A complete digital ticket - Location, photo and signature in the field
  • Online payment and appeal - From the same screen that shows the ticket
  • AI on existing cameras - Vehicle and licence-plate recognition

How it's built

Frontend
Next.js
TypeScript · Tailwind
shadcn/ui · full RTL
API
tRPC + Fastify
JWT · Bcrypt
Audit trail · Rate limiting
Data
PostgreSQL
Prisma
12 related models
AI
Python FastAPI
YOLOv10 · vehicle detection
licence-plate reading
5apps in one monorepo
3trained AI models
103msaverage AI service response

The screens

Positioning

The audience here is decision-makers at a municipality, not consumers - so the message leads by removing budget risk: pay only on success, no fixed costs. The brand blue #2E3192 signals institution and authority; the yellow #FFDE17 is reserved for points of action.

Auticket - Positioning

The citizen app

The citizen meets this system at an unpleasant moment - they've just been fined. So the dashboard doesn't open with a list of debts but with a calm status view: how many tickets, how much to pay, how many under appeal. The appeal is presented as an equal to payment rather than buried - a product decision that reduces frustration and calls to the municipality.

Auticket - The citizen app
Auticket - The citizen app

The officer app

Built for someone working standing, one-handed, in the sun. Violation types are large cards with the amount printed on them, not a dropdown. The camera screen shows a rule-of-thirds grid, a live clock and an adjacent form, so evidence and documentation are created in the same moment on the same screen.

Auticket - The officer app
Auticket - The officer app

Authority · BI

The screen that sells the system to a municipality. Four metrics across the top - tickets, revenue, active officers and completion rate - each with a delta against the previous period in green or red. Below, a breakdown by violation type with volume and amount side by side, so someone can decide where to place officers tomorrow.

Auticket - Authority · BI

Operations

Behind enforcement sits operations: who works, when, and in which zone. The forms carry sensible defaults - a morning shift opens at 07:00–15:00 on today's date - so a routine shift is one click and adjustment is only needed for exceptions. Parking zones are the same data model seen from the citizen side.

Auticket - Operations
Auticket - Operations

Design decisions

01

  • One language, four roles - The same design system runs across every app. An officer who moves into a management role doesn't learn a new product - they get more permissions.

02

  • The appeal isn't hidden - In most enforcement systems the appeal is buried. Here it's an equal-status action to payment, which reduces frustration and call-centre volume.

03

  • Hebrew RTL by default - Not a translated Latin interface. Layout, icons and reading direction were built right-to-left from the start, including numbers and currency.

04

  • Yellow only for action - Blue carries institutional authority; yellow is reserved for the active tab and the primary button. Two colours produce an unambiguous hierarchy.

05

  • AI on existing infrastructure - Rather than requiring new hardware, the vision layer connects to cameras already installed in the city - shortening the sale and lowering the budget barrier.

06

  • Audit trail built in - Every ticket carries location, time, officer and signature. In a world where any ticket may reach a court, documentation isn't a feature - it's a precondition.
Next project
RabbiList →
Get in touch