Inspiration

Most people don't like using prescription managers as it is tedious to manually input the medications into them. In addition, they do not add significant functionality apart from reminding users to take their medications at specified times. Thus, their effectiveness is not ideal. However, EasyMed solves both these problems by making it easy to add data about medications and adding a progress-based game to incentivize users.

What it does

EasyMed is more effective than other apps with the same purpose because of its ease of use and enjoyable features. To add medications to the app, all users have to do is upload an image of their prescription. In addition, users will actually want to take their medications as their virtual pet will then progress in the app's game. The app's home page can tell you info about the medications you've taken for the current week at a glance. Lastly, EasyMed also generates a visual report to summarize your past progress and illustrate potential concerns.

How we built it

For our backend we use Flask, Python and SQL. For our frontend, we created a mobile app using React Native and Expo. We deployed the Flask server to Heroku to turn it into anAPI, and the React Native mobile app can use it to send and receive data. We used an ML API to extract the text from the user's image, Javascript for the game, and Matplotlib for the graphs.

Challenges we ran into

We struggled the most with syncing our backend and frontend. Since Python/Flask is web based and React Native is mobile app based, connecting them was very difficult. There were many issues that came up with compatibility that we had to solve. We also struggled with extracting usable data from the ML-generated text as the formats of prescriptions vary widely. We had to look at a large sample size of prescriptions and make an algorithm that works for all of them.

Accomplishments that we're proud of

We are most proud of making our backend work with the frontend. Even after figuring out how to use the Flask server as an API, there was a constant stream of compatibility issues, such as the format of data and requests. However, by pooling our expertise, we were able to solve all of the issues that came up.

What we learned

We learned an immense amount of skills and technologies as none of us previously knew how to connect a Flask backend to a React Native frontend. We were forced to constantly solve the problems with compatibility and gained a lot as a result. We also realized how important it is to rely on your teammates for help, as they have different skillsets and can solve each other's problems.

What's next for EasyMed

We plan to make the game more customizable by adding more options to choose from for the virtual pet and also adding features such as a 'happiness meter' to gauge and aim to improve the pet's mood. In addition, we hope to improve our algorithm to extract usable data from the ML-generated text so that it can also get timings for the prescriptions. We could make potential schedules for the user based on their daily activities and the general timings in the prescription to save them time and effort.

Share this project:

Updates