Page for an individual location
The public map of locations
At the UCSC campus, there are many interesting but little known spots. These are locations that are interesting enough to be worth visiting, but not enough to warrant having a page on wikipedia or label on google maps. We wanted a way to map locations based on their merit, as well as learning about interesting spots we don't yet know of.
What it does
Hermes allows users to create new locations on their position, which are displayed to the public by a merit-based system. Any user can see the positions of unvisited locations, and gains a spot on the early visitors list for that location as well as points for their profile by visiting. They can then rate the location up or down, which determines the prominence of it's marker on the map in the future. In this way, a map of positively received locations for users to explore is created by only crowd-sourced data. One example of a particular usage for this would be the mapping of haunted houses on Halloween. By our system, users of the application would get points for visiting haunted houses, and can create their own locations if they discover that there is a venue which has not yet been recorded on the map. This makes it easier for everyone to visit the locations that will interest them.
How we built it
We built Hermes using the Meteor.js framework, with it's default of MongoDB back-end and Blaze front-end. The main interface of the application uses the google maps api. In order to get sample data, we used Amadeus YapQ geosearch to extract information about locations of interest near the user's position.
Challenges we ran into
Several bugs with Meteor resulted in wasted time until a workaround could be found. Being our first time at a hackathon, it took some time to adjust to the environment that we were working in.
Accomplishments that we're proud of
The size of the application grew beyond where we originally thought it would end. We're proud that we were able to create an application this large and have the files and pages all link together correctly. Also, we were almost totally new to both the Google and Amadeus API, as well as how to use Cordova. We were able to get all of the technologies to work, while also troubleshooting issues with Meteor and it's associated technologies.
What we learned
During this project, we learned how to use and connect together multiple API's, including Meteor.js, Google maps, and Amadeus YapQ. The size of this project also forced us to learn code and file structure standards so as to keep the project neat enough to be workable. The schedule of the hackathon required the development of new time management skills.
What's next for Hermes
Hermes relies on it's users to provide information, so the most important next step would be to increase the likelihood of users being engaged and coming back to the application. This could be done through analysis of locations that the user voted on to more accurate recommend locations to visit. Also, with a large user base, the application would need a better system for handling the data coming in. This would include automatic removal of spam, trashing of redundant entries, limitation of description editing, etc.