PersonalAnalytics icon indicating copy to clipboard operation
PersonalAnalytics copied to clipboard

Data/Study Export Functionality

Open casaout opened this issue 1 year ago • 1 comments

To allow users/participants to export their data and share it with the researchers after checking and (if necessary) obfuscating it, we'd like to have an export functionality.

Rough overview what we'll need:

  • A wizard with three pages:
  • First page: Information on why the collected data should be shared (see screenshot)
  • Second page: Subject can review and decide which data to share/obfuscate
    • tbd
  • Once the settings are confirmed, create an export sqlite-file is created
    • create a copy of the existing database with the filename <subject id>_<YYYY-MM-DD>_<HH:MM>.sqlite in a new folder Exports inside the app location
    • encrypt and password-protect the database file (see example implementation commit and source. Use a master password (tbd) or find a better solution.
  • Third page: The subject can review the exported data and is instructed to share it with the researchers manually

Tasks:

  • [x] Andre: create mockups and review with Malte in progress
  • [x] Sebastian: create export according to (rough) specification above
  • [ ] Andre: check if our python scripts can still read encrypted databases (link)
  • [x] Test implementation
  • [x] Andre: create a documentation page that explains subjects how to install and open the export-database-file

casaout avatar Jan 31 '24 15:01 casaout

Here are the design mockups. Please feel free to make them look much nicer :) Please note that orange boxes refer to comments; and there are several instances where the study-information from #273 is included

Slide 1: image

Slide 2: image

Edit: for WindowsActivityTracker, we suggest another option (details tbd): Ideally we want the user NOT to obfuscate all window titles or share nothing, but as much as possible. Hence, we thought of adding one more option which is: A textbox where users can add a list of keywords (e.g. in a comma-separated way). The windowTitle and url (possibly also other) columns are then searched for these keywords (lower case) which are obfuscated as [anonymized] (or hash?). That way, we'd know that something was anonymized, but not what it was.

Edit 2: Obfuscation should hash the windowTitle and url

Slide 3: image

casaout avatar Feb 09 '24 12:02 casaout