Introduction

As we are coming towards the end of another year, I’ve been reflecting on some of the goals that I set myself at the start of the year. As with all of us, I had completed some, partially achieved others and failed a few. This is only natural. Too often do we look at the start of journeys and allow our imaginations to run wild with what possibilities could fall onto us. In comparison to others, I feel as if I have achieved enough to be satisfied with a somewhat slow year, but one failed goal has really stuck out for me.

I had initially wanted to be more active on my GitHub account. I’ve been spending the best part of the year looking for a graduate job both in the UK and in New Zealand, so I wanted to ensure that between waiting for responses and reading rejection emails, I was working on my development skills. In the earlier part of this year, I was working on my web development skills and trying to learn Node.js. Initially,  I was committing to GitHub quite regularly (See image below), but after a while and some interruptions (two trips to New Zealand), my activity had died down again.

Looking back, I’m quite frustrated at myself for not committing to this goal (No pun intended), but I knew what the problem was. I was learning different things at the same time and building small projects around those concepts. This meant I wasn’t attached to any of the projects or was I motivated to keep on committing to GitHub. In hindsight, It was a pretty bad attitude to have. But there is a simple solution for this. Create a big project that allows you to learn different things within a field and then build a solution with all those moving parts.

Enter the project

Over the past year, I have been using my Fitbit Blaze device to track my exercise and sleeping habits. Data generated by Fitbit devices can be easily accessed through users dashboards and exported to them either in xslx or csv format. Recently, I’ve been using DataCamp to learn how to use Python for Data Analysis. I’ve been wanting to learn python for some time and since I’m heading into a Data Analytics role next year, I saw this as a good opportunity to learn something useful and then apply it to a project that I can use to keep on top of my skillset.

‘MyData’ health project will be a encompassing solution that enables me to gain insights into my Fitbit data and then communicate those insights to the world. The project will contain several parts as follows:

  • Data Analytics: This part currently has me extracting the raw data from my Fitbit profile, doing some basic transformation work within Excel (data conversion, add new columns etc.) and then applying my knowledge of python to run some analysis on the data using Jupyter notebooks. This really helps me work with different data sources and apply the knowledge gained through DataCamp to an actual case. I’m making up the interest questions as I find out more about my data. Hopefully, this part of the project will also give me a chance to work on my understanding of statistics.
  • Data Visualization:  This part will see me using the data extracted from Fitbit and then creating visualizations with Power BI. I may change to Tableau in time, but at the moment Power BI is a tool that I’m really keen on using. Unfortunately at the moment, I’m using the Desktop version. This doesn’t have all the features I would like, but at this stage of the project that doesn’t matter.
  • Data Presentation: This part will see me communicating the insights that I gain from my data and presenting that through a simple website. Since I’ve been learning Node.js at the start of the year and I think it’s a good idea to keep on top of my JavaScript skills, I’ll build the web application using that. In the future, I hope to embed a bot within the website so users can interact with the data themselves. I’m not sure how I’ll do this, but it’ll be interesting to see as the project evolves.

A big inspiration for this project was the ‘Data of Me’ project created by Microsoft’s Chief Technical Evangelist for APAC Nigel Parker (My former boss). He’s used a Garmin device and had over four years of data to work with. It’s a great project with lots of cool parts which I recommend you check out. There’s some really cool things that he’s using such as Azure Cosmos DB, Azure ML, LUIS.ai etc. Some of these things I plan on incorporating into my project. It depends on how it evolves.

As part of this project, I’m planning to keep a DevLog or Developer Diary just to stay accountable to the project. Nigel has presented this project at various conferences, and that seems like a good goal to have to help me stay committed to the project. Right now, it’s a small project with some basic analysis being done on a small data set. But I’m hoping to expand to different devices and different ways to interact with the data to build a more comprehensive health platform for myself. In my dissertation, I talked about the need for different devices to work together within the same framework to ensure a comprehensive health profile and even though that work focused on elderly patient healthcare, it seems like this project could have the potential to be the next stage in that work.

Conclusion 

If you’re interested in the project, please feel free to check out the github repository for it. I’m passionate about getting fitter and learning new things, so this seems like a good chance to apply those passions towards my continued desire to be more active on GitHub. If you also have struggled to stay active on GitHub, I’d love to hear your thoughts and hear what tips you had for keeping active on there! Also, if you’re working on a similar project, maybe used different technologies than those mentioned here and think I should check them out, I’d love to hear about that too! Keep in mind that I’ll be keeping a DevLog on the project on my blog, so if you want to hear how the project is going check it out!

Till next time!