The methodology around my accountability trackers 👨🔬
An always-updated page with the current methodology, experiments, future plans and more for my accountability trackers.
The initial idea for this feature just included tracking my commits to personal projects each week as a way to increase accountability, but since then, this feature has evolved into much more.
After launching, I quickly added more goals and increased the intensity. Read my first impressions post for more details.
I now use noticeably more tech for this feature, and expect that to increase as I track more metrics and leverage additional data to make the trackers more useful. Which is why I decided to start this living page.
Read on to find out how each tracker works, what I'm planning on trying out, and things I've already tried out or built.
This tracker is fully automated with real-time data. It currently fetches all of my git commits using the official GitHub API, filters out the commits to repos I don't directly own, and then counts the number of commits I've made in the last 7 days.
The movement tracker is fully automated with daily data. It uses the Apple HealthKit API via an iOS app on my phone. I used Apple's Mobility Health App sample project as a starting point before integrating the database and accessing the specific data points I wanted.
With this, the app is now able to read my walk/run distance daily and push that to my site's Firebase Firestore Database. For more information, see this post that I wrote on accessing iOS health data.
I've also added a simple trend indicator next to the progress percentage that indicates whether progress is up or down week-over-week.
This tracker is fully automated with daily data. Because I use hackchinese.com to drill vocabulary, I have that data relatively accessible.
I wrote a script that runs via GitHub Actions once a day, collects the vocabulary count from my account, and pushes that as an entry to the relevant collection in my project's Firestore Database.
As with movement, I've added a simple trend indicator next to the progress percentage that indicates whether progress is up or down week-over-week.
This tracker is not currently automated. I directly enter an entry to the relevant Firestore Database collection that contains entries mapping to dates of when I recorded a practice session. The last 30 days of entries are pulled from Firebase when displaying the tracker.
While there is a path forward for full automation (via accessing the files generated from the Voice Memos app on macOS), I do want to always keep at least one tracker manually updated to ensure that I'm still looking at my site each day.
These are simply ideas that I may or may not try out in the future. I'll update this page as I try them out and move them to Previous plans with comments on whether they were implemented or scrapped.
The list of ideas in no particular order:
- Streak tracker per goal
- Access my Workout data to track some variation of:
- the number of workouts I do a week
- the number of minutes I spend working out a week
- the number of strength training workouts I do
- the number of walks/runs I went on
- Historical charts view
- Now that I've integrated a database and am accumulating historical data, I could present that data in a more meaningful way.
- Store github commits in Firebase so that I could do historical and trend analysis for that tracker as well
Plans that I've either implemented or scrapped, preserved for posterity in chronological order (most recent first):
- 🟡 Trend analysis
- Now that I've integrated a database and am accumulating historical data, I can compare month-over-month or week-over-week trends to provide high-level insights.
- I've already implemented this for the Mandarin Chinese tracker and Movement trackers, will add this for the GitHub commits and monthly singing tracker once my database has accumulated enough data.
- 🟡 Automation
- ✅ Fully automated the Movement and Mandarin Chinese vocabulary trackers
- ✅ Database
- Integrated Firebase's Firestore Database to store data instead of the static constants file that I was overriding each day.
- Initially entered all data into the database manually before automating most of that.
- ✅ 95% text-based trackers to denser graphical trackers
- Purpose was to provide a better at-a-glance view
- Included switch from binary success/fail indication next to each goal to displaying percentages and circular progress trackers of each goal along with simple color gradings (see this image for reference of the before)
- ✅ Added additional trackers
- Mandarin Chinese vocabulary
- Singing practice session trackers
Last Updated: Mon Nov 28 2022