No description, website, or topics provided.
Ruby HTML CSS CoffeeScript Other

README.rdoc

Welcome to the Fairmondo repository

Stories in Ready Build Status Coverage Status Dependency Status Inline docs

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.

Getting started

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 git@github.com:fairmondo/fairmondo.git
    cd fairmondo/
    git checkout develop
  • Install required gems

    bundle install
  • 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 Postgres for development environment

  • 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

    rails server

Known Issues

  • 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

    Run Bundler

    bundle install
  • 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

    Run Bundler

    bundle install
  • (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

Testing

To run the tests, type

rake test

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)

Workflow

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/1.4.0.6/elasticsearch-plugin-bundle-1.4.0.6-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

Contributing

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.

  1. Report a bug?

    • Just use the github issue tracker.

    • Please tag added bugs with the “bugs” tag

  2. 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 email@fairmondo.de 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.