Inspiration

Food waste is a massive problem, especially on college campuses, where busy students often buy large quantities of food that ends up going bad or in the trash. While existing organizations and services for donating food exit, they come with overhead and planning, which makes getting good food into the hands of people who will put it to good use harder and more time consuming. We wanted to build something that operated at the speed of campus life, where surplus food could go from a table to someone's hands in minutes, not days.

What it does

Our app lets people post any extra ingredients, leftover meals, or surplus food of any kind, with a photo, location, and expiry timer. Users nearby can discover these posts through a live map, where within seconds they can claim any food they want, and coordinate pickup through a built-in chat feature all in real time.

Users can explore the map to find available food, press the pin to see a photo, allergen tag information, and pickup instructions. The moment a claim is made the pin is removed from the map for other users, and a private chat is opened up between the user and the food donor, to discuss pickup logistics. Color coded pin image borders indicating how much time is left before the item expires, so users can prioritize what needs to be used first.

The app features dietary filtering, which includes avoiding common allergens such as nuts, dairy, or gluten, which automatically hides conflicting pins from the map. A search bar can be found to filter by keywords in busy areas for users with a specific item in mind, further personalizing the use of the map. Optional push notifications are also in place in order to alert users when a listing appears near them, their food is claimed, or when the pickup window is approaching.

The whole experience intends to make the process as smooth as possible, because good food should not go to waste just because the right person hasn't found it yet

How we built it

We built ReDish on React Native with Expo for a single codebase for both Android and IOS. Firebase does the heavy lifting in the backend, handling all real time data in Firestore. Food images and posts are stored through Supabase, providing a scalable database for file storage. The live map is built with React Native Maps and Google Maps API, and app navigation is handled by react navigation using both tab navigation and a modal stack.

Challenges we ran into

The biggest challenge by far was dealing with the sometimes annoying Expo Go sandbox. Since it is a limited environment for testing an app, a lot of our work towards the end was trying to make it so we can actually test all of our features without having to upgrade to a dev client. Another challenge was filtering the images on the map based on settings, as initially we did not really consider that the two screens would have to be directly tied together. We also started quite slowly as setting up everything, downloading all the dependencies, and figuring out how to utilize the API's took a bit because neither of us had much experience with the process.

Accomplishments that we're proud of

We are proud to have built up our fully functional end to end application from a simple idea of addressing one of society's biggest issues. We built real-time map pins that display food photos, a dietary restriction filtering system that updates the map instantly, a complete claim and private chat system, and the groundwork for a full push notification layer. Doing all of this in the weekend, while maintaining (fairly) clean code between two contributors is something we can be proud of.

What we learned

We learned how to build a real-time mobile app from scratch, including managing live data streams and maintaining scalability. Working with Google Cloud, Google Maps API, and Firebase was a new experience for both of us, but allowed us to learn the inner workings of data management on a large scale in an application. We learned how to think from the perspective of the user in an effort to make every interaction and food pickup as easy as possible, because that is what makes an app usable. We started off hoping to just finish, but now that we have a working product we can be proud of it.

What's next for ReDish

The immediate next step is to move from Expo Go to a full development field to access native modules that Expo Go does not have the capacity for in an effort achieve full functionality. This step also sets up App Store and Google Play distribution, which is where we can begin scaling our product up. Our longer term vision is to expand the service to wherever people have food to give, from office buildings to neighborhoods, in order to help address the problem that motivated us to build ReDish, food waste.

Share this project:

Updates