LINK: https://fosterwhere.onrender.com/
This is an open-source application created as an aid for nonprofits, childcare agencies, and fostercare agencies to visualize and optimize their employees' caseloads. Managers can import an excel file and see how far their employees have to travel to meet all of their clients.
FosterWhere utilizes graph processing and optimization heuristics to generate efficient configurations of employees to family caseloads. Many of the algorithms rely on pairwise swapping between employees to reduce overall commute mean and standard deviation to produce both lower overall and more equitable commute times between the employees.
When a user drops a valid excel file, the FosterWhere server will make a call to the Google Geocoding API to translate all addresses to latitude/longitude coordinates. Then, it will call the Google Directions API to get distances between all employees and all clients, seen below as the "weights" on each graph edge.
The server will then send back a JSON object with all possible edges between each employee and client. The front-end then constructs a graph data structure from this object, and then uses the optimization heuristics to find the most optimal graph configuration it can find. Finally, the result is shown through a Google Maps API window with each employee and client color-coded by group for the user's convenience. From there, the user can select another optimization heuristic or manually re-arrange them to their liking.
- Now features several different transportation modes: driving, transit, bicycling, walking.
- Ability to include unassigned clients to find their best fit
- Drag n' Drop Excel Files
- Default groupings now available to visualize current worker/client configuration
- Basic documentation on homepage
- Some error handling for bad server responses/bad input on the front end.
- If Google API responds with a "transportation mode not available for region", show user on error page.
- Cache all graphs so the app doesn't have to generate them each time a user clicks a new algorithm button.
- Easy Local Start-Up
- run
npm run start:devcommand - go to development port 8000
- You will have to create a
.envfile in the root directory with your own Google API Keys. You need to generate two: one each for the Google Geocoding API and Google Directions API. Additionally, you may have to change the Google Maps API key on the client. Please remember that you are responsible for your API keys, protect them with quotas and restrictions!
Node.js, Express, React, Heroku, and Google APIs.


