Inspiration: We wanted to make it easier for users to explore their surroundings and discover local attractions, landmarks, and restaurants without needing extensive planning. By providing personalized suggestions within a one-mile radius, we aim to encourage users to explore hidden gems in their community or when traveling, making exploration seamless and intuitive.

What it does: The app uses location services to show users nearby attractions, landmarks, and restaurants within a one-mile radius. Users can filter by category (e.g., historical sites, cafes) and get information about each place, including ratings, reviews, and directions.

How we built it: We developed the app using React Native for cross-platform compatibility, utilizing Google Maps API to retrieve location data. Through the utilization of Yelp-Fusion API, we were able to retrieve popular landmarks, restaurants, and attractions, based on the user's location. We also implemented geolocation services to dynamically adjust the results based on the user’s location. This geolocational data had to be normalized from JSON to our database schemas so that our view models could properly interpret the incoming data from our APIs and internal Flask server. Handling 300 KB of JSON data needed to be optimized through clear SQL parameters to ensure row lookup times does not impact the user's experience.

Challenges we ran into: One of the major challenges was optimizing the geolocation services to ensure real-time location updates and counteracting map drift, as the user's location would slowly drift away from the original destination. We counteracted this by normalizing and initializing the location upon runtime which will allow us to refresh the user's location. Another major challenge was that we had a lot of unprocessed data that was not efficiently managed without our database schemas, which led to major complications in how we were representing the data in our UI. Through our normalization algorithms, we were able to process the data in our corresponding schemas to ensure that data transfer was effective throughout the entire dataflow.

Accomplishments that we're proud of: We are proud of successfully implementing real-time geolocation and creating a user-friendly interface and providing a valuable experience for our first-time hackers. Additionally, integrating third-party APIs for location-based data while maintaining a lightweight and responsive app experience is a key achievement.

What we learned: We learned a lot about React Native’s capabilities, particularly around handling geolocation services and API integrations. We also improved our understanding of efficient state management and UI/UX design to enhance user experience.

What's next for Philly Search: The next steps include expanding the radius search options, adding a feature for users to save favorite spots, and incorporating social sharing to recommend places to friends. We also plan to enhance location precision and provide more detailed filtering options based on user preferences.

Share this project:

Updates