alt tag Coverage Status

##TeemApp

For our final project at Makers Academy we decided to build a community sourced activity finder and organizer application.

####Live Demo http://teemapp.herokuapp.com

####To run locally and test

git clone https://github.com/ojlamb/final_project
cd final_project
bundle install
bin/rake db:create
bin/rake db:create RAILS_ENV=test
bin/rake db:migrate
bin/rake db:seed
bin/rails s

to run tests:

rspec

##User Stories

As a new User
In order to join the community
I would like to sign up
As an active user of the app
In order to see my activities
I would like to sign in
As an active user of the app
In order to leave the app safely
I would like to sign out
As an active person
In order to do more
I would like to find activities
As a busy person
In order to find activities I can go to
I would like to see those taking place near me
As an organized person
In order to plan my activities
I would like to see them arranged by time
As an activity organizer
In order to gather enough people
I would like to post an activity
As a potential user
In order In order to join an activity
I would like to inform the organizer than "I'm in!"
As an activity organizer
In order to get the right number people for the activity
I would like to specify the number of participants required
As an activity organizer
In order to let people know where my activity is
I would like to place a pin on a map exactly where it will take place
As an activity organizer
In order to help the community
I would like to rate participants based on reliability
As an activity participant
In order to help the community
I would like to rate the activity

####Technology used

  • Ruby on Rails
  • Javascript and JQuery
  • PostgreSQL
  • Action Mailer for email notifications
  • Bootstrap + Custom CSS
  • Paperclip with AWS for photo storage
  • Mapbox and Leaflet JavaScript APIs for Mapping
  • Rspec, Capybara, TimeCop, Factory Girl for testing

####Challenges

  • Considering time was a major obstacle - hiding activities after they have taken place, but saving them into the database to allow users to give them a rating.
  • Allowing users to update the activity location on the confirmation page was very tricky. The solution was very streamlined, we used a geocoder to get an initial location, enabled the pin to be dragged and dropped, reverse geocoded the new location and used JavaScript to update the form - all in real-time
  • Constructing the database model accurately - We had to use a has and belongs to many relationship between User, Activities, and Attendees.