When we saw that addressing the issues arising from natural disasters, an idea jumped immediately into our minds. We've all heard about the problems facing Puerto Rico after the hurricane - and we've heard plenty about how little help they got. That inspired us to make something that might enable us to act up against that sort of helplessness: a way to give us some way to help.

What it does

Samaritan operates on the basis that there are people out there who want to help, and that there are people out there who need help. The requesters put out requests for help - a request, a description of what they need help with, and time and a place, and a guess at the number of people needed for the task at hand. The volunteers see these requests in a feed based on time and location: they get a selection of the closer requests. Requesters could be those in direct need of help, or even those who organize help and know where it is needed. Volunteers would not be obligated to do anything, and thus protect themselves from being roped into unwilling situations.

How we built it

We used express.js (and pug and less) to create a rudimentary user interface. The central piece of this all is the database of requests stored using MongoDB Stitch, with a geospatial index used for all the searching. From there it was a matter of facilitating the creation and viewing of requests by users.

Challenges we ran into

A whole lot of this hackathon was a frustrating swim through API documentation. Figuring out how express.js worked, how pug worked, how to run a node.js project, what the difference was between MongoDB and MongoDB Stitch, etc. Still, with time, documentation, and tears, we made it through (mostly). Another thing that we had trouble was design: functionality may be important, but as far as we can tell a lot of presenting for a hackathon is making your app pretty - something we don't exactly have the skills nor time for.

Accomplishments that we're proud of

Our project might not be very glamorous, but looking at where we are and where we came from, we're really proud. So many concepts might seem simple, but working them all out under a time crunch was extremely satisfying. Learning how databases work with Mongo, learning how routing and web servers work with express.js, learning how Promises work in JavaScript; these things all challenged us, and we triumphed over them all.

What we learned

We learned that user authentication is very difficult, as is website styling. We learned that JavaScript has a nasty way of being exactly the type we don't want. We learned that the node.js environment has a whole ton of libraries that for some reason we need all of. Above all, we learned that it's not the programming part of these things that are the hard part. It's taking all the things that we don't understand and making them play nice together. It's about taking things that make our lives easier but more complicated and trying to use them to fix difficult things simply.

What's next for Samaritan

For all our pride and glory, it's obvious that Samaritan is not ready for any sort of use. We would want to build a legitimate user system, with the main page tailoring location around that user's reported location. Originally, we also wanted tags of a sort in response to true natural disasters that would aggregate all requests directly related to whatever catastrophe had happened.

Share this project: