Home About How It Works Team Contact
Features & Process

A system built to be
fast, secure & fair.

A complete walkthrough of every feature, every step, and every technology powering DLRSJAM from first login to digital licence in hand.

5
Steps to renewal
3
AI verification modules
98.2%
OCR extraction accuracy
0
In-person visits required

One platform,
three user roles.

DLRSJAM is a role-based Progressive Web Application that brings together three distinct user types each with their own dashboard, permissions, and workflow, all connected through a single secure platform.

"The AI handles the heavy lifting. The TAJ officer makes the final call. The applicant gets their licence from home, in minutes."

No app store downloads. No dedicated hardware. Any modern smartphone, tablet, or computer with a camera and internet connection is all an applicant needs to complete the full renewal process.

Applicant
TAJ Officer
Supervisor
System Architecture: Layer View
Applicant PWA Interface
React · Responsive on any device · No install needed
API
Application Logic Layer
Python / Flask REST API · Authentication · Role routing
Calls
AI Verification Engine
Python Tesseract · DeepFace · Anti-Spoof CNN
Stores
Officer Review Dashboard
AI results · Override controls · Approval workflow
Issues
Digital Licence Output
PDF + QR Code generation · Instant download

Who uses DLRSJAM,
and what they can do.

Each role is protected by secure login and restricted to only the actions relevant to that user no overlap, no confusion.

Applicant
The person applying for renewal
  • Create a secure account and log in
  • Fill out the digital renewal application form
  • Upload current licence and supporting ID documents
  • Complete the liveness detection webcam check
  • Track application status in real time
  • Download the approved digital licence as a PDF
TAJ Officer
Government reviewer, final approval authority
  • View a queue of all submitted applications
  • Review AI-generated verification scores and flags
  • Inspect uploaded documents and applicant photos
  • Approve or reject applications with written notes
  • Override AI results when professional judgment requires
  • Trigger digital licence generation on approval
Supervisor
Senior TAJ reviewer, full caseload oversight
  • View the full queue including escalated cases across all officers
  • Approve, reject, or request resubmission on any application
  • Return escalated cases back to the assigned officer
  • Draw and save a digital signature for approved licences
  • Receive in-app notifications for escalated cases needing attention
  • Manage officer accounts within their branch

The full renewal journey,
explained in detail.

Every step an applicant takes from creating their account to holding their digital licence — seven steps, no branch visit required.

1
Step One

Register &
Secure Login

Applicants create an account using their name, TRN (Taxpayer Registration Number), email, and a strong password. DLRSJAM uses role-based authentication to ensure each user only ever sees what they're permitted to access; there's no risk of an applicant accessing officer tools.

Secure credentials — password hashing and session tokens protect every account from unauthorised access.
Role enforcement — upon login, each user is automatically routed to their correct dashboard (Applicant, Officer, or Supervisor).
Works on any device — registration requires no app download; the PWA runs in any modern browser.
DLRSJAM · Register
Full Name
Marcus A. Campbell
TRN
123-456-789
Email
m.campbell@email.com
Password
Select your role
Applicant
TAJ Officer
Supervisor
2
Step Two

Select Your
Transaction

After logging in, the applicant selects the type of transaction they need: a standard renewal, a replacement for a lost or damaged licence, or an amendment to update personal details. The system retrieves the applicant's existing licence record automatically from the database so they don't have to re-enter information that's already on file.

Three transaction types — Renewal, Replacement, or Amendment, each with a tailored flow and document requirements.
Record retrieval — the system looks up the applicant's current licence record so pre-existing details are auto-populated.
Guided interface — each transaction type shows only the fields and uploads relevant to that specific request.
DLRSJAM · Select Transaction
What do you need to do?
Renew LicenceSelected
Replace Lost / Damaged Licence
Amend Personal Details
Retrieved from record
Licence No: J-2019-04821
3
Step Three

Upload Your
Documents

The applicant uploads two documents: their current driver's licence and a supporting photo ID. The upload interface guides them through each requirement with clear instructions. Once submitted, the files are sent directly into the AI verification pipeline.

Current driver's licence — uploaded as a photo or scan; used for OCR extraction and face matching.
Supporting ID — passport or national ID accepted; cross-referenced against the application form data.
Instant pipeline entry — once uploaded, the AI modules begin processing automatically in the background.
DLRSJAM · Upload Documents
Upload Current Licence
Upload ID Doc
✓ Licence Uploaded
4
Step Four

Verify Your
Identity

This is the core of DLRSJAM. Three separate AI modules run automatically the moment an applicant submits their application — Python Tesseract reads the document text, DeepFace compares the uploaded ID photo against the applicant's live webcam capture, and DeepFace's anti-spoof model confirms a live person is present.

OCR Text Extraction — Python Tesseract reads every field on the uploaded licence and cross-checks details against the application form at 98.2% accuracy.
Facial Recognition — DeepFace computes a similarity score between the uploaded ID photo and the applicant's live webcam capture.
Liveness Detection — DeepFace's pre-trained anti-spoof CNN confirms the webcam capture is from a live person present at submission, not a printed photo or screen replay.
DLRSJAM · Identity Verification
ID Photo
Live Capture
Face Match Score
0%
✓ Blink Detected
✓ Live Person
✓ No Replay
OCR Accuracy 98.2%
5
Step Five

Review, Sign
& Pay

Before submission the applicant reviews a summary of their application, confirms their personal details are correct, signs a digital declaration, and pays the renewal fee securely through the integrated Stripe payment flow. Nothing is submitted until the applicant explicitly confirms everything.

Application summary — all submitted details are shown in full for the applicant to confirm before anything is sent for processing.
Digital declaration — the applicant signs a statutory declaration confirming the accuracy of their submission.
Secure payment — the renewal fee is collected via Stripe before the application enters the officer review queue.
DLRSJAM · Review & Pay
Application Summary
Name
Marcus A. Campbell
Transaction
Renewal
Licence No.
J-2019-04821
Renewal Fee J$3,000
6
Step Six

TAJ Officer
Review & Approval

Every application, regardless of its AI confidence score, passes through a TAJ officer before any licence is issued. The officer dashboard presents the AI results in a clear, structured format. Officers can approve, reject, or flag an application for further review, and can override AI results when professional judgment requires it.

AI-assisted review — officers see confidence scores, OCR output, and face match results side by side, saving significant review time.
Human override — the AI assists but never replaces. Officers retain full authority to approve or reject regardless of AI results.
Audit trail — every decision is logged with a timestamp, officer ID, and written notes for full accountability.
Officer Dashboard · Review Application
APP-2026-0847
Pending Review
OCR Accuracy
98.2% ✓
Face Match
94.7% ✓
Liveness
Confirmed ✓
TRN Match
Verified ✓
AI Confidence
94.7% — Review
7
Step Seven

Download Your
Digital Licence

The moment a TAJ officer approves an application, DLRSJAM automatically generates a personalised digital driver's licence as a downloadable image card. The licence is rendered as a styled React component with the applicant's background-removed photo and all standard identification fields.

Instant digital licence — the licence card is generated and available for download immediately upon officer approval, with no wait time.
Background-removed photo — the applicant's uploaded ID-style photo is processed to remove the background, giving the licence a clean, professional appearance.
Secure delivery — the licence is tied to the applicant's verified identity and only accessible through their authenticated account.
DLRSJAM · Your Digital Licence
Jamaica
Government of Jamaica
Driver's Licence
Verified
Class
A — Private
TRN
102-384-756
Date Issued
12 May 2026
Expiry
11 May 2031
Date of Birth
04 Mar 1990
Sex
M
Full Name
Marcus A. Campbell
Address
14 Constant Spring Rd, Kingston 8
Signature of Licensee
Endorsements & Restrictions
CodeDescriptionDateAuthority
01Corrective Lenses Required2026-05-12TAJ/KGN
05Valid for Private Use Only2026-05-12TAJ/KGN
12No Night Driving2026-05-12TAJ/KGN
Control Number
JA-2026-00847-CTL
↓ Download PDF Licence

The AI verification engine,
explained.

Three independent AI modules work in parallel the moment an application is submitted, each verifying a different dimension of the applicant's identity.

OCR Document Reading
Tesseract (Python)
Tesseract extracts all text content from the uploaded licence image using optical character recognition. Each field name, licence number, expiry date and address is parsed and automatically cross-referenced against the data the applicant entered in their application form.
Extraction Accuracy
98.2%
Avg. Processing Time
< 3 seconds
Fields Extracted
8 data points
Facial Recognition
DeepFace (Python)
DeepFace computes a similarity score between the uploaded ID photo and the applicant's live webcam capture. The Euclidean distance between face embeddings is mapped to a 0–100% similarity score — a score of 40% or above passes, accommodating natural variance between a studio ID photo and a live webcam capture.
Pass Threshold
≥ 40% match
Descriptor Dimensions
128-dimensional
Method
Euclidean distance
Liveness Detection
DeepFace (anti-spoof CNN)
A pre-trained DeepFace anti-spoofing CNN analyses each webcam frame to confirm a live person is present, not a printed photo or screen replay. The webcam frame is decoded and fed into DeepFace with anti-spoofing enabled. A definite spoof result hard-fails the verification; if the model errors or times out, it skips gracefully without failing the applicant.
Model Type
Pre-trained CNN
Anti-Spoofing
Photo & screen replay
Framework
DeepFace (Python)
Overall Confidence Score
0%
The overall score is a weighted composite of all three AI module outputs OCR accuracy, face match similarity, and liveness confidence presented to the officer for their final decision.
OCR Extraction
98.2%
Face Match
94.7%
Liveness Confidence
99.1%

Built with proven,
open-source technology.

Every tool in the DLRSJAM stack was chosen for reliability, open licensing, and fitness for purpose, no proprietary black boxes.

Frontend
React.js
Powers the applicant-facing PWA and officer dashboard with component-based, reactive UI architecture.
Backend
Python / Flask
Flask REST API handles all routing, authentication logic, AI orchestration, and communication between the React frontend and verification services.
OCR
Python Tesseract
Server-side optical character recognition engine that extracts and validates all text fields from uploaded licence documents via the Python pytesseract binding.
Face AI
DeepFace
Python face recognition and analysis library powering both the facial similarity scoring and the anti-spoofing liveness detection on the backend.
Liveness
DeepFace Anti-Spoof
DeepFace's pre-trained anti-spoofing CNN analyses webcam frames server-side to confirm a live person is present, blocking photo and screen-replay attacks.
Database
PostgreSQL
Relational database established via Docker, accessed through SQLAlchemy ORM storing application records, user profiles, verification results, and audit logs.
Licence Output
React + Base64 Image
The digital licence is rendered as a styled React component and exported as a base64 image card, with the applicant's background-removed photo embedded directly.
Hosting
GitHub Pages
Static site hosting for the frontend PWA with CI/CD integration; fast, reliable, and free for academic deployment.

Designed with security
at every layer.

DLRSJAM was not built with security as an afterthought, it was baked into the architecture from the first line of code. From the way passwords are stored to the way documents are transmitted, every element of the platform follows established security best practices.

Crucially, human oversight is itself a security feature. The AI never makes the final call, a real TAJ officer reviews every application before a licence is issued. This hybrid model combines the speed and consistency of AI with the judgment and accountability of a human institution.

Encrypted Passwords
Werkzeug's password hashing ensures stored passwords are never recoverable, even in a breach.
JWT Sessions
JSON Web Tokens enforce role-based access on every protected API endpoint.
HTTPS Everywhere
All data in transit is encrypted: documents, photos, and form data never travel in plain text.
Full Audit Trail
Every officer decision and system action is logged with timestamps for full accountability.
Security Stack — Defence in Depth
Role-Based Access Control
Applicants, Officers, and Supervisors are strictly isolated
Active
Werkzeug + JWT Authentication
Password hashing and signed session tokens
Active
TLS / HTTPS Encryption
All API traffic and document uploads are encrypted
Active
Liveness Anti-Spoofing
Blocks photo and screen-replay attacks in real time
Active
Secure Licence Delivery
Digital licences are only accessible via authenticated accounts
Active
Human Officer Oversight
Every application reviewed by a TAJ officer before issue
Active

Curious who built all of this?

Meet the UWI COMP3901 team behind DLRSJAM or watch the video.