Inspiration

"Feed a fish a man and he shall eat forever" (or something like that).

Homelessness is an endless cycle of poverty - and at the root of that cycle stands education. Many people are not taught practical skills, leading to a life with little pay and little contribution, whether it is caused by lack of funding or lack of opportunity. We aim to fix that.

What it does

We built a modular book box that can be built anywhere in the city. The box incorporates IoT technology to automatically check in and check out books with just a flash of the cover on the camera, allowing the books to be easily tracked by Homelessn't. The boxes also contain entry level job opportunities for people who have completed certain workshops or books and are ready to start contributing to their trade.

Beyond the box, the website also incorporates local volunteering opportunities for anyone in the city of Dallas to help out with, including practical skill workshops and food banks. Homelessn't admins can easily add new volunteering opportunities that can be joined by volunteers at the click of a button, and the site will automatically email reminders to the volunteers.

How we built it

The boxes were built with supplies from Home Depot and confetti off of the walls of HackDFW (thanks guys). One of the biggest advantages to this system is the ease of building the boxes - it took us just under an hour on our first try.

When determining where to place the book boxes, we used the City of Dallas's data set with a K-means clustering algorithm to find the optimal box locations to reach the largest number of people for maximum impact. After the initial placements, more boxes can be added to fit demand.

The volunteering website is built on NodeJS with MongoDB. Volunteering opportunities are added to user records when a user joins an event, updating the volunteer counter of the event.

On the book box website, we use NodeJS again for the back end that the client connects to. The video is built with WebRTC, and an image is captured and sent back to the server using the canvas to pull out png data. This image is then sent to a Python API built with Flask and Tesseract that classifies the image of the book cover to facilitate checking books in and out.

On the both client sides, we use VueJS to create reactive components and Handlebars for simple server side rendering.

We use OmniSci's product to visualize a heat map of homeless-related crime and homeless population, allowing for higher impact placements of book boxes through data driven decisions.

Challenges we ran into

We ran into trouble visualizing and embedding OmniSci's map into our app, but finally got around the issue with help from the developers at OmniSci. This allowed us to display the heat map of Dallas homeless data with the locations of book boxes layered over it in a coherent manner.

Accomplishments that we're proud of

We're proud of our use of machine learning and big data to create higher impact choices within our app. The classification algorithm significantly improves convenience and tracking of books to see when books are checked out and in and are possibly lost.

We're also proud of building something that can start having an impact tomorrow - the app and box are production ready, and could help people everywhere learn new skills to get back on their feet.

What we learned

We learned how to use WebRTC to capture video and images from media devices and send it back to a server where it can be processed with machine learning techniques.

What's next for Homelessn't

A simple feature to add could be tracking volunteer hours of our volunteers. This could be used to track court mandated volunteering, helping out in justice areas as well as helping get people back on their feet.

Another feature we would like to see built on our box is a more secure system of checking books in and out to prevent theft and vandalism. Currently, the video stream should be enough to deter crime and provide evidence in the case that a crime occurs, but we would still like to see a better crime prevention method.