Inspiration

One-third of participants in the Community Food Bank's culinary training program never finish. Not because they lack skill or commitment — but because a car breaks down, a childcare arrangement collapses, or a week of financial stress quietly erodes their motivation until they simply stop showing up. These warning signs exist in the data long before someone drops out. We built this platform because no one was watching for them in real time.

What it does

Our full-stack platform combines three things the program was missing: A gamified learning app — participants access coursework, earn XP, and see where they rank, keeping them engaged between in-person sessions, the same way Duolingo keeps language learners coming back. A real-time dropout risk engine — a logistic regression model scores every participant weekly across seven behavioral signals: attendance gaps, SMS non-response streaks, housing instability, financial stress, motivation drops, childcare changes, and transport barriers. Risk scores update automatically on every week. High-risk participants surface to the top. A coordinator intervention dashboard — coordinators see a live watchlist sorted by dropout probability, with specific triggers flagged per person, one-click access to phone numbers, and a resource card system that maps each barrier type to a concrete partner referral.

How we built it

-The project was built after thorough research about the community food bank. It is built with a motivation to solve all the challenging problems that the community faces. We had an idea of filling the gap between two existing applications in the organization.

Challenges we ran into

Bridging two stacks. Getting the Python risk model and Node.js frontend to share a live MongoDB Atlas database required careful schema alignment — the same collections needed to be readable by both a Mongoose ORM and raw PyMongo queries.

Designing risk without surveillance. We wanted early-warning signals without making participants feel monitored. The chatbot is fully private — coordinators cannot read conversation history. The dashboard shows risk signals at an aggregate level, not individual message content.

Role separation under time pressure. Implementing proper role-based access (coordinator vs. participant) across routes, middleware, and UI — and backfilling real participant accounts from the database — took more care than we expected at a hackathon pace.

Accomplishments that we're proud of

A working end-to-end risk pipeline: weekly check-in data flows into Model 1, produces a risk score with SHAP feature attribution, and surfaces in the coordinator dashboard — all in real time. An AI chatbot that detects distress in natural language and responds with context pulled from the participant's own baseline assessment answers — not a generic script. Ten real participant profiles seeded from the actual program dataset, with risk scores, intervention histories, and attendance records, making every demo fully grounded in realistic data. A coordinator dashboard that a real program coordinator could sit down and use on day one — no training required.

What we learned

Building for dignity is a design constraint, not an afterthought. Every decision — who can see what, how risk is communicated, what the chatbot says and doesn't say — had to be made with the participant's autonomy in mind. That slows you down in the right ways.

We also learned that the hardest part of early-warning systems is not the model — it is getting coordinators to trust the output enough to act on it. SHAP feature explanations ("this score is driven by 3 consecutive absences + a housing instability flag") matter more than accuracy metrics for real-world adoption.

What's next for Community Food Bank

SMS integration — push weekly check-in prompts directly to participants' phones and feed responses back into the risk model automatically, closing the loop without requiring app logins. Cohort analytics — aggregate views across cohorts so the Food Bank can identify which barrier types are most predictive of dropout in Tucson specifically, and adjust program design accordingly. Automated resource matching — when a risk event fires, the system proactively surfaces the closest relevant partner (transportation, childcare, mental health) based on the participant's location and the specific trigger type. Graduation outcome tracking — connect program completion data to post-graduation employment outcomes, giving the Food Bank evidence to secure continued funding.

Share this project:

Updates