Inspiration
Human compassion is the most effective means of moving people off of the street and into housing quickly. Technology should enable the solution, not be a hindrance.
What it does
Labre is an HMS designed to make it easy for agency employees to:
- Help clients find meaningful work. Similar to LaunchCode, we will work to initiate partnerships between caregiving organizations and partnering businesses to provide apprentice opportunities for clients. With these opportunities, the partnering business agrees to pay the employee for a period of time, and then evaluate whether the client is eligible for full time work.
- Secure emergency housing. Labre includes a reservation system that identifies the number of beds available at shelters and allows clients to reserve spots easily.
- Transfer clients to another facility with space available. If a client arrives at a shelter and no room is available, Labre displays other locations within a configurable distance that have beds available.
- View Key Performance Indicators to understand whether their agency is meeting goals
How we built it
We built a front end web application using AngularJS and integrated it into a separate Rest API. The separation of the API will allow it to be maintained separately from the UI and be used for other UI contexts (such as native mobile).
The Rest API is built using NodeJS with Express and MassiveJS with a PostgreSQL database backend. The API is deployed to Heroku and the Postgres database is deployed to Amazon's RDS.
Challenges we ran into
We built geolocation queries using the Postgres earthbox and earth distance plugins, which were new to us. At first, we were using ElephantSQL to host our database, but it did not provide us with access to install these plugins, so we switched to Amazon Web Services.
We ran into security challenges with the firewall settings on Amazon's RDS. By default, you cannot access an RDS database from Heroku, so we spent a few hours learning how to change those settings.
MassiveJS has some very useful features, but there are also times that it falls flat, specifically with the lack of support for mixed case JSON, and with sometimes interpreting number types as strings.
Accomplishments that we're proud of
We tried to attack all four of the key problems, and we think we have a great start. We are proud of pulling together a working system with an intuitive interface in just over 36 hours!
What we learned
This was our first time using PostgreSQL and MassiveJS. It was an interesting challenge, but overall it was a better decision to use than MongoDB, since we made heavy use of database views to handle complex data aggregation for the KPIs.
What's next for Labre
We have a lot of ideas. It would be great to add features to:
- Autogenerate tasks to follow up with clients when their status is unknown
- Feed KPI data into a history table to track these metrics over time
- Provide a public view that allows charitable donations to be sent to the agencies that are doing great work
Log in or sign up for Devpost to join the conversation.