Hey /c/privacy,

Similar to the idea that was proposed a month ago by @[email protected], I built a little web app that allows one to “emulate” EAN13-based loyalty cards. I call it the Loyalty Card Emulator. 🪄

The app allows you to either select one of the built-in card numbers that I have found on the internet. (Only for demonstration purposes, of course!) Or you can just enter a code manually and create the loyalty card from it. The link to a card can be shared (e.g. if you and your SO use the same loyalty card).

At the moment, it is very basic and only has one single design that is supposed to visually mimic one of the biggest loyalty card providers that I know.

Architectural-wise, the app is written in TypeScript, powered by React and Vite. The app does not transmit and/or store your codes anywhere but on your device; it’s a single-page application that runs entirely in your browser, without any server component.

The source code is publicly available here. The hosting is taken care of by Codeberg Pages - cheers for that!

Adding new card designs and/or preset codes can be achieved quite easily, so feel free to fork and contribute!

  • ChaoticNeutralCzech@feddit.de
    link
    fedilink
    arrow-up
    30
    arrow-down
    1
    ·
    1 year ago

    I use Catima, an Android app that never even connects to the internet. A dozen barcode types, optional card pictures, ZIP export/import etc. LCDs & OLEDs don’t work with laser scanners (those that project a sweeping line) but most shops have camera-based ones anyway.

    • miss_brainfart@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      1 year ago

      LCDs & OLEDs don’t work with laser scanners

      I was wondering what the issue was, but laser always was the common denominator. Never even thought of that

      • ChaoticNeutralCzech@feddit.de
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        The reason is that laser scanners use a rotating mirror or lens in front of the laser to create the scanline, and only have a single light cell, detecting rapid changes in red light intensity. They can’t tell where light is coming from so you could trick them into reading a barcode transmitted as a sequence of light pulses from a single source (like an optical mouse’s LED controlled by an Arduino) but not an array of light sources (aka pixels) unless they have different reflectivity as the laser scans across them (such as E-ink). Technically, reflective LCDs could work with laser scanners but transferring the code to a TI-83 calculator is not worth the effort.