{"id":13910781,"url":"https://github.com/tslmy/GoQuantifyYourself","last_synced_at":"2025-07-18T10:30:56.448Z","repository":{"id":50134575,"uuid":"95972446","full_name":"tslmy/GoQuantifyYourself","owner":"tslmy","description":"Visualizing Quantified Self data with R.","archived":false,"fork":false,"pushed_at":"2022-12-08T00:00:31.000Z","size":41,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-08T00:44:07.962Z","etag":null,"topics":["data-visualization","python3","quantified-self","r","visualization"],"latest_commit_sha":null,"homepage":"https://tslmy.github.io/GoQuantifyYourself/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tslmy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-01T15:30:02.000Z","updated_at":"2021-12-13T15:08:20.000Z","dependencies_parsed_at":"2022-09-03T14:21:04.817Z","dependency_job_id":null,"html_url":"https://github.com/tslmy/GoQuantifyYourself","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tslmy%2FGoQuantifyYourself","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tslmy%2FGoQuantifyYourself/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tslmy%2FGoQuantifyYourself/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tslmy%2FGoQuantifyYourself/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tslmy","download_url":"https://codeload.github.com/tslmy/GoQuantifyYourself/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226388751,"owners_count":17617326,"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":["data-visualization","python3","quantified-self","r","visualization"],"created_at":"2024-08-07T00:01:45.189Z","updated_at":"2024-11-25T19:31:58.917Z","avatar_url":"https://github.com/tslmy.png","language":"Python","readme":"# GoQuantifyYourself (Goquy)\n\n![logo](logo/logo.png)\n\nGoquy 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.\n\nGoquy 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. :)  \n\nThis is a side-project by [tslmy][] while he is learning his way to [R][].\n\n[tslmy]: https://github.com/tslmy/\n[R]: https://www.r-project.org/\n\nSidenotes:\n\n- *Goquy* is pronounced as \"go-kway.\"\n- Logo derivated from icons made by Freepik \u0026 Madebyoliver from [www.flaticon.com](https://www.flaticon.com/).\n\n[TOC]\n\n## Why This Project?\n\n- Because I want to see how my time is spent. This retrospect helps me **optimizing my daily routine**/ lifestyle.\n- Because **I have these data collected**. What a waste of time (and battery life) if you don't make use of these data?\n- Because native visualization from these time-tracking apps are not quite getting there.\n\nWhat do I mean by \"not quite getting there\"?\n\n## What Can Goquy Do?\n\nThis is the timesheet built in [Qbserve][]:\n\n![](https://ww4.sinaimg.cn/large/006tNc79gy1fj3k82fuqtj318s0v4do7.jpg)\n\nIt shows events for only two hours, and it contains many details I don't care about.\n\nWhat I can do is a **waterfall-like timetable** that spans a whole year:\n\n![](https://ww3.sinaimg.cn/large/006tNc79ly1fh7xyriyxnj31je172tkx.jpg)\n\n- **Green**: productive activities, such as word processing, coding, etc.\n- **Blue**: neutral activities, such as using Google, writing emails, etc.\n- **Red**: Distractive activities, such as watching YouTube, reading Digg, etc.\n\nBy 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. \n\nBesides a timetable, I'm also able to summarize how my productivities vary from day to day:\n\n![](https://ww4.sinaimg.cn/large/006tNc79ly1fh7xxvq3nqj31jo17aq95.jpg)\n\nBesides 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][].\n\nSimilar to [Qbserve][], [Moves][] also provides limited summaries for data it collected. \n\n![](https://ww3.sinaimg.cn/large/006tKfTcgy1fj4gef2bl5j30gv0ic437.jpg)\n\nFortunately, data from [Moves][] can also be exported and visualized by Goquy:\n\n![](https://ws2.sinaimg.cn/large/006tKfTcly1fh4t8mq4pdj31kw188x6p.jpg)\n\nThe 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.\n\nThis plot facilitated me recalling many events happened in the past year. You can read more about my experience here: [Visualizing Daily Activities with Moves](https://medium.com/@lmy/visualizing-daily-activities-with-moves-e65e62aab51).\n\nOther than tracking activities with timetables, Goquy can also report other interesting data about you. For example, a [radar chart](http://www.datavizcatalogue.com/methods/radar_chart.html) that of your cinematic taste: \n\n![](https://ww3.sinaimg.cn/large/006tKfTcgy1fj4gr5qc78j30kc0etq47.jpg)\n\nThere are more to come from Goquy as I learn my way to the R language. Stay tuned. :)\n\n## Installation\n\nTo start using **GoQuantifyYourself**, \n\n1. make sure you have these 2 applications installed:\n\n- [Python3](https://www.python.org/downloads/), which is used to prepare data for RStudio.\n- [RStudio](https://www.rstudio.com/products/rstudio/download/), which is for plotting.\n\n2. Download (or `git clone`) this repo, [GoQuantifyYourself](https://github.com/tslmy/GoQuantifyYourself).\n3. Inside this folder, open a terminal and install the required Python modules by executing `pip install -r requirements.txt`.\n4. Everything stated below is assuming that you are working under the directory of **GoQuantifyYourself**.\n\n## How To Visualize Time Spend on...\n\n### … Sitting in Front of A Computer\n\nI use [Qbserve][] to monitor my time spent on my Mac. \n\n#### How To\n\nTo make use of it, follow these steps:\n\n1. Open the Qbserve main window.\n2. As of version 1.63, go to ADVANCED \u003e Export.\n3. Under \"ONE TIME EXPORT\", specify \"Totals and timesheet\", \"JSON\" or \"JSON min.\" and the day(s) that you want to plot. \n4. Hit \"Export\", and save the file to `QbserveExport/`. The filenames should look like: `2017-06-01_2017-06-02.json`.\n5. Run `QbserveExportToTables.py`, perhaps by `CMD+B`-ing within Sublime Text.\n6. Open `TimeTable for Computer Time.r` in [RStudio][] and [source](http://www.dummies.com/programming/r/how-to-source-a-script-in-r/) this script.\n\n[Qbserve]: https://qotoqot.com/qbserve/\n\n### … Working on Projects\n\nSometimes 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][].\n\n[Toggl]: https://toggl.com/\n\n#### Demo\n\n![](https://ww1.sinaimg.cn/large/006tNc79ly1fh80p014m4j30zk0paq7s.jpg)\n\n#### How To\n\n1. Go to [the export page](https://toggl.com/app/reports/detailed/), and, using the _Export_ button, download reports as CSV files to the `TogglExport/` folder.\n2. Run `TogglExportToTables.py`, perhaps by `CMD+B`-ing within Sublime Text.\n3. Open `TimeTable for Working on Projects.r` in [RStudio][] and [source](http://www.dummies.com/programming/r/how-to-source-a-script-in-r/) this script.\n\n### … Moving Around\n\nThe iOS/Android app [Moves][] tracks my activities. \n\n[Moves]: https://moves-app.com/\n\n\n#### How To\n\n1. Hit the big \"[Download](https://accounts.moves-app.com/export/download)\" button on [this Export Page](https://accounts.moves-app.com/export).\n2. Unzip `moves_export.zip` and the `csv.zip` inside it.\n3. Copy `moves_export/csv/full/storyline.csv` to `MovesExport/`.\n4. Run `MovesExportToTables.py`, perhaps by `CMD+B`-ing within Sublime Text.\n5. Open `TimeTable - Active Time.r` in [RStudio][] and [source](http://www.dummies.com/programming/r/how-to-source-a-script-in-r/) this script.\n\n### ... Sleeping (or Trying to, at Least)\n\n==*TODO*==\n\n### What's My Taste Like in Movies?\n\n I label all my watched TV shows and movies with [trakt.tv](https://trakt.tv/).\n\n####How To\n\n1. Download your data by accessing `https://darekkay.com/service/trakt/trakt.php?username=USERNAME`. This service is provided by [Darek Kay](https://darekkay.com/2014/08/12/trakt-tv-backup/). Kudos.\n2. Unzip the `trakt_backup_DATE-HERE.zip`, in which there is a `watched_movies.txt`.\n3. Open this `watched_movies.txt`, copy its whole content, paste it onto [this JSON-to-CSV converter](https://konklone.io/json/), and __Download the entire CSV__ as `TraktExport/watched_movies.csv`.\n4. Go to [API Settings of The Movie Database (TMDb)](https://www.themoviedb.org/settings/api) and apply for an App Key.\n5. Save the 32-character v3 API Key in the format of `tmdb = \"32-character v3 API Key here\"` and save as `keys.py`.\n6. Run `TraktExportToTables.py`, perhaps by `CMD+B`-ing within Sublime Text.\n7. Open `Summary for Movies.r` in [RStudio][] and [source](http://www.dummies.com/programming/r/how-to-source-a-script-in-r/) this script.\n\n## A Note for Developers\n\nI used a virtualenv with Python3:\n\n`virtualenv -p /usr/local/bin/python3 virtualenv`\n\nso please remember to `source virtualenv/bin/activate` before starting to develop.\n\nAlso, remember to `pip freeze \u003e requirements.txt` after installing/uninstalling Python packages.\n\n\n\n[RStudio]: https://www.rstudio.com/","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftslmy%2FGoQuantifyYourself","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftslmy%2FGoQuantifyYourself","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftslmy%2FGoQuantifyYourself/lists"}