Inspiration
The opioid epidemic in the United States has become a national crisis. This has lead to the President declaring a state of emergency in order to combat the epidemic, but no real plan has formed in order to achieve this goal. The idea behind this was to offer the people who are trying to quit and stay away a way to get in touch with sponsors so that they have a better chance of recovery.
What it does
This app allows sponsors to register to be put in a queue for people seeking help. The people seeking help call a number and are linked anonymously to a sponsor so they can talk to them without the fear of having their personal information revealed.
How I built it
Through the course of building the idea came about allowing people to only need to know a phone number in order to get into contact with a sponsor when they are on the verge of using again. I ended up using a python hackathon starter that Twilio had put on github and followed their instructions on how to set it up to allow for multiple users and pipelines. The front end is a simple react app that connects with firebase for auth and storage of the user object. The rest of the logic is inside Twilio which handles the queue delegation as well as routing to the appropriate people.
Challenges I ran into
Twilio did not want to work out of the box with the python starter server and required building their pip library from source. Doing this ended up breaking our original idea to use VOIP and an android app as the server was no longer able to produce JWT's that were needed to authticate the android with the server. Another major challenge was string encoding as the Spanish inside of the app was not originally in ASCII, but Unicode, causing issues with run time casting of items to strings. Additionaly, a problem that I ran into was getting the python server and the react frontend to talk and play nice as creating the user requires several a sync calls in order to pass information around as objects are created in the various databases.
Accomplishments that I'm proud of
The thing I am most proud of is it being able to allow multiple users to connect with a variety of sponsors very easily. This app is exactly what it should be, a very low entry barrier for both the end user and the sponsors. The user is only required to know the phone number that is associated with the Twilio account and the sponsor is only required to enter an email, password and phone number, then validate the phone number. This low barrier is what makes the app
What I learned
That python is still the most powerful and easy to use language there is and that react is super simple and easy to make behave. I also learned that redux is a bit harder to work with as far as state management goes, but it did work for what I was trying to do. I also learned how to use Twilio from the ground up and that it is more powerful than I had orignally though, though the documentation is slightly lacking.
What's next for Help When You Need It
The next step is to create a more robust server that can handle different types of addictions and allow sponsors to sign up for different vices and create pipelines for the users to access them. The other thing to do is to create a custom server and allow access from anywhere. Another thing will be to create a more user friendly front end in order to allow users easier access to different parts of the app. The last major improvement I would like to see would be aggregated statistics run on the Twilio server and be able to see how the app is being used.
Log in or sign up for Devpost to join the conversation.