Inspiration

Grabbit grew out of the realization that while grocery shopping is essential to nearly every Bruin, walking to Westwood is an arduous affair, especially when carrying bags back uphill. At the same time, plenty of students regularly make trips to Ralphs, Trader Joe’s, Target, and other stores. We thought: why not let Bruins help each other by coordinating these trips, turning errands into an opportunity to save time, reduce foot traffic, and even make a little money?

What it does

Grabbit connects UCLA students who need groceries with classmates already planning a shopping trip. Buyers can post specific grocery orders, carriers see available orders when they indicate they’re going shopping, and they can choose which ones to fulfill. Once the groceries are delivered, the buyer confirms the delivery, and the carrier receives a small monetary reward, all handled seamlessly through the app.

How we built it

We built Grabbit with a full-stack architecture, using React.js for the frontend and Flask for the backend. Authentication is managed through Firebase, ensuring that users are verified UCLA students. Payments and payouts are handled through the Stripe API, enabling secure transactions between buyers and carriers. Throughout the app, we designed intuitive UI flows for posting, browsing, and accepting orders, and integrated dynamic pricing models to keep rewards fair based on demand and effort.

Challenges we ran into

One of the biggest challenges was deploying a system with both a persistent backend server and a dynamic frontend — Vercel is great for frontend hosting but not ideal for running Python servers. Solving this meant splitting our deployment and configuring cross-origin (CORS) handling between the two services. Integrating Stripe for payments also presented a learning curve, especially in securely handling payment intents, transfers, and webhooks to verify successful deliveries. Additionally, designing a dynamic, real-time order matching system that stays user-friendly took a lot of iteration.

Accomplishments that we're proud of

Integrating the Stripe and Firebase APIs gave Grabbit a truly professional feel. Seeing users sign up, post orders, and complete real transactions end-to-end was incredibly satisfying. We’re proud that Grabbit not only works technically but also addresses a real student need in a way that’s both scalable and secure.

What we learned

We learned how to deploy full-stack apps across multiple services and deal with real-world issues like authentication, payment security, CORS, and user experience design. We also gained valuable experience working with serverless architectures, asynchronous workflows, and third-party APIs, as well as how to prioritize building an MVP (minimum viable product) first before expanding with additional features.

What's next for Grabbit

Grabbit is just getting started. We want to expand it by adding real-time notifications, dynamic order prioritization (so urgent orders float to the top), and improved trust features like carrier reviews and order history tracking. We’re also exploring ways to optimize trip bundling — allowing carriers to efficiently pick up multiple small orders in one run — and eventually expanding the service beyond Westwood to other neighborhoods where students live. Longer term, Grabbit could even be adapted for other campuses or local communities!

Share this project:

Updates