This is a submission for Weekend Challenge: Generosity Edition
What I Built
I built Msaada, a community-powered platform designed to turn local needs into practical, organized support.
Many community needs are visible to the people closest to them, but getting those needs documented, verified, discovered, and supported can be difficult.
Msaada is built around a simple idea:
Make it easier for people to ask for help, and easier for others to provide it.
A community member can create a structured need and provide its context, while contributors can discover needs and pledge financial support toward them.
The core flow is:
-A community member describes a need and explains its context.
-They provide details such as category, location, urgency, beneficiary count, and funding goal.
-The submission enters a moderation workflow before becoming publicly visible.
-Contributors discover verified needs and pledge financial support.
-Fulfillment progress is calculated from contributions and reflected across the public needs board, need details, and contributor dashboards.
Msaada also includes an Impact Story section centered around a Kibera clean water and sanitation initiative, connecting community support with measurable outcomes.
The goal isn’t simply to collect donations. It’s to create a clearer connection between a need, the people supporting it and the impact that support creates.
Demo
Live application: msaada-africa.vercel.app
The main areas to explore are:
•Discover needs
•Impact story
•Create a need
•Privacy policy
•FAQ
•Support
To explore authenticated features, create an account and use the dashboard to view needs you have posted, contributions you have made, fulfillment progress, and notifications.
The platform supports a moderation workflow so that needs can be reviewed before they appear publicly. Admins can: manage needs, approve submissions, remove listings and maintain the category system.
Code
The source code is available on GitHub: https://github.com/Mutethia-glitch/msaada
How I Built It
Msaada is built with React and Vite, with an Express serverless API powering the backend.
The application uses MySQL-compatible relational storage through the configured DATABASE_URL connection, with Drizzle used as part of the project’s database infrastructure.
Authentication
Authentication uses real email-and-password accounts with signed session cookies.
The platform does not rely on a shared demo account. Instead, authenticated features derive their identity from the signed-in user, allowing dashboards and user-specific activity to remain tied to the correct account.
Data Model
The core data model separates several important parts of the platform:
Users
Categories
Needs
Contributions
Verification records
Reports
Impact records
Notifications
File references
Keeping these concerns separate makes it possible to connect community needs with moderation decisions, financial pledges, notifications, and impact data without treating everything as one large record.
Why I Built It
Generosity isn’t always about giving more.
Sometimes it’s about making it easier to see where help is needed and what happens after someone gives it.
That was the idea behind Msaada.
I wanted to build something where a community need could move from:
Need → Verification → Support → Progress → Impact
instead of disappearing into a social media post or an informal request.
Prize Categories
I am submitting Msaada for the overall challenge. I am not submitting it for a technology-specific prize category.
Thanks for checking out Msaada!