Coming from a background of volunteer work in donation distribution, correctly allocating supplies to women's and children's shelters can become difficult. To address this problem, Supply Flow was created to accurately output product need.

What it does

Based on the location, inventory, and desired shipment distance of a volunteer location, the C# program outputs its top organization recommendation and the number of products needed. This is done through a mathematical model of an organization's relative importance, and whether or not the Haversine distance between the two locations meets the desired distance travelled requirement. (Organization objects are created reading a database.) Importance as a value is sorted and used to determine how much a volunteer's inventory is to be shipped to each location.

On the web development side, "" aims to present the above in an understandable and user-friendly manner. Organizations can update their information and volunteers can input the product type, donations received, postal code, and desired radius of shipment (aka the factors that are inputted as the dependent factor).

How I built it

Through the successful implementation of the agile design process, the problem space and proposed solution were generated, executed, and tested. Both a functional and user-interface component of Supply Flow was built. The backend aspect is object-oriented and uses inputted parameters to determine an optimal recommendation. In the frontend portion, HTML, CSS, and JavaScript with Node.js make up the display of information.

Challenges I ran into

Having only experience with object oriented languages, learning web development on the troubleshooting and using it proved to be difficult. As a result, we did not have time to implement a Google Locations API to convert postal code into latitude and longitude, fulling connecting the two portions.

Furthermore, since we couldn't add the API, we needed to find distance manually, aka with the Haversine equation. There were so many variables and confusing to navigate. In the end, we found an existing section of code online and used that.

Accomplishments that I'm proud of

Despite the limited knowledge that we came in with, we're very happy that we ended these 24 hours with a mostly functioning product. If further developed conceptually and improved, we believe that Supply Flow can optimize supply chain distribution in all industries and especially help with volunteer-shelter relationships.

On a personal level, we are proud to have come in with an open mind and actually learned a lot about web development, APIs, and GitHub.

What I learned

First of all, we improved our programming skills. Some of us learned a whole new language to work with, while the rest of us solidified our ability to polish and present a functioning model in C#. Through this project, we gained knowledge on how to effectively apply available technologies and connect various types of programming together to create a partially functioning model. Learning about the definitions and applications of APIs was definitely overwhelming to us, but we found ourselves wondering about how to use these new skills quickly. We were also introduced to many concepts such as webpage linking and learned to effectively used Stack Overflow in our quest to successfully compile our code, and started a GitHub depository to upload our code to.

Additionally, as we were beginner programmers who had little experience with the whole process of narrowing down the topic and creating a solution, we learned a lot in terms of building the project and setting goals. We learned to work through problems in a collaborative way and learned that problem-solving is a lot easier when everyone is engaged and focused on a common goal.

What's next for SupplyFlow

The next biggest goal for us is to link the front-end webpage and the back-end implementation so that the website's input would be reflected in the output of the calculations. This would allow the webpage to be minimally functioning so that we can expand and improve on this basis.

Furthermore, we want to use a Google Geo-Coding API to convert postal codes to coordinates in order to be calculated effectively, most likely in JavaScript. We were unable to do this because of a lack of skill with usage of APIs, and we hope to learn to implement it in further steps.

As an additional next step, we want to improve the efficiency and the accuracy of the code. We know that there are likely a lot of redundant steps in our current code and would like to clean it up.

To further expand the usability of our website, we want to eventually create a database that stores items individually in addition to the organizations. This way, the users of the website can specify what they need and use the website more effectively.

These are just some of the next steps that we may take with this project. Being an ambitious team, we even want to implement notifications and automatic inventory machinery to make the donation process entirely automated. There is a ton of room for improvement with our project, and we are excited to present our idea to hopefully make a positive impact in the community for people in need.

Share this project: