Project New Flower — offline-first medical device exchange for Ethiopian hospitals. Bilingual field registry PWA + cross-hospital parts matching. Zero dependencies.
# Project New Flower — Medical Device Exchange for Ethiopian Hospitals
**Live prototype → addis-ababa-mockup.vercel.app**
Donated medical devices in Ethiopian hospitals die from one broken part, no repair training, and
nowhere to source components. They then sit in storage for years — the "electronic graveyard"
problem. The world does not need another organization shipping devices; the missing layer is what
happens *after* the donation.
New Flower is that layer: a graveyard inventory, cross-hospital parts and device barter, and a
skills/training directory — scoped to Ethiopia, built for the conditions it actually runs in.
---
## The two apps
### `registry/` — field data collection (V1)
Offline-first PWA. English/Amharic. Zero dependencies. Used by a field partner to catalog graveyard
devices, hospital profiles, people and their skills, and open-ended pain probes — inside hospitals
with no reliable connectivity. Everything persists to IndexedDB and exports as JSON.
```bash
python3 -m http.server 8741 --directory registry
```
### `platform/` — the exchange network (V2)
Zero-dependency Node server plus a vanilla-JS SPA.
- **Matching** (`match.js`) — needs ↔ offers, plus harvest candidates: a same-model dead unit with a
*different* broken subsystem is the highest-value match in the system, because two corpses make
one working machine.
- **Auth** — per-hospital access codes; hospitals see and edit only their own records, and
cross-hospital views stay masked.
- **Feature flags** (`config.json`) — `exchange`, `skills`, `messaging`. Field evidence decides which
survive; the calibration playbook in `HANDOFF.md` says explicitly to turn off what the data does
not support.
- **Storage** — JSON file store with atomic writes. No database to operate.
```bash
node platform/server.js #
localhost
node platform/scripts/seed.js # demo data
cd platform && node --test test.js
```
---
## Design constraints that drove the build
These are not preferenc …