/brokenlift

Show broken lifts worldwide

Primary LanguageCSS

   ______                              _
  (, /    )        /)              ___/__) ,   /)
    /---(  __  ___(/_   _ __      (, /        // _/_ _
 ) / ____)/ (_(_) /(___(/_/ (_      /    _(_ /(_ (__/_)_
(_/ (                              (_____   /)
                                          )(/

BrokenLifts consists of a RubyOnRails API Backend supplying JSON and XML objects retrieved from the database and the HTML/CSS frontend loading and visualizing the content via JavaScript.

About

Installation → the plain old way

The command line is your friend:

$ git clone git@github.com:sozialhelden/brokenlift.git
$ cd brokenlift
$ bundle install
$ bundle exec rake db:create
$ bundle exec rake db:migrate
$ bundle exec rails s

Although Rails is a great open-source web framework, you still can get into trouble to create the correct development environment on your machine. So please consult stackoverflow or duckduckgo.

After you have installed everything it's time to fill the database with some random data. Please perform bundle exec rake db:populate.

Installation → the shiny new way

We use Vagrant to setup a virtual machine which acts like our production system with all the dependencies. Once set, you check out the brokenlift repository on github, put it in the share folder between the virtual machine (guest system) and your machine (host machine). You can then use your favorite editor to make changes - they will be automatically deployed on the virtual machine. If you want to see your changes locally, you have to connect to the virtual machine with and start the rails project.

Enough of the theory, lets make this dream come true. Go through each step:

Install Oracle’s VirtualBox for your operating system.

Install vagrant gem:

$ gem install vagrant

Create a directory for your Virtual Machine:

$ mkdir $HOME/vagrant_brokenlifts/
$ cd $HOME/vagrant_brokenlifts/

Download the box (→ this will take a while, so grab a snickers):

$ vagrant box add brokenlifts_box http://wikimatze.de/package.box

Initialize and run the virtual machine:

$ vagrant init brokenlifts_box
$ vagrant up

Make a test login in the box:

$ vagrant ssh
Linux lucid32 2.6.32-33-generic #70-Ubuntu SMP Thu Jul 7 21:09:46 UTC 2011 i686 GNU/Linux
Ubuntu 10.04.3 LTS

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/
Last login: Thu Jul 21 13:07:53 2011 from 10.0.2.2
vagrant@lucid32:~$

Install the guest edition for better handling and reload the VM (don't forget to terminate the ssh session with exit before doing the following steps on your host system):

$ gem install vagrant-vbguest
$ vagrant reload

Check out the current code:

$ git clone git@github.com:sozialhelden/brokenlift.git

Change the database.yml this step is necessary because the socket location is different between the virtual machine and the production system:

$ vagrant ssh
$ vagrant@lucid32:~$ cd /vagrant/brokenlift
$ rm config/database.yml
$ mv config/database_vm.yml config/database.yml

Create the database and start rails:

$ vagrant ssh
vagrant@lucid32:~$ cd /vagrant/brokenlift
vagrant@lucid32:~$ bundle exec rake db:create
vagrant@lucid32:~$ bundle exec rake db:populate
vagrant@lucid32:~$ bundle exec rails s

Check on your favorite browser on your host system the URL http://localhost:3000

Under /vagrant on your virtual machine you can find the same file you have under $HOME/vagrant_brokenlifts/ - that's why it is called a shared folder. Any change you made under the git repository $HOME/vagrant_brokenlifts/brokenlift are influencing the folder on your virtual machine /vagrant/brokenlift and you can the results directly in the browser of your host system.

If you want, you can use the Vagrantfile in this repository to create own virtual machine. Read vagrants getting started article, to understand how the systems works.

The following packages are installed on the virtual machine:

# git
sudo apt-get install git-core
# command-line git browser with vim-commands
sudo apt-get install tig
# mysql stuff
sudo apt-get install mysql-server
sudo apt-get install libmysqlclient-dev
# nokogiri
sudo apt-get install libxslt-dev libxml2-dev
# need for gem rubyracer
sudo apt-get install g++

API

The project features a RESTful API which can be used to extract the scraped data. The default response format is JSON but other formats are also supported.

You can find it int the wiki.

Screenshot

The screenshot shows the current version of the website.

BrokenLifts Website

Current Contributers

Former Contributors

Brought to you by:

  • Julia Benndorf
  • Florian Brasch (Awesome logo of awesomeness)
  • Holger Dieterich
  • Stefan Dühring
  • Nick Fisher
  • Duc Ngo Viet
  • Tobias Preuss
  • Marco Stahl