Avow is an open-source criminal case documentation and legal research platform that helps users record, organize, and analyze alleged criminal incidents while identifying potentially applicable laws across different jurisdictions. It aims to improve transparency, legal awareness, and structured case documentation through a searchable and evidence-focused approach.
| Screen | URL |
|---|---|
| Home | index.html |
| Categories (grid) | categories.html |
| Single category | categories.html?cat=<categoryId> |
| Search / all cases | search.html (optional ?q= / ?view=cases) |
| Profile directory | profile.html |
| Single profile | profile.html?id=<personId> |
| Case detail | case.html?id=<caseId> |
| Offline fallback | offline.html (served by the service worker) |
All query parameters are treated as lookup keys only they are never echoed into the DOM as HTML.
pwa/manifest.jsonname, full icon set (192/512 + maskable + SVG), standalone display, theme/background colors, app shortcuts, scope../.pwa/service-worker.jsprecaches the app shell on install; cache-first for shell assets, stale-while-revalidate fordata/*.json, network-first for navigations withoffline.htmlfallback. Caches are versioned and auto-cleaned on activate.- Install
ui.jscapturesbeforeinstallpromptand shows a custom install banner, then registers the worker.
Important
The service worker precaches the shell, so bump CACHE_VERSION in
pwa/service-worker.js whenever you change shipped HTML/CSS/JS or icons
otherwise installed clients keep serving the old cached files.
Contributions are welcome! We appreciate bug fixes, accessibility improvements, documentation updates, code cleanups, performance enhancements, and new icon/category presets. Feel free to open an issue, submit a pull request, or suggest new ideas to help improve the project.
- Fork and create a feature branch.
- Keep the no-dependency, no-build, no-
innerHTMLconstraints intact. - Bump
CACHE_VERSIONif you changed shell assets. - Open a PR describing the change.
By contributing, you agree that your contributions are licensed under the project's Apache-2.0 license.