We've been to many hackathons, but none are quite as rewarding as Opportunity Hack. The prospect of spending a weekend working hard, eating well, honing our technical skills, and at the same time giving back to the community in a meaningful way just by doing what we love is incredible. This is our second year participating in the Arizona PayPal Opportunity Hack, and also our second time working with Matthew's Crossing Food Bank. Once again, they've sweetened the deal by coming to the table with a well-defined problem for which we can develop an effective solution, helping us ensure not a minute is wasted in these short 28 hours. Contributing our skills to those in need is a great feeling, as is creating a solution that reduces the manual effort required for a business process, and with Matthew's Crossing Data Manager we're proud to do both.

What It Does

Our solution, Matthew's Crossing Data Manager (MCDM), works in conjunction with their main system, Food Bank order to ingest the donation and guest data, automatically classify it, and generate meaningful reports that Matthew's Crossing can make use of to directly improve their service.

Old data flow

Old Path

Data Flow with Matthews Crossing Data Manager

New Path

Looking at these two flowcharts, you can see the difference MCDM makes in streamlining the process of getting information where it needs to be. We eliminate almost all of the human interaction points in the data's path, reducing errors and allowing the limited staff to dedicate more of their valuable time to what matters most: helping the 623,300 people in Maricopa County who don't always know where their next meal is going to come from.

How We Built It

The backend of Matthew's Crossing Data Manager is built from mostly in PHP, with components built in Python; the frontend is built from fairly standard web technologies: HTML, CSS3, and JavaScript. We were also able to leverage an existing open-source web framework to cut down on development time while providing better functionality. The work was distributed into three major components:

  • The Interface with Food Bank Manager
  • The Report Generation Chain
  • The Data Visualisation Chain

These components were developed separately and simultaneously and integrated at multiple points during development.

Challenges We Ran Into

The lack of long-term technical skill limited the technical complexity of the solution we could put in place. An additional challenge was finding the right scope and extracting the real core problems, not their perceived solutions, heart of our nonprofit's problem statement.

Accomplishments That I'm Proud Of

Mark: The length of this hackathon was much shorter than the ones I am used to, forcing some tough choices in regards to feature sets. I'm proud to have produced the solution that we did on the shortened timescale we had.

James: Upgrading legacy code isn't glamorous, but I was able to finally eliminate a good chunk of technical debt from our framework in a short, concentrated burst.

What I Learned

The original AWS Elastic Beanstalk/Lambda powered solution we came up with, while a great solution from a technical standpoint, was not really a sustainable solution for a small nonprofit with low technical skill. So, we changed to a more traditional setup with a basic standalone server, which we believe will be a much easier environment to maintain in the long run for them. We also experienced many challenges in implementing our two-factor authentication system, primarily disagreeing algorithms, but in the end we were able to bring it together in a functional and pleasant solution.

What's Next for Matthew's Crossing Data Manager

Going forward, we will be working with Matthew's Crossing to more fully integrate with their systems and migrate the software to their servers. We will also be ensuring that they are satisfied with our solution and that it does, in fact, solve their problem.

Built With

Share this project: