Custom referral tracker and desktop prospect tool for a healthcare practice

PHP SQLite Leaflet Electron Node.js third-party data APIs
~/work/dental-tracker $ cat README.md
client: [healthcare practice, anonymized]
status: SHIPPED
outcome: spreadsheet replaced by two applications
sources: 4 data APIs aggregated

The problem

A healthcare practice tracked patient referrals manually in a spreadsheet. No geographic overview, no quick way to see where referrals came from. Slow to update, impossible to query.

They also needed a way to source new prospects from multiple directories without logging into each one separately and copy-pasting into yet another spreadsheet.

The approach

Two separate tools: a web app for the referral tracker, and an Electron desktop app for prospect sourcing. Different problems, different delivery mechanism.

The web app needed to live behind auth and work from any device at the practice. The desktop tool needed to run locally and aggregate data without browser restrictions.

Tool 1: Referral tracker web app

web-app/ backend/ PHP 8.2, SQLite (no MySQL dependency) auth/ device-key gate (no username/password to manage) map/ Leaflet, referrals plotted as markers data/ referral source, date, geographic coords query/ filter by source, date range, status

Referrals are added via a simple form, geocoded, and plotted on a Leaflet map. Geographic clusters are immediately visible. Filter controls narrow by source or date range. No admin panel to configure, no plugin to update, no CMS overhead.

Device-key auth: a unique token per trusted device. No password reset flow to maintain. Works on any browser.

Tool 2: Desktop prospect aggregator

desktop-app/ (Electron + Node.js) source-1/ regulatory directory (API) source-2/ professional association (scrape) source-3/ OSM geographic data source-4/ clipboard smart-paste (arbitrary formats) features/ merge-import/ dedup across sources pin-lock/ local 4-digit PIN export/ one-click CSV smart-paste/ parses free-form contact text

The desktop tool aggregates from four data sources into one view. Smart Paste handles arbitrary pasted contact lists, recognising names, numbers, and practice types from unstructured text. PIN lock keeps it off-limits on shared machines. Merge-import deduplicates across sources on import.

Outcome

Both tools shipped. The practice replaced a manual spreadsheet workflow with a web app for referral tracking and a desktop tool for prospect sourcing. Data that previously lived in separate files and browser tabs is now queryable from a single interface.

> back to all work    > start your project