Inspiration

One of our friends does not have health insurance. She did not get any annual checkups and would often get dizzy and tired but had no idea what was happening. After three years of convincing, she went to the doctor and was diagnosed with an autoimmune disease.

We were thinking about how much better those three years would have been for her if she had an affordable and accessible way to gauge what was going on. That gave us the idea to create Safety Net: a platform to help our users understand what they might be experiencing. Our goal was to help users understand whether professional consultation is advisable in their situation.

What it does

Safety Net is a web application developed in response to the growing need for healthcare in a society lacking affordable access to it or simply a reluctance to visit a doctor.

Safety Net provides you with the most likely conditions based on the symptoms you provide, along with a list of specialists in your area to treat those conditions.

How we built it

The first thing we realised was that ML models excel at these kinds of predictive classification problems. Since we were already familiar with the basic architecture, we set out to find a dataset to train our model on, eventually deciding on one from Kaggle. Then, we built an MLP trained on that data.

Thereafter, we focused on building the website where the model implementation would take place. Since neither of us was familiar with advanced front-end development, we decided to use Streamlit for building our website. It was a bit of a struggle to implement Streamlit functions as we were both used to the lack of restrictions in languages like C and Java. Since the goal of Streamlit is to be easy to implement, the restrictions on User Interface customisation were a bit of a challenge.

Upon realising how much users value convenience, we decided to implement the Google Places API to help users receive information on specialists near them (in a table and on a map) for them to use if they decide a doctor's visit is required.

Challenges we ran into

One of the first challenges we faced was getting our model to perform better. Initially, our model seemed to be performing well, with 91% accuracy. Yet, on a further look, we discovered the model was overfitting to our training data. We took steps to address this including adjusting the learning rate, basic feature engineering, and adding layers like dropout to prevent overfitting. Through these steps, we managed to prevent our model from overfitting, which reduced our training accuracy to 88% but increased our testing accuracy to 87%.

A challenge we took a while to overcome concerned the deployment of our app. While the app was successfully deployed, and the model predicts conditions with the features you give it, there seemed to be a bug with the API to procure specialists near the user. It seems to return no results whenever the API is queried from the deployed webpage while returning correct results when queried from the locally run webpage. After trying a few things out, we realised there was a problem with the format of the location that Google handled locally but not when deployed. After changing the format, the location features worked successfully.

Accomplishments that we're proud of

There are many things we were able to accomplish that we are proud of. Firstly, getting our model to the current accuracy took a bunch of toggling and experimenting with different settings. Thus, optimising it took research, time, and dedication, and we are happy with how it turned out.

Additionally, figuring out how to create a user interface that is both appealing and suitable for the platform's goal through Streamlit's limited customisation features required coming up with alternatives to original UI plans and relearning HTML to use CSS and markdowns.

Finally, neither of us had any experience with API implementation. It required research to learn about the workings of APIs and how integrating one to suit our specific purpose would work. This is now a skill we can implement in future projects and an accomplishment we are very proud of.

What we learned

APIs were quite new to both of us. We were familiar with the theoretical side of API functionality, but we had never implemented one in a project. Thus, learning how to query an API and understand its responses was a great learning opportunity that also helped enhance our project.

In addition, through learning the intricacies of Streamlit, including customisation through HTML and CSS, we got a strong introduction to front-end development.

What's next for SafetyNet

We at Safety Net hope to increase the model accuracy and possibly add a feature where the user can click on the specialist name to open directions on a Google maps platform or open up a booking page for that doctor.

Built With

Share this project:

Updates