Inspiration
I kept seeing well-meaning people wanting to donate clothes, food, or even a free haircut, but there wasn’t a simple way to match those offers with actual needs on the streets of downtown SJ. I wanted to bridge that gap and make giving as easy as scrolling through Instagram.
What it does
- Receiver posts a request (e.g. “Size M winter jacket” or “packed lunch”).
- Donor browses open requests and clicks “I’ll help” to claim it.
- Secure pickup verification via a one-time code so the right person gets the right item.
- Track donation status from “open” → “claimed” → “fulfilled.”
- User auth for both Donors and Receivers, with an anonymous donation option if you’d rather stay incognito.
How we built it
- Frontend: Plain HTML, CSS, and vanilla JavaScript—kept it lightweight and easy to tweak on the fly.
- Backend: Node.js
- Database: MongoDB Atlas for storing users, requests, and donation logs.
- Hosting: Heroku for the server and free MongoDB Atlas tier—zero-cost MVP.
- Verification: Custom OTP generator in Node that spits out single-use codes for pickups.
Check out the repo 👉 https://github.com/Faiq2001/WeHelp
Challenges we ran into
- Making the site fully responsive so it works smoothly on both desktop and mobile browsers.
- Building a rock-solid OTP system that works even if someone’s offline or has flaky service.
- Deciding to skip multi-language support for now so we could actually launch something.
Accomplishments that we’re proud of
- Implemented full-stack MVP features: donor/receiver authentication, request posting, donation claiming, status tracking, and OTP-based pickup verification.
- Connected a vanilla JS/HTML/CSS frontend to a Node.js/Express API with MongoDB Atlas—end-to-end data flow is live in a staging environment.
- Built a fully responsive layout so the site works smoothly on both desktop and mobile browsers without a framework.
- Published the code on GitHub with a clear README, making it easy for classmates or future contributors to jump in.
What we learned
- MVP over perfection: Launch fast, then polish based on real feedback.
- UX for trust: Little things—like showing a confirmation code—make people feel confident using the app.
- Responsive design tricks: Media queries and flex layouts are lifesavers.
What’s next for WeHelp
- Add a feedback loop so receivers can rate their experience and donors can leave quick shout-outs.
- Roll out basic analytics for admins (heatmaps of requests, donation volumes).
- Experiment with a volunteer “closet-on-wheels” integration—link donors, drivers, and drop-off points.
- Eventually tackle multi-language support once we nail the core flows.
Log in or sign up for Devpost to join the conversation.