A patient-centered web application designed to bridge the gap between complex pharmaceutical data and everyday users — making drug information accessible, clear, and actionable.
Patients are often discharged from hospitals with a list of medications and little understanding of what they do, how they interact, or what side effects to watch out for. RxInsight was built to address this gap — giving users a simple, trustworthy interface to look up their prescriptions and understand them in plain language.
The project combines a relational database of drugs, diseases, and known interactions with a clean web front-end so that non-technical users can get relevant information without needing a medical background.
The application is structured as a classic MVC Flask app. Users register and log in, which creates a session tied to their patient entry in the database. Once logged in, they can search the drug catalogue, view interaction warnings (colour-coded by severity level), and browse the list of conditions each drug is used to treat.
On the backend, Flask queries the MySQL database using parameterised queries to retrieve drug data, join it with interaction and side effect tables, and return the results to Jinja2 templates for rendering. All data lives in the normalised relational schema designed as part of the companion database project.
RxInsight was my first full-stack project end-to-end. Beyond the technical skills in Flask routing and MySQL schema design, I learned how to think about user experience for a non-technical audience — something especially important in health-adjacent applications where clarity can make a real difference.
I also got hands-on experience with the challenges of relational data modelling: designing junction tables, avoiding redundancy, and writing efficient JOIN queries for the interaction checker.