This repository contains the Heuristics Engine for my master thesis on Automated Tab Grouping
at the University of Zurich
.
The Scala/Akka application in this repository can only be used in conjunction with the corresponding WebExtension (https://github.com/rschlaefli/tab-group-webextension), which is available from a separate source. Once installed, the Heuristics Engine computes several heuristics based on tab interactions collected from browsers and, based on these interactions, proposes tab groups that might be of interest to the user.
To ensure privacy of the potentially sensitive browsing data, all storage and processing is performed on the local machine and nothing is ever shared across a network. For the purposes of experiments, selected data was exported by experiment participants and reviewed before submitting it for further analysis.
- JDK 1.8 or 11
- Scala SBT
Install all dependencies
sbt update
Create a staging build of the heuristics engine:
sbt stage
Create a package for Linux:
./_build-linux.sh
Create a package for MacOS:
./_build-osx.sh
- Generate a new
tabs.wxs
configuration usingsbt windows:wixFile
- Replace
<Component
with<Component Win64="yes"
(Whole Word!) - Replace
<Package
with<Package Platform="x64"
(Whole Word!) - Replace
ProgramFilesFolder
withProgramFiles64Folder
- Remove unnecessary components and featurs (shortcut, path)
- Add custom component for registry entries from
winpkg.wxs
- Move the updated
tabs.wxs
totarget/windows/package.wxs
- Package the binary using
sbt windows:packageBin