Inspiration
After a team meeting, we realized we all shared a serious concern around medication safety. As a result, we decided to create a tool focused on overdose prevention by helping users track prescriptions, dosages, and intake. Medications are prescribed with specific doses for a reason, and our goal is to reduce the risk of accidental misuse and ensure safer adherence for everyone.
What it does
Our invention makes accidental overdosing much harder using many components. It allows doctors to create patients and assign medications with their corresponding dosages. It allows the users on the user side to track their doses, which update every time their pill bottle is opened.
How we built it
This project was made using Next.js to serve our full-stack application. The front is built using React.js and Tailwind CSS. The backend is built using Express.js. The hardware was coded in Embedded C with the Arduino core library in PlatformIO. We designed it this way as opposed to Next.js built in cross server functionality as to improve security, so if the front-end server is compromised (i.e., from a security vulnerability like React2Shell), medical data is still secured.
Challenges we ran into
We faced many challenges along the way, including incorporating Node.js with MongoDB and Arduino, getting clearance to bypass MongoDB's security restrictions (Thank you, Tim <3), Bluetooth signals not being identified, issues with live updating and integrating the web server.
Accomplishments that we're proud of
Through the above challenges, we persevered and succeeded in, using a web API to achieve a Bluetooth connection via the web, integrating backend (MongoDB) with frontend, learning MongoDB, setting up relations with outer-relational databases, creating relations without relational database, enforcing data rules where everything has to be server side JSON handling, updating the database dynamically, integrating Bluetooth low energy with a web API.
What we learned
Through this project, our team has gained invaluable knowledge.
- We learned how to create a full-stack application using Next.js.
- We learned how to use CSS frameworks like Tailwind along with the NoSQL MongoDB Atlas database.
- We learned how to use the web Bluetooth API to connect to BLE devices via a custom UUID.
This was the first time any of us transmitted data to a frontend process via a wireless connection.
What's next for The Pill Bottle
The first thing we would do is make a mobile app. This makes it more convenient for the user to see if they have taken their medication, as they can check anywhere (given they have WiFi) if they have taken their daily requirements, as opposed to having to boot up their laptop to check. Additionally, an app would allow for notifications so that users are reminded to take their medications. Possible apple health API integration could slow the app to interact with pre-existing medical data stored on the user's device. We would also replace the touch sensor with a circuit that detects when the pill bottle is off. We would add a weight sensor, so that the app only updates when the bottle opens, the weight decreases, and then it is closed again. Furthermore. We would also optimize our code base to make the GUI more user-friendly and aesthetically pleasing. Finally, we would optimize the backend and integrate web sockets.
Log in or sign up for Devpost to join the conversation.