Inventory page where those who need medicine can browse the closest suppliers
Supply page where those with inventory can input their stock
The lack of essential medicines is a globally pressing challenge, particularly in developing countries. Out of personal experience, this problem leads to significant health deteriorations and in some cases even the loss of life. By facilitating the swift access to necessary medications in a regulated and secure environment, our service helps alleviate the health of patients and saves more lives each day.
What it does
Allows doctors, hospitals and pharmaceutical manufacturers to maintain communication about levels of the WHO's list of Essential Medicines. With these quantities better known, doctors can act with greater certainty and take advantage of other hospital's stockpiles. Communication between hospitals is a notoriously difficult task, so our backend will update the stock information of each stakeholder after a transaction, and those who need a certain medicine can simply check the inventory page of the medicine they need, and quickly order it. We will then process the order and facilitate shipping between A and B.
How we built it
Go is the backbone of the project, as it forms the entirety of the backend. This backend handles authentication with technologies such as bcrypt, and our own API that returns the data held in our MongoDB database. The HERE.com API was also used to measure the distance between the user and the hospitals in the database. Distance data is incredibly important for doctors to estimate the impact on their patient, and is sorted on the front end to provide the shortest distance front and center.
The React frontend needs to simply hit the end points to load the data onto the page. React allows for a fast response time when switching between medicines so doctors aren't forced to wait for slow load times. Tachyons, a CSS library, was also used throughout the site for rapid and good looking design.
Challenges we ran into
Walking into the challenge, we were shoehorned into using React based on the needs of the project and our experience as developers. I became a little worried halfway through the competition that we would not be able to route throughout the pages. Once I spoke to the fantastic mentors, Samy pointed me towards the React Router library. This library was a fantastic help in simple and efficient routing throughout the site, and allowed us to elegantly solve this challenge.
On the backend, parsing one item of JSON turned out to be a problem, as our "hacky" solution proved to cause problems down the line. Who knew that 100 lines of code to parse a JSON object would impact the server side?
Finally, sleep deprivation caused us some problems while connecting back and front end. A silly mistake concerning accessing a JSON element cost us two hours and much frustration.
Accomplishments that we're proud of
Our authentication system is entirely built from the ground up, and while there may be tools to do so, our authentication system is perfectly suited to our specific needs.
Additionally, the project is well designed and fits the theme of the project.
What we learned
Never go to bed at 6am when your server has a chance to blow up.
React Router is an amazing tool, and will be used heavily in future projects.
Don't underestimate self made APIs in both their power and unpredictability.
What's next for Medicine Without Borders
Estimate arrival info using HERE.com to provide doctors with even more information they can use to save lives.
Fully flesh out the delivery and ordering process.