A Smart Route Planning App with Restaurant Discovery
Built for MHacks - University of Michigan's Premier Hackathon
FoodRunner is an intelligent travel companion that revolutionizes the way you plan road trips by seamlessly integrating route planning with restaurant discovery. Instead of making separate stops to search for food, FoodRunner finds the best restaurants along your route based on your dietary preferences, cuisine choices, and meal timing.
Traditional travel planning involves:
- Planning your route separately from meal stops
- Random searches for restaurants at unknown locations
- No consideration for dietary restrictions or preferences
- Inefficient detours that add unnecessary time and distance
FoodRunner combines route optimization with AI-powered restaurant discovery to:
- Plan your entire journey with meal stops integrated into the route
- Discover restaurants that match your dietary needs and cuisine preferences
- Optimize timing by suggesting meal stops at appropriate travel intervals
- Learn from your choices to provide better recommendations over time
- Interactive map visualization with route polylines
- Real-time distance and duration calculations
- Waypoint optimization for efficient travel
- 60+ restaurants found along each route using OpenStreetMap data
- Dietary filtering: Vegan, vegetarian, gluten-free, kosher, halal, and more
- Cuisine preferences: Italian, Mexican, Chinese, Indian, Thai, and 10+ others
- Meal timing: Breakfast, lunch, and dinner recommendations based on travel schedule
- Seamless onboarding with personalized preferences setup
- Dual view modes: Interactive map view and detailed list view
- Color-coded markers: Green (breakfast), yellow (lunch), red (dinner)
- Restaurant selection: Tap to select/deselect restaurants for your trip
- Tracks your restaurant selections and preferences
- Learns from your choices to improve future recommendations
- Adapts to your travel and dining patterns over time
- Adaptive theming: Automatic dark/light mode based on system preferences
- Smooth animations: Polished transitions between screens
- Accessibility: Built with React Native best practices
๐ฑ Mobile App
โโโ React Native 0.81.4
โโโ Expo ~54.0.10
โโโ React Native Maps (route visualization)
โโโ AsyncStorage (data persistence)
โโโ Custom UI components
๐ฅ๏ธ API Server
โโโ Flask 3.0.0 (REST API)
โโโ OpenRouteService API (route calculation)
โโโ Overpass API (restaurant discovery)
โโโ Geopy (geocoding & distance calculations)
โโโ CORS support for mobile app
- OpenRouteService: Professional routing with 9 waypoints for long-distance trips
- Overpass API: Access to OpenStreetMap's restaurant database
- Custom AI: Learning algorithms for personalized recommendations
- Node.js 16+ and npm
- Python 3.8+
- Expo CLI:
npm install -g @expo/cli - iOS Simulator or Android Emulator (or Expo Go app)
git clone https://github.com/therealfiish/foodrunner.git
cd foodrunner# Install dependencies
npm install
# Start the development server
npm startcd backend
# Install Python dependencies
pip install -r requirements.txt
# Start the Flask server
python server.py- iOS: Press
iin the Expo CLI or scan QR code with Camera app - Android: Press
ain the Expo CLI or scan QR code with Expo Go - Web: Press
win the Expo CLI
- Set dietary restrictions and preferences
- Choose favorite cuisines
- Configure meal timing and radius preferences
- Set daily food budget
- Enter departure and destination locations
- Select departure time
- App calculates optimal route with meal stops
- Browse 60+ restaurants along your route
- Filter by meal type (breakfast, lunch, dinner)
- View detailed restaurant information (rating, price, distance)
- Interactive map with route polyline
- Color-coded restaurant markers
- Tap to select restaurants for your trip
- App learns from your selections
- Future trips get better, personalized recommendations
foodrunner/
โโโ ๐ฑ Frontend (React Native)
โ โโโ App.js # Main navigation
โ โโโ RouteScreen.js # Route planning & map
โ โโโ *_rn.js # Onboarding screens
โ โโโ theme.js # Dark/light theme system
โ โโโ datacollection.js # Data management
โ
โโโ ๐ฅ๏ธ Backend (Python Flask)
โ โโโ server.py # Main Flask application
โ โโโ app/routes/ # API endpoints
โ โโโ app/services/ # OpenRoute & Overpass integration
โ โโโ data/ # User data storage
โ
โโโ ๐ฆ Configuration
โโโ package.json # Node.js dependencies
โโโ requirements.txt # Python dependencies
โโโ app.json # Expo configuration
- Automatically switches between light and dark modes
- Consistent color palette across all screens
- Map styles adapt to theme preference
- Real-time route rendering with polylines
- Custom restaurant markers with meal-type indicators
- Smooth zoom and pan interactions
- Progressive onboarding flow
- Clear visual hierarchy and typography
- Smooth animations between screens
- ๐ Google Calendar Integration: Auto-import travel plans
- โฝ Gas Station Discovery: Find fuel stops along the route
- ๐ฅ Group Trip Planning: Collaborative trip planning for multiple users
- ๐ต Spotify Integration: Travel playlists based on trip duration
- ๐ Trip Analytics: Track your travel patterns and spending
- ๐ Advanced AI: More sophisticated recommendation algorithms
This project was built during MHacks - University of Michigan's flagship hackathon. In just 48 hours, our team created a full-stack mobile application that combines:
- Complex route optimization algorithms
- Real-time restaurant discovery from OpenStreetMap
- Machine learning for personalized recommendations
- Polished mobile UI with native performance
- Scalable backend architecture
The app demonstrates technical excellence, practical utility, and strong potential for real-world impact.
Built with โค๏ธ by passionate developers who love both coding and great food!
This project was created for educational and hackathon purposes.
- MHacks for providing the platform and inspiration
- OpenStreetMap community for restaurant data
- OpenRouteService for professional routing capabilities
- React Native and Expo teams for excellent mobile development tools
Ready to revolutionize your road trips? Let FoodRunner guide you to your next great meal! ๐๐