{"id":18723766,"url":"https://github.com/hscells/bigbro","last_synced_at":"2025-11-11T14:30:17.841Z","repository":{"id":57565980,"uuid":"137023734","full_name":"hscells/bigbro","owner":"hscells","description":"Website interaction logging service","archived":false,"fork":false,"pushed_at":"2023-09-20T14:09:03.000Z","size":2112,"stargazers_count":5,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-28T12:43:18.538Z","etag":null,"topics":["interaction","logging","website"],"latest_commit_sha":null,"homepage":"https://ielab.io/bigbro","language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hscells.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-06-12T05:55:36.000Z","updated_at":"2023-09-12T08:32:14.000Z","dependencies_parsed_at":"2023-12-24T00:28:25.627Z","dependency_job_id":"888dbd6c-6346-4f2a-baf4-fe7cce78afdb","html_url":"https://github.com/hscells/bigbro","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hscells%2Fbigbro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hscells%2Fbigbro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hscells%2Fbigbro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hscells%2Fbigbro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hscells","download_url":"https://codeload.github.com/hscells/bigbro/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239590616,"owners_count":19664524,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["interaction","logging","website"],"created_at":"2024-11-07T13:51:31.911Z","updated_at":"2025-11-11T14:30:17.796Z","avatar_url":"https://github.com/hscells.png","language":"TeX","readme":"# Big Brother\n\n_bigbro_ is a website interaction logging service. Logging can currently be written directly to a file (i.e. CSV) or ingested to Elasticsearch.\n\n## Client\n\nTo use _bigbro_ on a website, include the following Javascript snippet (this repository hosts `bigbro.js` in the [js folder](js/bigbro.js)):\n\n```html\n\u003cscript type=\"text/javascript\" src=\"bigbro.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\"\u003e\n    BigBro.init(\"username\", \"localhost:1984\");\n\u003c/script\u003e\n```\n\nThis will allow the page to capture most events that occur by interacting with the page.\n\nThe arguments to `BigBro.init` are as follows:\n\n - `actor`: A unique identifier of the current user.\n - `server`: The address _bigbro_ is running on (please omit protocol; this is determined automatically).\n - (optional) `events`: A list of events that will be listened on globally (at the window level); e.g. \"click\", \"mousemove\".\n\nAdditional events can also be loaded in at initiation:\n\n```html\n\u003cscript type=\"text/javascript\" src=\"bigbro.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\"\u003e\n    BigBro.init(\"username\", \"localhost:1984\", [\"mousemove\", \"onload\"]);\n\u003c/script\u003e\n```\n\nCustom logging events can also be added, for example:\n\n```html\n\u003cscript type=\"text/javascript\" src=\"bigbro.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\"\u003e\n    let bb = BigBro.init(\"username\", \"localhost:1984\");\n    window.addEventListener(\"click\", function (e) {\n        bb.log(e, \"custom_event\");\n    })\n\u003c/script\u003e\n```\n\n## Server\n\n_bigbro_ is written in Go. To install locally, please use:\n\n```bash\n$ go install github.com/hscells/bigbro/cmd/bigbro\n```\n\nAlternatively, download a [prebuilt binary](https://github.com/hscells/bigbro/releases).\n\nFor help with the server, run:\n\n```bash\n$ bigbro --help\n```\n\n```\nUsage: bigbro [--filename FILENAME] [--index INDEX] [--v V] [--url URL] FORMAT\n\nPositional arguments:\n  FORMAT                 how events should be formatted and written\n\nOptions:\n  --filename FILENAME    filename to output logs to\n  --index INDEX          index for Elasticsearch to use\n  --v V                  version for Elasticsearch event type\n  --url URL              URL for Elasticsearch\n  --help, -h             display this help and exit\n  --version              display version and exit\n```\n\nTo output logs to a CSV file, use:\n\n```bash\n$ bigbro --filename my_application.log csv\n```\n\nTo output logs to Elasticsearch, use:\n\n```bash\n$ bigbro --index bigbro --v 1 --url http://localhost:9200 elasticsearch\n```\n\n## Tools\n\nTo perform analysis, one may create heatmaps with the _bbheat_ tool. To install this tool, use:\n\n```bash\n$ go install github.com/hscells/bigbro/cmd/bbheat\n```\n\nFor help with this tool, run:\n\n```bash\n$ bbheat --help\n```\n\n```bash\nUsage: bbheat --log LOG --heatmap HEATMAP [--image IMAGE] [--start START] [--end END] [--interval INTERVAL] [--location LOCATION] [--actor ACTOR] [--method METHOD] [--width WIDTH] [--height HEIGHT]\n\nOptions:\n  --log LOG              path to log file produced by bigbro\n  --heatmap HEATMAP      path to output heatmap to\n  --image IMAGE          path to image file for analysis\n  --start START          time to start analysis\n  --end END              time to end analysis\n  --interval INTERVAL    create an animation every n seconds\n  --location LOCATION    URL to limit analysis (regex)\n  --actor ACTOR          actor to limit analysis\n  --method METHOD        method to limit analysis\n  --width WIDTH          width to limit analysis\n  --height HEIGHT        height to limit analysis\n  --help, -h             display this help and exit\n  --version              display version and exit\n```\n\n![heatmap](images/hh.png)\n\n_bbheat_ can create both static heatmaps and animations. The image format accepted for input is png. The output format\nof static heatmaps is png. The output format of animations is gif. To make a gif use the `interval` argument to specify\nhow many seconds must pass the log for a new heatmap to be made. The start time, end time, actor, location, and method\ncan be specified to limit aspects of the log used in the heatmap. The location accepts a regular expression. To\noverlay the heatmap over an image, use the `image` option. This image must be a png. To create a heatmap, the screen\nwidth and height must be the same. If there are multiple screen sizes in the log, limit this with the `width` and \n`height` arguments.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhscells%2Fbigbro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhscells%2Fbigbro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhscells%2Fbigbro/lists"}