bellingcat / bellingcat/wayback-google-analytics
feat: export findings to GraphML extension
- Dominant language
- Python
- Stars
- 240
- Forks
- 26
- PR merge metrics
- No merged PRs in 30d
Description
# Overview
Several investigations focused on Google Analytics IDs have visualized the relationships between UA codes and websites. Lawrence Alexander's [2015 Bellingcat piece](https://www.bellingcat.com/resources/how-tos/2015/07/23/unveiling-hidden-connections-with-google-analytics-ids/) comes to mind as a great example of this: he uses GraphML files and the yEd graph editor to neatly display the connections between websites.
It would be great to add support for the GraphML filetype to the project and allow users to export their findings to `.graphml`.
# Solution
We would need to add `.graphml` as an export option then write the appropriate code to generate the file. `networkx` is a popular Python library for building `.graphml` files that might be a good choice for this feature.
While building out this feature it might be a good idea to group UA codes together even if the final digit doesn't match. For example: `UA-12345-1` and `UA-12345-2` are currently treated as different, but if we're mapping websites visually it likely best to have `UA-12345` as its own node and each website sharing that part of the code be connected nodes. There is an example of this in the linked article above.
Contributor guide
Research direction
No files, tests, or entry points are named. Start by tracing the existing export options and the project's findings representation, then check how GraphML output could fit the command-line workflow. Done means users can select `.graphml`, receive a valid GraphML file, and the proposed UA-code grouping behavior is addressed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, data-visualization
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100