Logo Lanfrica

n-manato/Africa-MAP-APP

Domain:

geospatial

Record type:

software
Creator:
n-m
Host:
# Interactive Africa 3D Discovery **AFROFEST BOMA — Shuri's Lab** A touchscreen installation that lets visitors travel from a 3D map of Africa into four destinations: the Great Pyramids of Giza, Victoria Falls, the Serengeti and Kigali. Built to run unattended at a public exhibition: fully offline, 60 FPS, and understandable in about three seconds by an eight-year-old with no staff explaining it. --- ## Running it ```bash npm install npm run dev # development: normal window, DevTools, FPS overlay npm run build # typecheck + production bundle npm start # run the production bundle npm run exhibition # production bundle in kiosk mode npm run build:win # installer via electron-builder ``` Checks: ```bash npm run typecheck # tsc over the node and web projects npm run lint # eslint, zero warnings tolerated npm run smoke # end-to-end: drives the real app, screenshots, measures FPS ``` `npm run smoke` needs a production build first. It walks the whole visitor journey in a real Electron window, captures a screenshot at each step into `.smoke/`, reports frame timing, and fails on any renderer console error. Run one destination with `SMOKE_DESTINATION=giza npm run smoke`. > On some shells `ELECTRON_RUN_AS_NODE=1` is set in the environment, which makes Electron > boot as plain Node and the app never opens a window. If `npm run smoke` exits > immediately, run it as `env -u ELECTRON_RUN_AS_NODE npm run smoke`. ## Exhibition mode Kiosk is opt-in, so nobody gets trapped in it during development: ```bash EXHIBITION=1 npm start # kiosk + fullscreen + no menu + no display sleep npx electron . --kiosk # same, via a flag npx electron . --fullscreen # fullscreen only, window chrome intact ``` `IDLE_RESET_SECONDS` controls attract mode (default 90; `0` disables). After that long without input the app returns to the welcome screen, ready for the next visitor. **Staff exit from kiosk mode: `Ctrl` + `Shift` + `Q`.** …