Technical Details
Backend: We developed a python flask application for the backend. Postgres was used as the SQL database and the application was served using virtual machines on the Google Cloud Platform. For Optical Character Recognition, we experimented with multiple APIs like OCR Space, Microsoft vision API etc and used the Google Cloud Vision API in the final version owing to its fast and robust performance.
Frontend: A React Native application was developed, which generated an application compatible with both Android and IOS. Expo SDK allowed us to make small changes and iterate quickly, ensuring fast development of the front-end.
What it does
The InteRax project is a mobile application that allows a user to maintain a list of their currently active medications/prescriptions whilst offering features for ensuring and validating drug-drug interactions among the inputted medications. The process to input such information can be done in one of two ways. The first, allows the user to directly launch an in-app camera function which takes photos of any prescription or over the counter medication which automatically identifies the name and dosage of the Drug. The second, is a prompt in which the user may submit the information through text. The medications are stored for the user to view alongside the information regarding any interactions that may have been found. Additionally, the app offers a scheduling feature that allows the user to visualize the drugs that they have to take at a certain meal.
Challenges We Ran Into
GCP/Deployment: Getting Flask running locally was straightforward for development purposes; however our lack of experience with production-level deployments on GCP showed as we faced some challenges ensuring our web server worked with our front app application. Fixing these involved: changing firewall rules for incoming traffic on the VPC, setting up gunicorn (a WSGI) to listen to incoming connections and serve them to the Flask web server, and setting up a postgres instance on the cloud instance.
Front end: We required a phone app to cater to our use-case, so we went ahead with React-Native to ensure compatibility with both Android and iOS. We were especially dumbfounded by a bug that only occurs in Android but not iOS, which took up a lot of our time. This is still an open issue on Expo.[] Despite none of our team members being particularly well-versed in Front-End app development, we managed to put together a working app.
OCR text recognition: The first challenge we faced was ensuring that the third-party API works robustly with a wide range of images a user uploads. The OCR output had to be pattern matched to identify relevant drug information.
Working with sensitive user prescription information: Since we were working with sensitive user data, we had to ensure we don’t store anything potentially sensitive. This meant storing some data on-device, stripping all PII (personal identifiable information).
Accomplishments that we're proud of
- Writing front-end and back-end code and deploying it on the cloud in < 24 hours.
- Brainstorming and implementing an idea that can help people navigate prescription drugs safely.
- Literally learning React-Native overnight.
- Coming up with a cool name and logo!
What’s next
- UI/UX Improvements
- Currently, we provide layman descriptions for only a limited number of drug interactions. These could be extended to more interaction types.
- Extend drug-drug interactions to also check for food-drug interactions.
- Improve scheduling for drugs.
- If we encrypt data as per regulatory requirements, we could store some additional data points safely, allowing the user to access this information across devices.
Built With
- drugbank
- expo.io
- flask
- gcp
- javascript
- postgresql
- python
- react-native
- restful

Log in or sign up for Devpost to join the conversation.