Inspiration

Donating a useful item should be easier than throwing it away. We wanted to help people answer two common questions: “What kind of place would accept this?” and “Where’s the nearest one?”

What it does

Donato helps people find nearby donation drop-offs for items they no longer need. Take a photo or choose one from your library, then let Google Cloud Vision suggest what the item is. You can also choose a category yourself. Donato filters nearby sample locations by what they accept, sorts them by distance, and provides directions in Apple Maps or Google Maps.

How we built it

We built Donato as a cross-platform mobile app using Expo, React Native, TypeScript, and Expo Router. expo-image-picker handles photos, Google Cloud Vision can identify items, and expo-location provides the user’s location. We store sample donation-center data in the app and use it to filter and sort results. The results screen includes a map on iOS and a list with directions on both platforms.

Challenges we ran into

Maps behaved differently across platforms. The map displayed on iOS but appeared black in Expo Go on Android because of an expired Google Maps key bundled with Expo Go. Since we wanted to keep the app usable without requiring users to set up a paid Maps API key or install a development build, we show Android users a helpful message instead of the blank map, while keeping nearby listings and directions available.

We also had to account for denied location permission and make sure users could still select a donation category when automatic image recognition wasn’t configured.

Accomplishments that we're proud of

We connected the core donation flow—from adding a photo to finding relevant nearby drop-offs—in one mobile app. We’re proud that users can still browse and get directions even when they deny location access or automatic recognition isn’t available.

What we learned

We learned how to connect mobile camera and photo-library access, image recognition, location permissions, and navigation in an Expo app. We also learned that native features can behave differently in Expo Go across platforms, and that a useful fallback can be better than showing a broken feature.

What’s next for Donato

We’d like to replace the sample locations with verified, up-to-date donation data, including hours and accepted-item policies. We also want to improve item recognition, support more donation categories, and help users find options such as pickup for large items.

Built With

  • accessibility
  • community
  • expo-imagepicker
  • expo-location
  • expo-router
  • expo.io
  • google-cloud-vision
  • google-cloud-vision-api
  • location-based
  • mobile-app
  • react-native
  • social-good
  • sustainability
  • typescript
Share this project:

Updates

Submission history