Welcome to the Fairmondo repository
Fairmondo is a free market place in the hand of the users.
Read more about it at: www.fairmondo.de
Please help us out by contributing code.
Installing Ruby and Ruby on Rails
If you are not sure how to install Ruby and the Ruby on Rails framework on your computer, have a look at Michael Hartl's excellent tutorial on the subject.
Make sure you install 2.2.2. and not ruby 1.9.3-p392.
Fairmondo Project Setup
Set up a local git repository and switch to branch “develop”
git clone email@example.com:fairmondo/fairmondo.git cd fairmondo/ git checkout develop
Install required gems
Set up local files and change the setup data if you want
cp config/environments/development.example.rb config/environments/development.rb
Set up local version of secrets.yml
cp config/secrets.yml.example config/secrets.yml
set up database, load schema and seed
rake db:create db:schema:load db:seed
if you would like to test the mailer, please open the copied file and update it according to your testing mail server
you may like to adopt the config/database.yml according to your wishes
to use the recaptcha you have to add your keys into your secrets.yml file. You can get the keys at www.google.com/recaptcha/admin/list
start rails and have fun
Could not find pg-0.15.1 in any of the sources
If you have an error like
... rake aborted! Could not find pg-0.15.1 in any of the sources ...
Install the Postgres Library:
sudo apt-get install libpq-dev
Could not find SQLite3 headers If you have an error like
... Gem::Ext::BuildError: ERROR: Failed to build gem native extension. /usr/bin/ruby2.1 extconf.rb checking for sqlite3.h... no ...
Install the Sqlite3 Library:
sudo apt-get install libsqlite3-dev
(Mac) Invalid gemspec […ZenTest-4.9.1.gemspec]
If bundler constantly complains about an invalid ZenTest gemspec, run the following:
gem uninstall ZenTest rm [path to the ZenTest-4.9.1.gemspec it gave you in the error message] gem update --system bundle
To run the tests, type
NOTE: The tests need elasticsearch to run through (see below)
If you update your branch from before, you may have to migrate the test database:
RAILS_ENV=test rake db:migrate
Click here to read more about testing in our wiki.
The testsuite offers an option to stop at the first failing test and rescue in a pry console. To activate this use:
RESCUE=1 rake test
If the testsuite runs without any failures, there are additional checks that run automatically (but can be run independently via rake task in the brakets):
Rails Best Practices (`rails_best_practices`)
Brakeman (`rake test:brakeman`)
Rubocop (will not run automatically start with: `rake test:rubocop`, future purpose)
If you want to help out with programming new features or fixing bugs, please consider the following guidelines:
If you do not have direct access to our github repository, you can fork it, make changes on your forked repo, and then submit a pull request
Branch management: “master” is the currently deployed version. New features are developed on the branch “develop” or feature branches that branch from develop. Bugfixes are currently done on “develop”. Please send merge requests to the appropriate branch (develop).
If you have access to our repository, please create a new git branch before making changes when coding a larger feature
git checkout -b feature-[featurename]
We use BDD (Behavior Driven Development). Please read our wiki page on the subject.
When finished with a task:
git add [corresponding files OR simply --all for everything] git commit -m "[description]" git push
If you created a new branch for a larger feature, you need to merge the changes after you are finished:
git checkout develop git merge [featurename] master [you might need to resolve merge conflicts] git commit git push
Hint: When a vim window opened after you typed “git commit” without a commit message, you can save the default message by simply typing “:wq” and pressing enter.
Run Elasticsearch Server
To make the search available in your local environment you have to install Elasticsearch:
curl -k -L -o elasticsearch-1.3.4.tar.gz https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.4.tar.gz tar -zxvf elasticsearch-1.3.4.tar.gz ./elasticsearch-1.3.4/bin/plugin -install bundle -url http://xbib.org/repository/org/xbib/elasticsearch/plugin/elasticsearch-plugin-bundle/220.127.116.11/elasticsearch-plugin-bundle-18.104.22.168-plugin.zip ./elasticsearch-1.3.4/bin/elasticsearch
Links for Elasticsearch: www.elasticsearch.org
Plugin we use: github.com/jprante/elasticsearch-plugin-bundle
Background Processing with sidekiq
To use our Background processing you have to setup a redis instance locally:
On Ubuntu/Debian: sudo apt-get install redis-server For other systems try http://redis.io/
Aftwerwards start sidekiq with:
sidekiq -C config/sidekiq.yml
Share the idea, take part at www.fairmondo.de/ and make the world a better place!
Regarding the source, there are two ways to contribute.
Report a bug?
Just use the github issue tracker.
Please tag added bugs with the “bugs” tag
Want to help out and join feature development?
Have a look at our issue list and work on whatever you like. Mainly look at [Milestone] Backlog [Label] free4all
Send us an email at firstname.lastname@example.org and work with us to make the world a better place
or make a github account and click on the button called “Fork” in the upper right corner of our repository. Then code a few cool features, commit and push your changes, and submit a “Pull Request” so we can implement your work.