Inspiration

After hearing about the many issues with patient safety, we were inspired to create a medication tracker to help people understand their medication intake and what conflicts might arise with multiple medications.

What it does

This web application allows users to input a specific medication into their tracker and update information about how often they should take a dose and how many doses they have left. Then, the user has the option to count when they take their doses. Finally, they can use our built-in medication conflict tracker to assess if there are any issues with taking specific pairings of medications together.

How we built it

This is built using a Python Flask backend and a React.js frontend website. The backend includes a database for storing user data and two secure APIs. One of the APIs matches the user's input to a real medication to prevent accidental user error, while the other API checks conflicts between medication pairings.

Challenges we ran into

One of our APIs for checking medication conflicts is being rate-limited, which did not allow us to quickly and consistently check for medication conflicts during testing. There was no easy way to fix this, but we decided to at least notify the user of the rate limit when it occurs and to try again later. Additionally, we often had errors communicating between the backend and the frontend. This was fixed after a bit of trial and error, as we started to learn how to best utilize fetch requests for communicating with the backend.

Accomplishments that we're proud of

We are proud of how seamless our user log-in system is, it is easy to create a new user, log in again, and log out. Our website also changes some elements based on whether there is a logged-in user. For example, to hide features that someone not logged in could not access or to prompt a user to log in first. We are also proud of how our database is relatively secure, and getting the user medication and medication conflicts through APIs turned out well (aside from the rate limits outside of our control).

What we learned

We learned a lot about React, which we had not used at all before this. We also refreshed our memory on Python Flask and working with a SQL database. Finally, we learned just how hard CSS styling is on a webpage, and how tools like Bootstrap can make our life easier and improve the appearance of the site.

What's next for DoseWise

First, we hope to continue polishing different aspects of the website. We want to give more depth to medication tracking, such as notifying a user when to take their medication and allowing the user to input specific dates and times for doses (instead of just intervals). We also want to transition to using a more reliable medication conflicts API, as its rate limit is very inconvenient and may prevent a user from getting the safety information that they need. Finally, we want to continue improving the website visually, which includes making it more mobile-compatible and then deploying it to the web.

Share this project:

Updates