Inspiration

It is estimated that anywhere between 10% and 15% of all illnesses are misdiagnosed. In addition to this, some problems might not actually be discovered during a checkup if the patient doesn't remember or mention symptoms they've experienced over a long period of time. Formal health records don't help much to remedy these issues, as they don't contain things a patient hasn't told their doctor, and are often hard to access or learn much from at a glance.

What it does

MEDItrace is an app that allows people to log details of symptoms they've experienced, to help provide their doctors with as much information as possible so that they receive the most informed advice. Each time a symptom is logged, additional metadata is collected, such as the temperature, humidity and the user's heart rate. This extra data can be used by healthcare professionals to provide even more informed advice, as some symptoms could be related to certain external factors.

How we built it

For the frontend, we built a web app using React. On the backend, we have a few different technologies in use. For storing data and hosting our demo, we used Firebase because of its ease of use. For capturing the user's health data including their heart rate, food intake and water intake, we wrote a backend in Python using Flask to pull the data from the Fitbit API and push it to the Firebase store. We also built a separate Node.js backend to capture information about the user's range of motion in their limbs, which we prototyped capturing from either a Bosch sensor tag or Android device.

Challenges we ran into

  • We experienced issues with the IOT devices we were using, where they would keep disconnecting at random times. This turned out to be a dead battery, which we didn't realise after hours!
  • We found various issues with our frontend after testing on different devices with different screen sizes. This meant that we had to waste a lot of time fixing different problems as they came up.
  • We had some problems at the last minute where we couldn't deploy our app to Firebase. It turned out that we were using some npm packages that used ES6 exports, which caused some issues with our build. We manage to iron them out right before the deadline!

Accomplishments that we're proud of

We're proud to have built such a clean and functional UI in only 24 hours, while also managing to integrate capturing data from Fitbit, Bosch sensor tags, and Android devices all into a single app.

What we learned

One of the main things we learned was how to make a web app feel like a native mobile experience. This proved great for prototyping a mobile UI with many different screen, without needing to invest a lot of time using native frameworks. We also learned that it's very important to try and build a minimum viable product first before trying to implement lots of different features. We didn't end up doing this which meant we had to rush some core functionality at the last minute!

Share this project:

Updates