Skip to main content
ReleasedMobile Applications

Card Scanner

An Android application that records issued payment cards from the camera and exports them to Excel, designed so that it is structurally incapable of leaking card data.

No screenshots from this project can be published: it handles financial or personal data, so all visuals here are illustrations and contain no real records.

A versioned download is available for this project.

The problem

Organisations that issue physical cards to staff or drivers often need an inventory: which card went to whom, and when. Doing this with a notes app or a spreadsheet means someone types card numbers by hand, which is slow and puts full card numbers into files that then get emailed around. It is the kind of quiet data-protection problem that nobody owns until an audit finds it.

The approach

An offline Android application that scans a card with the camera, keeps only the masked number and the last four digits, and exports an Excel workbook. The privacy guarantees are structural rather than procedural: there is no column that can hold a full card number, the application declares no network permission at all, card images are captured in memory and discarded, and the exporter re-scans its own finished workbook and rejects it if any card-number-like sequence appears.

What is implemented

  • Camera scanning with a fast capture interface
  • Masked-number-only records: the data model exposes a masked number and last four digits, with no field able to store a full number
  • No CVV, PIN, magnetic-stripe or chip data is read or stored — there is no recognition path and no column for it
  • On-device optical character recognition with the bundled offline model
  • Formatted Excel workbook export, matching the layout of the issuing organisation’s own tracking sheet
  • Export self-verification: the finished workbook is re-scanned and rejected if a card-number-like sequence is found
  • Sensitive fields cleared from memory once consumed
  • No network permission declared, so the application is technically unable to transmit data
  • Screen-capture protection and cloud-backup exclusion
  • Six published releases with downloadable builds

Current status and limitations

  • It records card inventory only. It is not a payment terminal and cannot authorise, charge or process a payment.
  • It is not affiliated with, endorsed by or sponsored by any card network; “Visa” appears only in the repository name because that is the card type it was written for.
  • No automated test suite and no CI workflow.
  • No licence file is published.
  • The project is recent, so it has not been proven at scale.
  • It handles payment-card data by nature, so no screenshot can be published — every visual here is an illustration.

Technology

  • Kotlin
  • Android
  • ML Kit
  • Gradle
  • Excel export

Links


Status
Released
Last reviewed
2026-10-15

Have a similar problem?

If this is close to something you are dealing with, describe your situation and we will tell you whether it is a good fit.