Inspiration

City Vibes was inspired by the idea of making city exploration more personalized and intuitive. We wanted to create a platform where users could easily discover locations that match the vibe they're looking for, whether that’s a cozy cafe, a lively music venue, or a quiet park. Many people rely on reviews, but sorting through them to find a place that fits their specific mood or preference can be difficult. City Vibes aims to simplify that process by integrating user-generated reviews with real-time mapping to create a smarter way to explore cities.

What it does

City Vibes allows users to search for locations that match their desired atmosphere by typing in a description of the vibe they want. The app then matches their description with user reviews, filters the results by rating, and displays the top 10 locations on a map. Users can also explore random locations with fewer reviews and submit their own reviews for places they visit. Additionally, each recommended location includes an image, name, rating, and a snippet of a user review to help guide the user’s decision-making. For now, it is just in Boston.

How we built it

We built City Vibes using a combination of technologies. On the backend, we used Flask to handle the server-side logic and API requests. We stored location and review data in a JSON file and used Python for text matching between user input and reviews. For the frontend, we employed HTML, CSS, and JavaScript to create a responsive and user-friendly interface. The interactive map is powered by Mapbox, which allows users to visualize location recommendations and zoom into specific areas based on their search. The dynamic matching of user descriptions to reviews is handled by a custom algorithm that uses simple keyword matching.

Challenges we ran into

One of the biggest challenges we faced was integrating the Mapbox API for real-time mapping and geolocation. Ensuring that the map could dynamically update based on user preferences, while also displaying filtered locations accurately, took time to get right. We also encountered some difficulties in making the text-matching algorithm robust enough to handle various user descriptions. Ensuring that images were properly displayed in the recommendations section, without breaking the layout, was another challenge we had to resolve.

Accomplishments that we're proud of

We are proud of successfully integrating all the different technologies into one seamless user experience. The dynamic mapping feature, which allows users to see their top recommended locations on an interactive map, is something we’re especially excited about. Additionally, building a functional text-matching algorithm that gives meaningful results based on user descriptions was a significant achievement. We’re also happy with the clean, modern design of the interface and how easy it is to use.

What we learned

Throughout this project, we learned how to effectively integrate several APIs, manage dynamic data, and create a responsive user interface. We gained experience working with Flask for the backend and learned how to store and retrieve structured data in JSON format. We also deepened our understanding of JavaScript and how it can be used to make web pages more interactive. Additionally, we learned a lot about handling asynchronous requests and ensuring that our application remains responsive while data is being fetched. Of course, most importantly we learned that we have a lot more to learn asw this project could have been put together with greater efficiency and even become enhanced with better coding and web development skills.

What's next for City Vibes

Looking forward, we want to enhance the text-matching algorithm to use machine learning techniques, allowing for more accurate matches between user descriptions and reviews. We also plan to expand the app’s functionality to include more cities and locations, potentially incorporating real-time data for events and new openings. Another goal is to improve user engagement by allowing them to contribute photos and share their experiences more easily. Ultimately, we hope to make City Vibes a go-to tool for anyone looking to explore their city in a more personalized and meaningful way.

Share this project:

Updates