CATCH is a non-profit organization in the Treasure Valley whose sole purpose is to find housing options for families experiencing hardships during a housing crisis. CATCH works with local businesses, congregations, and government to receive donations to make their goals a possibility. With the data CATCH has already gathered over the last 10 years, they would like to be able to come up with a system to provide more in-depth analysis of the data they have collected. This analysis will primarily be focused on understanding which constituencies are being represented, ensuring this is equal across all categories, and making program changes based on the feedback received from the analysis.
Since CATCH is mostly concerned with the categories of constituencies they are serving, the data will need to be analyzed and categorized to provide what categories are being underserved. The results of the analysis will be critical in the development of their services, so the information will need to be presented in a manner that is clear and concise. Additionally, to get the data to a point in which we can even examine it we need to ensure we clean all the data to ensure missing, mistyped, or corrupted data can also be examined.
Our solution to this project was to design a script capable of ingesting excel files as this was how the data was provided to us. Then the user would run the script specifying the location of the excel file on the Operating System. Once started the script would then proceed to run through a series of steps outlined below. Once completed the user would then be able to manually create a PDF report containing various graphs and charts depicting a variety views of the data provided. This report would then be able to outline and show which groups of constituencies are being over or underserved. This would then allow CATCH to make any adjustments needed such that all constituents are served equally across the board. Unfortanlty the PDF report creation wasn't something we have been able to achieve yet, however we believe that this would be a great feature to add in the future.
To help make the delivery of this application as smooth as possible we created a windows installation program that installs the various dependencies needed by our python script. Once the application is installed the user will have a shortcut they can double click which will execute our python script. Once started the user will be prompted to specify an excel file for the python script to use. From there it will follow the processes listed above and the user will be able to find the generated items under a newly created CATCH Data folder located under the users Documents directory.
Below is a step by step process of our application being installed.
Fig(1): The MIT License Agreement located in our GitHub repo.
Fig(2): Destination folder to install the application and all of it's
dependencies.
Fig(3): Folder for all output generated by the application.
Fig(4): Adds a shortcut to the desktop.
Fig(5): Installation phase of the application.
Fig(6): Installation complete and initial launch of the application.
Fig(7): Add and Remove Programs
Once installed the application can be ran as many times as desired. Each time it is ran the user will need to specify the excel sheet to use. All data generated will be put into a timestamped folder located under the folder selected in Fig(3). While the application is running generated graphics/visuals that are added to the timestamped folder are printed to the console to indicate the progress of the application. Once complete the application will terminate and the user can view the generated graphics/visuals that were produced from the excel file supplied. Note that after the pre-processing and scrubbing steps are completed a csv of the data is also saved to this folder for reference.
In addition to the screenshots provided above, we also created a short video to demonstrate all of the processes describe above. Througout the project our goal was to make running this program as simple as possible for our sponsors and CATCH if they do decide to pass it on to them. The video below demonstrates not only the installation process, which should be similar to any typical Windows installation, it also takes the time to demonstrate how to run our application.