Logo Lanfrica

Mylo-m/moya-tenders

Domain:

digital infrastructure

Record type:

software
Creator:
Myl
Host:
MY-LO — Africa's agentic tender desk. Multi-country tender scraping, Gemini-powered bid shredding & compliance, auto-drafting. Built for the All Things Agentic Hackathon. # MY-LO · Moya — Africa's Agentic Tender Desk **Built for the All Things Agentic Hackathon (Gemini + Google Cloud).** Moya is an autonomous agentic system that monitors government & enterprise tenders across **11+ African markets**, then uses **Gemini** to shred 200-page procurement PDFs, verify bid compliance, and auto-draft submission packages — turning a week of manual bid work into minutes. ## What it does (agentic, not chatbot) - **Scrape** — backgrounds multi-country tender portals (ZA, KE, NG, ZM, TZ, GH, ZW, MA, RW, MU, ET, …) on a 6-hour cron, normalising them into one SQLite store (9,000+ live tenders). - **Shred** — Gemini parses tender documents, extracts obligations, deadlines, and returnable forms. - **Comply** — `compliance.py` evaluates bid-readiness against country-specific procurement rules (SA SBD / Kenya PPADA). - **Draft** — `doc_engine.py` assembles a render-ready bid data-package (SBD1/4/5/8, pricing, B-BBEE, CIDB). - **Deliver** — dashboard + WhatsApp field alerts push matches to SMEs. ## Architecture (30% judging — discipline) ``` [ Tender Portals ] ──► [ scraper_sqlite.py ] ──► [ moya.db (SQLite) ] │ [ moya_api (FastAPI) ] │ Gemini (bid shred / draft) ▼ [ dashboard.php / moya_ai.php ] ──► [ SME / WhatsApp ] ``` - **State**: SQLite (source of truth), idempotent `source_key` upserts. - **Credentials**: loaded from env at runtime; never in repo (see `.gitignore`). - **Failure handling**: per-source try/except + `scrape_log` audit; one dead portal never blocks the run. - **Cloud**: deployable to Cloud Run (FastAPI) + Cloud Storage (DB sync). ## Run locally ```bash pip install -r requirements.txt python3 moya_data/scraper_sqlite.py # refresh tenders uvicorn moya_api.server:app --port 8000 # API + Gemini shredder ``` ## Layout | Path | Role | |------|------| | `moya_data/scraper_sqlite.py` | Multi-country tender scraper (OCDS + portals) | | `moya_data/compliance.py` | Bid-readiness evaluator | | `moya_data/doc_en …