This is an enterprise size problem, on scale with what the largest of corporations deal with. Each provider is akin to a department with its own particular needs and restrictions. The clients of these providers are the customers in this analogy, and customer satisfaction is measured in quality of life. We take the enterprise data and service model, and apply it to this distributed problem to serve each user group in the space.
What it does
Less Homelessness provides an easy way for the homeless population in and around St. Louis to find resources including, but not limited to, emergency shelter. Less Homelessness is centered around a centralized entry system, where the clients are empowered to participate in the intake process and opt-in to need-based services. This pairing of need data and the management of service availability, combined with a unified vulnerability index, provides case managers across the COC a method to make sure resources go where they are the most impactful.
For a person in need of assistance, it’s a gateway to get immediate help. For the caregiver, it’s a time-saving, centralized assistant to facilitate helping people out. For the cooperating entities, it’s a way to more efficiently contribute their services to solve the problem. And at the same time, the data it gathers effortlessly about the exact needs of its users, the provided services, and their outcomes, will prove invaluable in helping to prevent the problem.
How we built it
Less Homelessness was constructed with industry-standard best design practices. Built in the popular Facebook maintained ReactJS + Flux stack, Less Homelessness is a highly performant web application. The Spring Boot Java web services provide the immense power that Spring brings to the development game with the convenience of self-container configuration. A MySQL database provides reliable easily supported data management. The combination of open source technology, containerization, and cloud hosting provides a relatively cheap, license cost free, scalable system that isn't significantly tied to any one provider.
The production environment is a cloud hosted, scaleable, containerized system. All code is checked into one of two repos – one for the data and logic services (API) and one for the web application. The public repositories on GitHub are linked to Docker Hub, triggering docker image generation on all code check-ins to the master branch. Successful image creation triggers an automatic redeployment of the cloud server's containers.
Challenges we ran into
The main difficulty in designing and creating Less Homelessness was balancing new and creative features, yet remaining cost effective, and most importantly, useful to the wide potential user base. Many ideas fell short of one or more key criteria, such as “homeless AirBnB" to expand emergency shelter which was rejected by the experts due to liability issues. Instead, we focused on creating a strong, usable coordinated entry system, while adding ease-of-use features to make everyone’s life easier and leaving clear paths for growth as the system is used and areas of need are better understood and use cases evolve.
Accomplishments that we're proud of
1) A data driven map that shows the locations of helpful resources, such as shelters. 2) A messaging system that the homeless population can use to reserve beds and find shelters with open space. 3) A way to connect people in need with the actual services that they need the most, effectively helping to satisfy their needs while reducing overload by targeting what they need and by engaging resources and volunteers from local communities. 4) A platform closer to people in immediate need of assistance: approachable and useful for them, yet facilitating the work of the professionals trying to help them while gathering and synchronizing valuable data to efficiently manage and prevent the problem. 5) The pre-planned team found two resources who were planning to compete on their own, and offered to have them join us, collaborating and sharing knowledge in both directions. 6) We spent some time working with a team of more junior developers, providing a little technical support and hackathon planning, hopefully resulting in a great first (for most of them) hackathon experience and future attendance.
What we learned
When trying to evaluate the problem as either a person in need of assistance, or a caregiver trying to help, we realized how challenging both approaches could be, and the necessity of a good automated system that can correlate those points of view. As a team, we discovered a lot about the homeless population in and around St. Louis, how to spread awareness, and what it’s like to be living without a home. As software engineers, we all learned a wide variety of technical details.
What's next for Less Homelessness
Less Homelessness gains efficiency and usefulness as more service providers and caregivers join in. The more users join the program, the less time is spent fighting with different data formats and requesting access from other programs. Immediately, the map could be improved and refined to show more specific information on where to go and find help. Various improvements could also be made to the texting system once more people start to sign up and we see how it is being used. One of these improvements is using the geolocation provided by the Twilio API to locate the nearest shelter to the user. The source code for Less Homelessness is located at https://github.com/gh6-team/less-homelessness-client (Web Application) and https://github.com/gh6-team/less-homelessness-api (API)