Inspiration

Things like Yelp focus on commercial things like restaurants and other things that can cost significant amounts of money. We wanted to eliminate those things and focus on things within walking distance that are free or low-cost, like sightseeing and museums with low-cost or free hours.

What it does

When you load the app, it asks for your location so it can show you points of interest in your immediate vicinity. You can look for things in another neighborhood by selecting it from the neighborhoods dropdown. You can also filter by POI type:

  • Library
  • Landmark
  • Monument
  • Museum
  • Park
  • Religious Building

When you select an item on the map, it opens a screen showing you an image for it and a small blurb.

How we built it

We got a lot of our data from Baltimore's Open Data Initiative on baltimorecity.gov. We then cleaned and massaged as much of the data as we could in the short amount of time we have, scraped Wikipedia for some images and text associated with each location. All in all, we have over 1100 points of interest in and around Baltimore City.

The back end is a Ruby app built with the Roda web framework. We stored our data in a Neo4j database for maximum flexibility while developing it since we didn't really know what the whole schema would look like and we didn't want to spend too much time writing migrations every time we changed our minds.

Challenges we ran into

Transforming data to remove outliers and fill in gaps took a long time and we're still not done with that. Automating this process can only get us so far and, after automating, we still need to check the data our automated process gives us for correctness.

Accomplishments that we're proud of

We learned a lot about the technologies we used.

What we learned

  • Open data can be very difficult to consume due to lack of consistency
  • When automating any sort of data gathering process, human oversight and intervention is required every step of the way to ensure accuracy.

What's next for Baltimore POI

  • Refine our scraping process to generate better images and information blurbs for different points
  • Add a feature to allow multiple images for a single point of interest
  • Continue to clean the data so it will be more useful to others, possibly abandoning our automated scraping task and manually updating what we've got
  • Improve memory efficiency by limiting points of interest to just what fits in the window
  • Handle more edge cases in the app, such as when all points have been filtered from the map
  • Add features, such as getting directions to a chosen point either on the page or in your favorite navigation app
  • Extract the Google Maps integration into a Ruby gem to work with the Clearwater framework
  • Add crowd-source features
  • Give it a better name that took more than 5 minutes to conjure

Built With

Share this project:

Updates