Early Warning Early Warning Operator console
  • ← Home
  • Dashboard
  • Guides
  • Register alerts
  • API docs
  • Admin

Operator PIN

Enter the operator PIN. The API resolves ADMIN_CONSOLE_PIN, then REGISTRATION_DIRECTORY_SECRET, otherwise the dev default applies.

Operator console

PIN (ADMIN_CONSOLE_PIN / REGISTRATION_DIRECTORY_SECRET): verifies you at this workstation; incorrect attempts are slowed down on the server.
Sessions: after unlock, an HttpOnly cookie is tied to a MongoDB session (hashed token in operator_console_sessions). Nothing equivalent to NOTIFICATION_API_KEY is saved in localStorage here.
Automation: curl / workers can still use Authorization: Bearer <NOTIFICATION_API_KEY> when that env var is configured. Use trusted networks and reverse-proxy hardening in production.

Authentication

Unlock with the PIN once per session lifetime (see TTL from the server below). Lock (PIN) revokes your database session on the server and clears the cookie — you will enter the PIN again next time.
To force-disable all operators, restart with a cleared database collection or revoke via DB operations.

Settings — dashboard display

Theme and 30‑minute auto‑refresh preferences stay in this browser (localStorage). PM2.5 alert threshold is stored in MongoDB and applies to the public dashboard for everyone.

Guides — help for operators

You do not need to be technical to review health workers and enrollees. Use the guides below when you forget a word or workflow. Words like API or Mongo simply mean computer services that hold data and deliver messages. If something stays red or empty after Refresh, your IT teammate should check server settings (.env files and restarting the service).

Guides hub — diagrams & written guides (new tab) Public enrolment form patients use

Private documentation (docs-private/)

Partner-restricted UNICEF/strategy Markdown is not linked on the public Guides page. Requires an active operator session (PIN unlock) above.

Polygon — network & signer (read-only)

Production (persistent): set BLOCKCHAIN_ONCHAIN_NETWORK to amoy or mainnet, set the matching RPC (POLYGON_AMOY_RPC_URL or POLYGON_RPC_URL), restart the API so every worker matches.

Quick switch (this server process only): use the buttons below — they call PATCH /api/admin/blockchain/runtime-network. The choice is lost when the process restarts; mirror it in backend/.env for real deployments.

Faucets only apply on testnets; mainnet POL is purchased, not tapped.

Test POL (Amoy): faucet.polygon.technology — paste your signer address after refresh (Copy). Extra links appear under Refresh.

Network (runtime)
Unlock the console above, then Refresh.
Live ledger — smoke test

One button runs POST /api/admin/blockchain/smoke-touch → BlockchainLogger.log_action (same path as real preparedness anchors). On Amoy this spends test POL; on Polygon mainnet it spends real POL for gas — confirm the overview above shows the network you intend.


                

Anchored events (operator audit)

When POLYGON_ONCHAIN_LOG is enabled, air/heat broadcasts and facility preparedness actions trigger optional Polygon transactions. Every attempt is recorded in MongoDB (onchain_anchor_log) with tx links when present — use this table to correlate with the explorer.

Log outcome measurement (operator)

Submits a respiratory/outcome snapshot through log_outcome (see building blocks). The blockchain key is always Facility ID; pick an enrollee below to fill ID and a readable facility name automatically.

Registered enrollees (health workers & subscribers)

What this screen does: lists everyone registered to receive advisory messages and use the preparedness dashboard — hospitals, wards, municipalities. Normal practice is to invite people via the public form; operators can fix mistakes (password reset, archive, permanent delete). For verification pending, use Resend verify to send a fresh code via email/SMS/WhatsApp (per their preferences; email uses SendGrid when configured). Dashboard login after signup requires verification first: password alone is not enough until they submit the code (see POST /api/contacts/verify). Unverified login attempts are recorded under Load activity → Recent action logs (and optional email if ADMIN_UNVERIFIED_LOGIN_ALERT_EMAIL is set). Buttons Add new enrollee (opens a guided form), Sites / area on a row to add hospitals/wards or municipalities for an existing person, Load registrants refreshes this table. Unmask phones shows whole phone numbers — use only inside your organisation.

Email / identity Facility / cities Status Actions

Last “add enrollee” result (after you submit the form):

—

Add new enrollee

Fill the same basics as someone using the normal website signup. By default the account opens verified for staff convenience. Tick Send verification codes only if they must confirm links like citizens do.

How they hear alerts
Air smoke & heat advisories

Uncheck both if they refuse environmental texts — they will not get municipal AQ/heat broadcasts.

Facilities & coverage areas

Add more facility names (hospital / ward lines) and more municipalities where this person should receive air-quality and heat alerts. Keys must match GET /api/cities (same list as public registration). facility_id is your internal reference for reporting integration.

MongoDB + integrations status

MongoDB is the database storing enrollee profiles, preparedness actions, broadcast history, consent records — the living memory behind this early-warning suite. Integration flags show whether auxiliary services appear configured — email (SendGrid), SMS/WhatsApp (Twilio), air-quality keys, Polygon wallet, DHIS hooks. Greens or “configured” summaries help your IT teammate know what is plugged in — this screen does not show secret passwords. Press Refresh status after someone changes `.env`; the server loads those values at startup unless they hot-redeploy.

—

Activity overview (past 24 hours)

Lightweight counters since yesterday — how many people are enrolled, how many validated their email/SMS verification, totals of preparedness actions clinics entered, totals of outbound delivery attempts (notifications). It is a coarse dashboard pulse: use it to notice sudden drops or bursts; details live in spreadsheets or facility filters elsewhere. Use Load activity to fetch counts.

—

Recent facility preparedness logs

Entries staff submit from the preparedness facility actions screen — preparedness actions, confirmations, timelines around heat or air emergencies. Newest-first list for quick audit (≈ thirty rows). Helps verify partners are acknowledging advisories consistent with UNICEF escalation expectations. Load recent logs pulls snapshots for investigation (no patient identifiers beyond facility names when submitted).

—
MongoDB Weather API

Home · Dashboard · Guides · Register alerts · API docs (Swagger)
Early warning operator console — Nepal / UNICEF demonstration platform

Powered by intellADAPT, an Edwise Tech Company