- Ruby 2.3.0
- Ruby on Rails 4.2.6
- Apache Cassandra 2.1.14
- cassandra-driver 2.1.6
- Google Maps Javascript API
- Gemfile
- list of Ruby gems used by this application
- config/application.rb
- contains require statements that applies to this application
- also contains CassandraClient class definition
- Ruby class using Datastax Cassandra driver for Ruby (cassandra-driver gem)
- config/routes.rb
- contains Ruby On Rails routes from address to controller action
- / => pages#home
- /heatmap => pages#heatmap
- /search => pages#search
- app/controllers/pages_controller.rb
- contains the 3 controller actions: home, search, heatmap
- home - homepage (just a map with the input boxes)
- search - search for most popular hashtag of location with or without date
- heatmap - create heatmap of all coordinates of a hashtag for a date
- app/views/pages/home.html.erb
- view for the pages#home action
- app/views/pages/heatmap.html.erb
- view for heatmap of hashtag for date
- app/views/pages/search.html.erb
- view for search of database for a location with or without a date
- Search Cassandra database for locations
- For Invalid Searches: redirect to homepage
- Location field was left empty
- Date was not in YYYY-MM-DD format
- Query returned no database records
- For Valid Searches:
- Date field was empty:
- Return up to 5 records, most recent first
- Date field was not empty:
- Return that day's most popular hashtag for the location
- Put red circles on coordinates where the MPH was found
- on click: show coordinate
- Create heatmap of a hashtag for a date
- For Invalid Searches: redirect to homepage
- Hashtag field was empty
- Date field was empty
- Date was not in YYYY-MM-DD format
- Query returned no database records
- For Valid Searches:
- Get all records of the hashtag for the date specified
- Create heatmap from the coordinates
- Load a map on page
- Put a static marker & info box on map
- Geocode locations
- Static SQL query & result handling (NOTE: binds to localhost MySQL server)
- Dynamic SQL query based on location search
- Search by Location AND Date
- Switch from MySQL to Cassandra (NOTE: still binds to Cassandra server at localhost)
- Alert pop-ups
- Mark coordiantes of hashtags found for single day searches
- Create heatmap of a hashtag for a date
- Click coordinate markers to show coordinate for single date searches
- Multiple locations & dates in a single search *
- Remote database *
- Proper deployment to be publicly accessible *
* Possible Future Implementation (no immediate plans)