Logo Lanfrica

pankaj-basnet/dagbanli-dictionary-django--wikimedia-hackathon-2026

Domain:

natural language processing

Record type:

softwaretools
Creator:
pan
Host:
Dagbanli Language Dictionary (Gamify) — Django Web App & REST API (Wikimedia TeamChallenges Paris 2026) # Dagbanli Dictionary — Django Web App (Wikimedia TeamChallenges Paris 2026) A Django web companion to the Dagbanli Dictionary Flutter app — built for the Wikimedia TeamChallenges Paris 2026. Browses Dagbanli (Dagbani) lexeme data live from Wikidata via SPARQL and the Wikidata Action API, with the same word-view stats, streak/badges, favourites, and friend-challenge features as the Flutter build, mirrored screen-for-screen as Django pages. ## Features - **Live Wikidata lookups** — search, category browse, and lexeme detail all call the Wikidata SPARQL endpoint / Action API directly, with a local cache (`Lexeme`, `LexemeSense`, `LexemeForm` models) to avoid re-fetching on every page view. - **Word-view stats** — every detail-page open is logged with a *source* (search / reveal image / category tab), surfaced as a bar breakdown on the Dashboard and Statistics pages. - **Seen/New marker & favourites** — each session's per-word engagement (times seen, starred/unstarred) shown right on the word detail page. - **Streak & badges** — a 30-day star grid (small star = daily practice, big star = a completed 7-day run) plus six milestone badges with progress bars, seeded via `manage.py seed_badges`. - **Friend challenges & anonymous help requests** — send a word challenge to a friend by username, or post an anonymous "ask for help" request to the helper queue, both via HTMX modals/buttons on the word detail and image-reveal pages. - **Image reveal game** — pulls a random Dagbanli word that has a Wikimedia Commons sense image, blurred/hidden behind a tap-to-reveal overlay. ## Tech stack - **Django 5** (MVT) + **Django REST Framework** (`AllowAny` API) - **Bootstrap 5** + **htmx** for progressive-enhancement interactivity (live search, favourite toggle, challenge/help-request forms) without a JS framework - **SQLite** by default (swap to MariaDB via `DATABASE_URL` for production — see below) - **WhiteNoise** for static file serving (no separate nginx needed on Toolforge) - …

Languages