Project Details

Offline Analytics Kiosk for Johnson & Johnson Medical

For Johnson & Johnson Medical Affairs at a major international medical congress in 2025, I built an interactive presentation kiosk that works with no network at all, and still hands the team a full picture of what visitors looked at, for how long, and how far they got. The fourth build for the same client team, across three congresses.

For Johnson & Johnson Medical Affairs at a major international medical congress in 2025, I built an interactive presentation kiosk that works with no network at all, and still hands the team a full picture of what visitors looked at, for how long, and how far they got. The fourth build for the same client team, across three congresses.

The brief

A congress stand needs to hold a visitor's attention and give the medical
team something afterwards. This one had several product presentation tracks
(clinical data, quality-of-life studies, prescribing information, abstracts)
and the medical affairs team wanted to know which content actually got
explored: which tracks, how long on each screen, and whether people reached
the end or drifted off.

Two constraints shaped everything. Congress network access is unreliable, so
nothing could depend on it. And the analytics had to be readable by
non-technical people on the stand, on an iPad, during the event, not in a
report weeks later.

What I built

A self-contained Windows kiosk. An Electron application with a React
interface tuned for a 1920x1080 touchscreen: large targets, slide-based
navigation, and an automatic reset to the menu after two minutes of
inactivity so the next visitor always starts fresh. Five presentation
tracks, each a sequence of image and video slides.

Analytics that live on the box. Rather than sending events to a server,
the kiosk records everything to a local SQLite database: every page view
with its dwell time, and every presentation session with whether it was
completed and how many slides were viewed. No network, no dropped events,
no data leaving the stand.

A dashboard the team could actually use. Built into the same app and
laid out for an iPad, it shows the day's numbers as they happen: sessions,
completions, dwell time by track. One tap exports the lot to CSV for the
medical affairs team to take away.

Why the architecture went this way

The earlier iteration of this kiosk was a web app packaged for iPad. Moving
to Electron on Windows meant a dedicated machine, a proper local database,
and no dependence on the venue or a tablet's storage policies. When the
environment cannot be trusted, put everything on the device you control.

This is the mirror image of EventScope, the analytics platform I built for
the same team at EADV: that one streamed edge data to the cloud. This one
proves the same outcome, engagement data the team can act on, with the
opposite architecture, chosen to fit the constraint.

Why it matters for your project

Congress technology has one measure: did it work on the floor, for three
days, without anyone touching it. This did. And it was the fourth time this
client team came back, which is the only review that really counts.

Stack: Electron, React, Vite, Tailwind CSS, React Router, SQLite,
Windows.

Need a senior engineer on your side?

Fixed-scope builds, contract engagements, or ongoing support — I take on a limited number of clients.