Logo Lanfrica

okongomathews/PhishSimAfrica

Domain:

peace and securitydigital infrastructure

Record type:

software
Creator:
oko
Host:
Localised Social Engineering Simulation for East African Financial Institutions # PhishSimAfrica Localised social-engineering simulation platform for East African financial institutions — campaign management, click/submission tracking, contextual micro-training, and reporting. Built for the Ongoza CyberHub Innovation Challenge. ## What this repo is, precisely This is the **platform**: consent-gated campaign management, delivery infrastructure, event tracking, training delivery, and reporting. It does **not** ship with any brand-impersonating lure content (no M-Pesa/bank/CBK SMS or email copy, no cloned login-page HTML). See `docs/CONTENT_POLICY.md` for exactly what's gated, why, and what you need to add under your own legal review before a live campaign. This split is enforced in code, not just documented — `simtemplates. Template.is_usable_in_live_campaign()` and `campaigns/delivery.py` both hard-refuse to send anything that hasn't cleared the approval gate. ## Quickstart ```bash python -m venv venv && source venv/bin/activate pip install -r requirements.txt cp .env.example .env # fill in DB creds, AT sandbox key, email creds python manage.py migrate python manage.py createsuperuser python manage.py loaddata initial_training_content # generic protective training content, EN + SW python manage.py seed_demo # demo org + consented cohort + placeholder template python manage.py runserver ``` Visit `/admin/` to manage organisations, recipients, templates, and campaigns. Visit `/reports/` (login required) for the results dashboard. Run the test suite: ```bash python manage.py test ``` Tests cover (see `*/tests.py` in each app): - Kenya DPA consent gating (org can't activate without both DPA gates; cohort recipients can't be added without individual consent) - The no-credential-storage guarantee, proven end-to-end by POSTing credential-shaped data to the submission endpoint and asserting none of it appears anywhere in the resulting database rows - Template legal-approval gate (unapproved/empty templates can't b …