As avid adventurers who desire to make the most out of a vacation or some location, it is often frustrating to have to sift through multiple websites to find the most worthwhile points of interests. What if you have limited time to visit a city, for example? This project provides a solution to these problems by using crowdsourced data to generate the most worthwhile and valuable attractions at a glimpse of the map! The lower quality attractions get filtered out while the higher quality attractions stand out, in terms of popularity and the rating of the point of interest.

What it does

This web app renders different markers indicating the points of interest based on how many reviews are there and how highly rated that particular point of interest is, depending on the zoom level. This interactive map provides the top places at a given region of the map so people can quickly see which places are the most worthwhile to go to. This is especially useful for tourists who want to get the most out of a place before they head back home.

How I built it

We used HTML, CSS, and JavaScript on the frontend, and Google Maps API, node.js, and Firebase for the backend.


Setting up Firebase and integrating Firebase with the Google Maps APIs are the most challenging and time consuming part of this project. In the end, we were able to figure it out and make the complete project.


Most of the team do not have any experience with web development, so they were able to learn the frontend HTML and CSS very quickly, which is amazing. For me, I had very limited experience working on the backend and I am proud that I learned how to write express.js, set up Google Maps API, and integrate Firebase in under 12 hours.

What's next for Hidden Gems

We are going to add user authentication using Passport on the Node.js server side and friends features so a user can see what points of interest the friends have rated/reviewed in. We are also planning to add top 10 reviews in a given points of interest.

Share this project: