PersonalAnalytics is a self-monitoring software developed by the Human Aspects of Software Engineering Lab of the University of Zurich to non-intrusively collect computer interaction data and user's self-reports, store it locally on the user's machine, and allow users to voluntarily share a user-defined and potentially obfuscated subset of the data with researchers for scientific purposes.
The monitoring component captures computer interaction data including user input and app & website usage data. Every now and then, a self-reflection question asks the user a question, e.g. about the current stress level or perceived productivity. Since all data is stored locally only (and not automatically uploaded to a server to avoid privacy concerns), a data export component helps the user to decide which data to share and allows it to be obfuscated, before securely sharing it with researchers. In the future, it will add a retrospection that will visualize and correlate the automatically collected and manually reported data to help users learn more about how they spend their time, their work habits and how it impacts productivity and time well spent. This software is open source, can be adapted and re-used for researchers' own scientific studies.
Anyone is welcome to contribute to PersonalAnalytics by extending it with new trackers or improving existing ones. Feel free to use PersonalAnalytics to get insights into your own work habits, or use it for research studies. In case you re-use PersonalAnalytics, ensure to provide proper attribution as described here.
Tip
🌟 Featured project: PersonalAnalytics was highlighted in the GitHub Academic Maintainer Spotlight. Read the interview →
Anyone may install PersonalAnalytics on their Windows or macOS device to non-intrusively collect computer interaction data, and analyze their activity, time spent and work habits for themselves. In the future, once we'll re-introduce the Retrospection (i.e. visualizations of the collected and self-reported data), it will be much easier to gain insights again.
Learn more about how to install and use PersonalAnalytics.
This project was created by and for researchers who want to ask study participants to run PersonalAnalytics on their device to non-intrusively collect computer interaction data in a privacy-protected way. As often times, having access to only automatically collected data is often not sufficient, PersonalAnalytics also offers an experience sampling component, which allows researchers to ask users to reflect and self-report on one or several questions (e.g. Have I been productive? Am I stressed right now?) at customizable times and using Likert-scales. In addition, a daily survey component allows researchers to define morning and/or evening questionnaires triggered relative to participants' work hours. As all collected data is only stored locally on participants' computers, there is an export component, guiding the participant through sharing and potentially obfuscating the captured data, before sharing it with the researchers through their data transfer service of choice. Most settings are configurable in the study-config, everything else can be customized in code.
Learn more about how to use PersonalAnalytics for your research project.
- Project Website
- Installation & Usage for End Users
- Customization & Usage for Researchers
- Reporting an issue or bug
- Data Collection & Privacy Policy
- Contributions
- Interview discussing the project
- Questions? Contact Dr. André Meyer
This work is carried by the following main contributors:
- Dr. André Meyer (University of Zurich, main contributor to the project)
- Prof. Dr. Thomas Fritz (University of Zurich)
- Grigor Dochev (contributor)
- Roy Rutishauser (contributor)
- You may contact André Meyer (ameyer@ifi.uzh.ch) in case of questions on the project.
- Do not attempt contact in case of questions on a specific study in which you are participating. If you encounter technical issues, create an issue, so that the community may offer help.
This project uses PA.WindowsActivityTracker and PA.UserInputTracker as its main data trackers. For the full list of dependencies, consider package.json.