Ukraine firearm knowledge portal

academia paper

I developed for the Small arms survey project a dashboard visualising data on arms seizure in Ukraine. It gives a fast, interactive view of how firearms are discussed on Ukrainian social media, with a map, charts, and a searchable table. It’s built to be maintainable: data processing happens inside DuckDB, the UI updates reactively, and administrators can refresh the whole dataset with a single button that launches pre‑configured GitHub workflows.

Edith Darin true
2025-12-01

Ukraine Firearm Knowledge Portal

The Ukraine Firearm Knowledge Portal is a web‑based dashboard that lets anyone explore information about firearms that appear in Ukrainian social‑media posts. It’s built with the R /Shiny framework and runs in the cloud, so you can reach it from any browser without installing software.

What you see when you open the dashboard.

All of these elements react instantly when you change the filters (items, regions, date range). There’s no “Apply” button; the dashboard updates automatically, with a short pause to avoid overwhelming the server.

How the data get there

When the dashboard starts, it authenticates to Google Drive, opens the DuckDB file, builds a few helper views, and caches colour palettes and filter choices for speed.

Who can log in and what they can do

These pipelines run as GitHub Actions and take a few minutes; after they finish the dashboard picks up the new data on the next page reload.

Where everything lives

Component Where it’s hosted
Shiny app Posit Connect Cloud (deployed from GitHub)
Dashboard code (open source) Github
Source CSV / Excel files, users.csv Google Drive (accessed via a service‑account token)
Static screenshots Cloudflare Workers CDN (URL pattern {YYYY‑MM}/{post_id}.png)
Automation scripts & CI/CD GitHub repositories + GitHub Actions
Secrets (tokens, passwords) Environment variables on the server and GitHub repo secrets

Bottom line

The portal gives a fast, interactive view of how firearms are discussed on Ukrainian social media, with a map, charts, and a searchable table. It’s built to be maintainable: data processing happens inside DuckDB, the UI updates reactively, and administrators can refresh the whole dataset with a single button that launches pre‑configured GitHub workflows. All of this is secured by email‑based login backed by a Google Drive user list, and the system is ready to be extended with more languages, authentication methods, or automated update schedules.

Citation

For attribution, please cite this work as

Darin (2025, Dec. 1). Meet Edith: Ukraine firearm knowledge portal. Retrieved from https://edarin.github.io/thatsme/posts/2025-12-01-ukraine-firearm-knowledge-portal/

BibTeX citation

@misc{darin2025ukraine,
  author = {Darin, Edith},
  title = {Meet Edith: Ukraine firearm knowledge portal},
  url = {https://edarin.github.io/thatsme/posts/2025-12-01-ukraine-firearm-knowledge-portal/},
  year = {2025}
}