As college students in a new town, we realized just how hard and intimidating it is to make doctors and dentist appointments. You really have no guidelines on where to go, what to look for, and -- most importantly -- who accepts your insurance. We wanted to make a web app that's easy and pleasant to use in order to schedule appointments with health care providers, without being put on hold.

There are so many people who have trouble accessing health care and because of this, their well-being takes a backseat. We want everyone to have the resources they need to find the health care provider that's perfect for them. Every time. Cheers to good health!

What it does

The app allows a patient to securely register their location and insurance information to expedite check-in. They can search based on services and specializations of health providers to find the right provider for their needs. Once they find a provider they like, they tell us a little about what schedule works for them and we'll do the rest.

Since we give provider recommendations dependent on the patient's insurance, there's no need to worry about shocking prices or surprise charges. We know that life can get busy, so we also take care of recurring appointments so you'll never forget your routine check-up. When the time comes, we remind you by text and create a Google Calendar event just so you can easily plan ahead.

How we built it

We built this app using a bunch of different technologies. During the opening ceremony, there's was a consistent theme of learning which we set out to do in spades. We have two apps communicating with each other: one that handles the front-end and back-end for the patient and one that simulates the back-end for the physician's office. Our front-end is made using Ruby on Rails with a fully functional back-end written using Postgres, Geocoder API, Google Maps API, and Devise Authentication. We had our team's designer make a workflow and designs for the front-end which we implemented with her help.

We implemented the physician's side using Sinatra. This part of the app had the purpose of simulating receiving incoming requests from patients and relaying approvals to those patients with a robot caller using the Tropo API provided by Cisco. Our robot caller asks patients to confirm an appointment time and we subsequently send them a text message confirming their appointment using Tropo and set a reminder to their calendar using Google Calendar API.

Challenges we ran into

A big challenge to writing two apps that need to communicate with each other is what stands in the middle in order to facilitate communication. We ended up using Amazon's SNS and SQS services in order to create a fault tolerant method of communication between the two apps. The Rails front-end queues up notifications into SNS and the Sinatra back-end polls for messages on SQS which it then handles. This architecture would be scalable to an actual solution with many physician's offices connected to our front-end; this also allows for an app to crash or fail and the messages will not be lost, we handle them when the app is back up again.

Accomplishments that we're proud of

There's many things that we're proud of with this project. We were able to use so much knowledge and expertise from our team to build something (we think) is truly special. Even though we used so many APIs, they all work together quite seamlessly and we have a workflow that clearly demonstrates our idea and where we can head in the future.

What we learned

Never give up! Engineers need designers!

What's next for Salud

Some other ideas we thought of implementing in the future are ratings, reviews, and a central data store. Making the code cleaner is also on the agenda. :-)

Share this project: