Track: Health & Wellness

Inspiration

We were inspired to look into a way to mitigate harmful drug-drug interactions after looking at the horrifying statistics concerning their prevalence in America. Of course, every death is tragic, but preventable ones are especially so. Overall, 7,000-9,000 Americans annually die from medication errors, and smaller samples have found that as many as 90% of those deaths are from adverse drug-drug interactions (Tariq et al; Montané et al). Given the recent pandemic, we also believed that a health issue that wasn’t related to diseases may be underanalyzed. Indeed, looking at the statistics, a recent study by the University of Liverpool found that adverse drug reactions have grown from 6.5% of hospital admissions to 16.5% in recent years.

What it does

SafeMeds is an all-in-one tool that provides users with information about the drug-drug interactions related to their medicines. Specifically, using data from tens of thousands of drugs from trusted sources like the NIH, we provide a centralized source of info for average users to check that drugs they are taking have no conflicts.

How we built it

We’ve built a full stack integrated platform using a plethora of software tools. The frontend is built using Next.js’s React frontend with a Chakra UI framework. The backend is implemented using serverless Next.js functions and boasts of server-side rendering and a performant caching and query system powered by CockroachDB. Our workflow also involved using Auth0 for our authentication and Vercel for deployment. Our product management lifecycle involved everyone making pull requests and working on their own features in branches which were then used to make pull requests on our main repository. All of this was done on GitHub. Apart from technology there was a lot of brainstorming, whiteboard diagrams and team discussions!

Challenges we ran into

This was most of our team’s first hackathon; we were mostly unfamiliar with the skills required to rapidly develop an app in a fast-paced collaborative environment. We had to quickly learn many of these skills. We had to learn how to evenly split up tasks between members with different skills, teach each other what we learned, and work under the increasing levels of stress from time pressure and exhaustion. We also learned technical skills: how to use git for version control in a team setting, working with a complex medical API, and setting up Google OAuth.

Accomplishments that we're proud of

Arvindh: I think my most impressive contribution was the autocomplete for drug names. This was my first experience with Chakra UI and TypeScript, so making a functioning component of the app that looked pretty good and writing the corresponding backend functions was a big deal to me. I also learned a lot about the RxNorm terminology within the National Library of Medicine while reading through API documentation. I’m glad that Arnav, Hadi, Aaron, and Eric were around for me to bounce ideas off of and learn from!

Eric: I’m really proud of being able to keep up during this hackathon! This was my first time working with most of the tools in our tech stack (Node.js, TypeScript, React, etc.), and I was surprised by how much I was able to learn, eventually contributing code to our backend api query system. However, I think I contributed most significantly outside of the codebase, leading the team during ideation and contributing to UI design.

Arnav: I was most proud of the styling. I have a decent amount of experience with back-end development, and so I feel very comfortable with the scientific and logical thinking needed for doing that part of the web app. But I’ve never really done much design stuff historically, so I decided to really lean into that this time along. We tried to make a minimalistic, intuitive design, and I really feel like we’ve managed to do that.

Aaron: I’m proud of my contribution to the frontend of the application including the form and UI design. This was the first hackathon that I participated in and seeing the things that I learned from my personal projects translate into the skills necessary for this project was exciting. I learned how to use Chakra UI, TypeScript, and ESLint. I also learned how to ignore ESLint’s errors. Although I did not work on the backend of the application aside from reviewing Arvindh’s API implementation, I feel that I got a lot of exposure to the tech stack that may come in useful for my future projects.

Hadi: Hands down, the CockroachDB database I built! Learning from the free SQL classes offered at the Colab at Duke, I was able to build a fully functioning CRUD database and a REST API to go along with it. This was also my first time working as a group, and I feel like I did a really good job of abstracting away features I finished so that they were easily usable by the other developers.

What we learned

Throughout HackDuke, we grew as programmers, collaborators, and people. As programmers, we gained familiarity with industry-standard tools like CockroachDB, Auth0, React, and NextJS and how they can work together to create functioning applications. As collaborators, we learned about how to work in a team under a serious time crunch with a large difference in skill levels, building important expertise for future projects and careers. And, as people, we didn’t just end HackDuke as a team — we ended it as a group of friends! We’re always going to remember Aaron bringing an absurd amount of snacks, Arnav staying up until 5 AM working on the database functionality, Arvindh being way too energetic after drinking one-too-many Monsters, Eric getting philosophical about how the lights in the Colab’s room can modify their brightness, and Hadi spending two hours fixing one typo that crashed the build.

What's next for SafeMeds

Moving into the future, we’d like to expand the app to make it even more of a one-stop-shop for consumers. Time permitting, we would also add push notifications for reminders about prescription refills and pill timings. Long-term ideas include a system where users can anonymously rate how well the medicines worked for them (and similarly a recommendation system where users can see what medicines worked for people with similar prescriptions), applying machine learning to detect patterns within the medicines that had the most positive feedback, and allowing the interface to also support interactions from the doctor/hospital side.

Built With

Share this project:

Updates