RAVENCRY Voice Relay Mobile App RAVENCRY is a real-time alert system designed to help communities respond more quickly to kidnapping incidents in Nigeria. People can submit reports through WhatsApp, USSD feature phones, or a progressive web app, allowing the platform to work across both smartphones and basic mobile devices.
# RAVENCRY Voice Relay
> **Offline voice-sighting intake for human review.**
>
> A Flutter companion for preparing a fictional missing-person sighting report
> when connectivity is weak or unavailable. Runs on **Android** and **iOS**.
**RAVENCRY Voice Relay is not an emergency dispatch service.** If someone is
in immediate danger, call **112**. The app never claims a report was delivered,
an alert was issued, or emergency services were contacted.
---
## Why it exists
Voice Relay provides a low-bandwidth path from a local sighting report to a
human-review queue. It uses a dark, high-contrast interface, large controls,
five Nigerian language choices, and a text-only fallback when a microphone is
not available.
```mermaid
flowchart LR
A[Choose language] --> B[Confirm human review]
B --> C{Capture method}
C -->|Microphone available| D[Save local audio]
C -->|Permission denied or unavailable| E[Write text report]
D --> F[Review fictional sighting]
E --> F
F --> G[Queue locally]
G --> H[Offline outbox]
H --> I[Local demo result]
I --> J[Queued for human review]
```
## Experience at a glance
| Capability | What the app does | What it never does |
| --- | --- | --- |
| **Language + consent** | Supports English, Hausa, Yoruba, Igbo, and Pidgin; requires human-review acknowledgement. | Lets a user continue without consent. |
| **Voice capture** | Requests microphone permission and saves audio locally as `.m4a`. | Uploads audio or performs cloud transcription. |
| **Text fallback** | Keeps the report flow usable if recording is denied or unavailable. | Leaves the user at a dead end. |
| **Fixture review** | Shows the supplied fictional Hausa transcript, English gloss, time, location, and language. | Uses real case data or claims a sighting is verified. |
| **Offline outbox** | Persists queued reports on-device across restarts. | Sends, broadcasts, or delivers a report. |
| **Demo submission** | Returns the deterministic local result `DEMO-VOICE-001`. | Contacts a serve …