Inspiration
A couple of us went to Rhode Island and Boston earlier this year. The sites were gorgeous, but the trip was anything from pleasant. We wasted a lot of time trying to figure out where to go, losing out on nearby hidden gems, or taking extensive trips that weren't necessary. But the story of one of our close friends who had an accident and was in a wheelchair at the time made us really examine how we arrange our trips. Things that looked accessible on paper became completely useless in real life: stairs without ramps, uneven paths, and settings without clear entrances. We were tired, frustrated, and overwhelmed, but not because we were exploring. One thing was evident after the trip: travel applications don't work like actual humans do. We needed something that wasn't simply smart, but also knew our limitations, likes, and priorities in real time. That requirement led to the creation of Voyagr. It's not just a route planner; it's a knowledgeable, caring travel companion that helps everyone explore with confidence, no matter what. We want to make travel easy, welcoming, and fun again by using AI, personalized filtering, and routing that takes accessibility into account.
What it does
Voyagr is a smart travel planning application that creates optimized and personalized itineraries in real-time. Users can input their current location and a desired radius, and Voyagr will suggest nearby attractions and activities.
Key functionalities include:
Location-Based Discovery: Instantly find points of interest around you.
Smart Filtering: Customize searches by activity type (e.g., museums, parks, restaurants), specific accessibility requirements (e.g., wheelchair accessible, sensory-friendly), and preferred travel mode (walk, drive, public transport).
Optimized Itineraries: Automatically plans the most efficient route between selected locations, considering travel time and distance.
AI-Generated Content: Leverages Google's Gemini API to provide creative names and engaging descriptions for travel routes and clusters of attractions.
Gamified Experience: Users earn points for visiting locations, with a leaderboard to encourage exploration and add an element of fun.
Clean, Interactive UI: Designed for intuitive use on mobile (React Native Expo), ensuring a smooth and engaging user experience.
How we built it
Voyagr is a full-stack application developed with a focus on modern technologies and efficient data handling.
Frontend: We chose React Native (Expo) to enable cross-platform mobile development, allowing us to build a native-like experience for both iOS and Android users from a single codebase.
Backend: The backend is powered by a Flask (Python) REST API. This handles business logic, data processing, and communication with external services.
Database: MongoDB Atlas serves as our cloud database, storing user preferences, location data, and generated itineraries. pymongo was used for Python integration.
Core Technologies & Algorithms: Route Optimization: We utilized faiss for fast similarity searching and clustering of locations, which helps in identifying relevant points of interest efficiently. This, combined with the Google Routes API, allows for the calculation of optimized travel paths.
a) AI Content Generation: The Google Gemini Generative AI API was integrated to dynamically create unique and appealing names and descriptions for travel plans. b) Location Services: We leveraged a suite of Google Maps APIs: c) Geocoding API: To convert addresses to coordinates. d) Places API: To search for nearby places. e) Custom Search API: For fetching images of locations. f) Geolocation API: To determine the user's current location. g) Image Handling: Pillow and imagehash were incorporated for image processing and perceptual hashing, which can be useful for identifying similar images or managing visual content related to locations.Development Environment: We used python-dotenv for managing environment variables and API keys securely. Flask-cors was essential for enabling communication between our frontend and backend.
Challenges we ran into
Building Voyagr in a hackathon environment presented several hurdles:
Juggling multiple Google APIs with varied formats and limits was a complex API integration challenge, which we overcame by developing standardised request handlers and implementing thorough error checking for each API.
Crafting an efficient algorithm for dynamic real-time route optimization was demanding, a hurdle we addressed by leveraging faiss for rapid location clustering and iteratively refining our routing logic based on test cases.
Ensuring consistent data synchronization between the frontend, backend, and database required careful design, which we achieved by establishing clear data models and utilizing asynchronous updates with robust validation.
Achieving a uniform look and feel with cross-platform UI consistency in React Native needed attention to detail, a challenge met by focusing on a component-based design system and conducting extensive testing.
Implementing all desired features within the hackathon's tight time constraints was a constant race, which we managed by prioritizing core functionalities ruthlessly and adopting an agile approach with rapid prototyping.
Accomplishments that we're proud of
Despite the challenges, we achieved several milestones that we're particularly proud of:
Full-Stack Implementation: Successfully developing a complete, functional smart travel planning application from frontend to backend, including database integration.
Meaningful AI Integration: Going beyond simple API calls to use Google Gemini for creative content generation, genuinely enhancing the user experience.
Focus on Accessibility: Integrating smart filters for accessibility needs was a core goal, and we're proud to have built a feature that can make travel more inclusive.
Effective Route Optimization: Implementing a system that provides users with efficient and logical travel plans.
Engaging Gamification: Adding a points and leaderboard system to make the app more interactive and fun.
Intuitive User Interface: Crafting a clean, user-friendly interface that makes complex planning feel simple.
What we learned
The development of Voyagr was a significant learning experience:
Advanced API Utilization: We gained deep practical experience in integrating and managing a diverse set of third-party APIs, particularly from the Google Cloud Platform and Google AI.
Full-Stack Development Workflow: We honed our skills in the end-to-end development process, from conceptualization and design to deployment and testing, using React Native, Flask, and MongoDB.
Importance of Scalable Architecture: We learned about designing backend systems and database schemas that can handle growing amounts of data and user requests.
Problem-Solving Under Pressure: The hackathon environment taught us to think critically, adapt quickly, and find creative solutions to unexpected problems.
Team Collaboration: Effective communication, task delegation, and version control (Git) were crucial for our team's productivity.
The Power of AI in UX: We saw firsthand how AI can be used not just for backend processing but also to directly improve the user-facing aspects of an application.
What's next for Voyagr
We believe Voyagr has the potential to grow into an even more comprehensive travel companion. Some future directions include:
Offline Functionality: Allowing users to access their saved itineraries and essential map data even without an internet connection.
Enhanced Social Features: Enabling users to share their travel plans or completed routes with friends, and perhaps even collaborate on planning.
Community-Sourced Content: Introducing features for users to add reviews, tips, photos, or suggest hidden gems for locations.
Deeper Personalisation: Refining the recommendation engine using machine learning to learn from user behavior and feedback over time, offering even more tailored suggestions.
Expanded Accessibility Options: Adding more granular filters and detailed information regarding accessibility for various needs.
Multi-Modal Trip Planning: Integrating options for planning longer trips that might involve flights or train travel in addition to local exploration.
Improved AI Image Generation: We are currently addressing some challenges with the speed and accuracy of image generation for tours using the Gemini API, and a key next step is to refine this process for a faster and more precise visual experience.
Built With
- expo.io
- faiss
- flask
- google-custom-search-api
- google-gemini-generative-ai-api
- google-geolocation-api
- google-maps-geocoding-api
- google-places
- google-routes-api
- imagehash
- mongodb-atlas
- pillow
- pymongo
- python
- python-dotenv
- react-native
- supabase
Log in or sign up for Devpost to join the conversation.