← All projects
Project

DREWQ

A platform for reading, verifying, and managing ECOWAS Identity Cards, with end-to-end demos for POS payment and transport tap-to-pay.

Role Engineer & Builder
Type Personal project
Year 2025
Stack Next.js · FastAPI · Python · PostgreSQL
Live drewq.com →

About this project

DREWQ is a platform for reading, verifying, and storing data from ECOWAS Identity Cards. It's built for developers, retailers, transit operators, and enterprises in Ghana who want to add identity verification or card-based payment to their products without writing card-reader code from scratch.

The system has three parts: a small agent that runs on the operator's machine where the USB card reader is plugged in, a backend service that the agent connects to, and a dashboard that shows live scan results in the browser. When someone inserts a card, the agent reads the chip directly using the same standard protocol that passports use, and the platform verifies and stores the data securely, with enterprise-grade encryption, two-factor authentication, and rate limiting built in.

On top of the platform, I built two end-to-end demos, each with two flows.

Pay with Ghana Card is a point-of-sale demo showing how a customer can pay at a shop or POS terminal. One version is a quick verify-and-pay: insert the card, enter the last 4 digits and check digit of the Ghana PIN, payment authorised. The other adds a 5-digit payment PIN on a keypad for a fuller verification + authorisation flow, the way a real card transaction works. The two are designed for different stakes. The quick check is for everyday low-value purchases where checkout speed matters most; the full PIN flow is for higher- value transactions where both the customer and the merchant want bank-card-style authorisation. Knowing the identity is verified is one thing; proving the holder authorised this specific payment is another.

Transport Payment is a tap-to-pay flow for everyday mobility. The bus demo is one-tap: the card itself is the fare, no PIN or identity check required, designed for fast boarding at GH₵ 3.50 a ride. The scooter demo adds identity verification: insert the card, confirm with a PIN suffix, and the scooter unlocks while a GH₵ 15.00 fare is charged automatically. The two flows trade off speed against accountability. At peak hours, dozens of passengers board a bus in minutes; any extra friction means missed buses and longer queues, and the fare is low enough that the small fraud risk is worth the throughput. A scooter rental is higher-value, the vehicle can be damaged or misused, and the operator needs a record of who took it out, so the PIN step doubles as both authorisation and identity record.

Together, the four flows show how a single identity layer can power very different transactions, with the right amount of verification for each one and no more.