______ _ (, / ) /) ___/__) , /) /---( __ ___(/_ _ __ (, / // _/_ _ ) / ____)/ (_(_) /(___(/_/ (_ / _(_ /(_ (__/_)_ (_/ ( (_____ /) )(/
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.
- Public transport operators in Europe must ensure that mobility impaired people can use their service. That's why more and more lifts are installed at train and subway stations. Broken lifts severly restrict the freedom of those people. Being stuck at a train platform not only makes a journey much longer, it is also disrespectful to the individual.
- BrokenLifts was born at December 3/4, 2011 at Random Hacks of Kindness, Berlin. There are pictures taken at RHoK Berlin on Flickr. Of course BrokenLifts is on Twitter.
- The project idea was brought to RHoK by Raul Krauthausen from Sozialhelden e.V. The initial project definition can still be found online. The slides we used for the final presentation can be seen on online. Moreover, the project was advertised at the 28th Chaos Communication Congress (28C3) in Berlin at December 29, 2011. The slides of the 28C3 Lightning Talk and the video recording are available online.
- The current version of the website is online at: http://brokenlifts.org.
- The project was presented on the re:publica 2012.
The command line is your friend:
$ git clone [email protected]: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
.
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 [email protected]: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++
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.
The screenshot shows the current version of the website.
- Christoph Bünte (@chris_can_do)
- Janosch Woschitz (@jwoschitz)
- Oliver Schmidt (@codejet)
- Matthias Günther (@wikimatze)
- Esther Masermann
- Andi Weiland (@ohrenflimmern)
- Raul Krauthausen (@RAULDe)
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