A community-driven location intelligence platform for discovering, mapping, and verifying Amala food spots across Nigeria. We specialize in finding obscure, undocumented, and informal locations that fly under the radar of mainstream directories like Google Maps.
Nigeria's best Amala spots are invisible online. They don't have websites, Google listings, or social media pages. They're known by word of mouth: "Iya Basira under the bridge in Mokola" or "that buka behind the market in Surulere." This knowledge lives in people's heads and WhatsApp groups — not on the internet.
Instead of scraping the web for data that doesn't exist, we go where the knowledge is: the people who eat Amala every day. Amala Atlas turns community knowledge into verified map data through multiple discovery channels, all feeding into a single verification pipeline.
User eats Amala -> Their spot is missing from the map -> They submit via WhatsApp/web
-> Spot gets verified -> Appears on the map -> User shares "I added my spot"
-> Friends see it -> Their spots are missing -> They submit -> Cycle repeats
This project is organized as a monorepo hub with three components:
amala-atlas/
├── amala-atlas-backend-api/ # Django REST API — the system of record
├── amala-atlas-auto-discovery/ # Scrapy-based web crawler (archived)
└── amala-atlas-explorer/ # React frontend (separate repo)
| Component | Role | Tech | Repo |
|---|---|---|---|
| Backend API | System of record — ingestion, verification, spot lifecycle | Django 5.x, DRF, PostgreSQL | amala-atlas-backend-api |
| Auto-Discovery | Web crawler for bootstrapping data (archived — replaced by lightweight agents in the backend) | Scrapy, spaCy, SQLAlchemy | amala-atlas-auto-discovery |
| Frontend | Map UI for browsing, searching, and submitting spots | React, Vercel | amala-atlas-explorer |
Data enters the platform through multiple channels, each with a different trust level:
| Channel | How It Works | Trust Level | Verification Needed |
|---|---|---|---|
| WhatsApp Bot | Users text a spot name + location pin to a WhatsApp number | High (GPS proof) | 1 approval |
| Web Form | Users submit via the frontend at amalatlas.vercel.app | Medium | 1-2 approvals |
| Google Maps Agent | Automated scan of Google Places API for amala-related searches | High (Google-reviewed) | 1 approval |
| Twitter Agent | Monitors tweets mentioning amala spots with city context | Low | 2 approvals |
| Seed Script | One-time bootstrap from Nigerian food blogs | Low | 2 approvals |
Every discovered spot follows the same pipeline regardless of source:
Submission -> Candidate (scored + deduplicated) -> Verification Queue -> Spot (on the map)
- Submission: Raw data enters the system (name, address, coordinates, photos)
- Candidate: Scored based on evidence quality and source channel trust (0.0–1.0)
- Verification: Human reviewers approve/reject with dynamic thresholds per channel
- Spot: Promoted to the canonical map database
Each component has its own setup instructions:
- Backend API: See the Backend README
- Auto-Discovery (archived): See the Auto-Discovery README
- Frontend: See the Explorer repo
cd amala-atlas-backend-api
pip install -r requirements.txt # or: pipenv install
cp .env.example .env # configure DATABASE_URL, SECRET_KEY
python manage.py migrate
python manage.py runserverContributions are welcome. If you know Amala spots that aren't on the map, the fastest way to contribute is to submit them through the platform.
For code contributions, pick a component repo, read its README, and open a PR.
Amala Atlas — Mapping the flavor of Nigeria, one spot at a time.