Goquy is a set of Python and R scripts that visualizes your daily activities in waterfall-like timetables. It shows you your past months (or years!) on a single image.
Goquy imports data from tracking apps such as Moves, Qbserve, Toggl, etc. Each functionality is contained in separated scripts, so you can take only what you need. :)
This is a side-project by tslmy while he is learning his way to R.
Sidenotes:
- Goquy is pronounced as "go-kway."
- Logo derivated from icons made by Freepik & Madebyoliver from www.flaticon.com.
[TOC]
- Because I want to see how my time is spent. This retrospect helps me optimizing my daily routine/ lifestyle.
- Because I have these data collected. What a waste of time (and battery life) if you don't make use of these data?
- Because native visualization from these time-tracking apps are not quite getting there.
What do I mean by "not quite getting there"?
This is the timesheet built in Qbserve:
It shows events for only two hours, and it contains many details I don't care about.
What I can do is a waterfall-like timetable that spans a whole year:
- Green: productive activities, such as word processing, coding, etc.
- Blue: neutral activities, such as using Google, writing emails, etc.
- Red: Distractive activities, such as watching YouTube, reading Digg, etc.
By listing my daily performance side-by-side, I am able to recognize days when I grab every minute towards deadline, as well as days when I tend to lossen up a little bit.
Besides a timetable, I'm also able to summarize how my productivities vary from day to day:
Besides sitting in front of a computer, I also spend quite a lot of time everyday commuting to university and walking around. During vacation, some days I even don't touch my laptop at all. These offline activites can also be tracked by other apps, such as Moves.
Similar to Qbserve, Moves also provides limited summaries for data it collected.
Fortunately, data from Moves can also be exported and visualized by Goquy:
The figure shown above is a record of my movements from mid June 2016 to early June 2017 (X-axis), with the Y-axis representing 24 hours in each day. Each color corresponds to a method of transportation.
This plot facilitated me recalling many events happened in the past year. You can read more about my experience here: Visualizing Daily Activities with Moves.
Other than tracking activities with timetables, Goquy can also report other interesting data about you. For example, a radar chart that of your cinematic taste:
There are more to come from Goquy as I learn my way to the R language. Stay tuned. :)
To start using GoQuantifyYourself,
- make sure you have these 2 applications installed:
- Download (or
git clone
) this repo, GoQuantifyYourself. - Inside this folder, open a terminal and install the required Python modules by executing
pip install -r requirements.txt
. - Everything stated below is assuming that you are working under the directory of GoQuantifyYourself.
I use Qbserve to monitor my time spent on my Mac.
To make use of it, follow these steps:
- Open the Qbserve main window.
- As of version 1.63, go to ADVANCED > Export.
- Under "ONE TIME EXPORT", specify "Totals and timesheet", "JSON" or "JSON min." and the day(s) that you want to plot.
- Hit "Export", and save the file to
QbserveExport/
. The filenames should look like:2017-06-01_2017-06-02.json
. - Run
QbserveExportToTables.py
, perhaps byCMD+B
-ing within Sublime Text. - Open
TimeTable for Computer Time.r
in RStudio and source this script.
Sometimes I track my work with Toggl. It not only adds more detail to the "productivity hours" identified from Qbserve, but also corrects my off-screen-but-sitting-down tasks that are recorded by neither Qbserve nor Moves.
- Go to the export page, and, using the Export button, download reports as CSV files to the
TogglExport/
folder. - Run
TogglExportToTables.py
, perhaps byCMD+B
-ing within Sublime Text. - Open
TimeTable for Working on Projects.r
in RStudio and source this script.
The iOS/Android app Moves tracks my activities.
- Hit the big "Download" button on this Export Page.
- Unzip
moves_export.zip
and thecsv.zip
inside it. - Copy
moves_export/csv/full/storyline.csv
toMovesExport/
. - Run
MovesExportToTables.py
, perhaps byCMD+B
-ing within Sublime Text. - Open
TimeTable - Active Time.r
in RStudio and source this script.
==TODO==
I label all my watched TV shows and movies with trakt.tv.
####How To
- Download your data by accessing
https://darekkay.com/service/trakt/trakt.php?username=USERNAME
. This service is provided by Darek Kay. Kudos. - Unzip the
trakt_backup_DATE-HERE.zip
, in which there is awatched_movies.txt
. - Open this
watched_movies.txt
, copy its whole content, paste it onto this JSON-to-CSV converter, and Download the entire CSV asTraktExport/watched_movies.csv
. - Go to API Settings of The Movie Database (TMDb) and apply for an App Key.
- Save the 32-character v3 API Key in the format of
tmdb = "32-character v3 API Key here"
and save askeys.py
. - Run
TraktExportToTables.py
, perhaps byCMD+B
-ing within Sublime Text. - Open
Summary for Movies.r
in RStudio and source this script.
I used a virtualenv with Python3:
virtualenv -p /usr/local/bin/python3 virtualenv
so please remember to source virtualenv/bin/activate
before starting to develop.
Also, remember to pip freeze > requirements.txt
after installing/uninstalling Python packages.