Giter Club home page Giter Club logo

yava's Introduction

README

This README documents which steps are necessary to get this application called "YAVA: Yet Another Vegan App" up and running.

System dependencies

You only need a few packages, which should normally ship with your preferred distribution.

In this case, full support is only given for ArchLinux and we assume, that the operating system is already up and running.

Setup

This will explain the setup of the database, in this case PostgreSQL, the website, here Ruby on Rails and a mobile App, where we will use PhoneGap.

Please install these dependencies first:

  • Ruby >= 2.0.0
  • Node.js >= 0.10.17
  • PostgreSQL >= 9.2.4

Next, we will setup a new user, to secure the system a litte bit:

# useradd ror -d /path/to/yava
# passwd ror
# su ror

Then we will clone yava:

git clone [email protected]:tohn/yava.git

And add the following two lines to the ~/.bashrc:

export PATH="/path/to/yava/.gem/ruby/2.0.0/bin:$PATH"
export RAILS_ENV=production

and load them via:

source ~/.bashrc

Database

After installation of the package, you can create an user. First, become the postgres user:

sudo -i -u postgres

Create a new user, in this case ror:

createuser -s -U ror

Leave this user again with exit and create a new database with the normal ror-user:

createdb yava_prod

Website

Since you have (hopefully) already downloaded this project with git or something else, you can install all stuff necessary to run the website with just two commands:

gem install bundle
bundle install

Next we have to set some config variables:

echo "Yava::Application.config.secret_key_base = '" > config/initializers/secret_token.rb
rake secret >> config/initializers/secret_token.rb
echo "'" >> config/initializers/secret_token.rb

Afterwards, change the file config/local_env.yml. There you can set some settings like mail addresses and authentication for them and choose between Omniauth providers like Google (you have to create an app first) or Htaccess.

$EDITOR config/local_env.yml

In case of Omniauth, there are no further steps required (except for adding the key and secret for each provider in the above file).

In case of Htaccess, change USERNAME and PASSWORD in this file and uncomment this line in app/controllers/application_controller.rb:

before_filter :authenticate

This will use Htaccess and the default user (in db/seeds.rb).

For the database, you have to edit config/database.yml and change all occurences of username to your username, i.e. ror.

Next, open config/environments/production.rb and change the mail settings at the end of the file.

Then precompile the assets:

rails generate jquery:install
rake assets:precompile

Next, create the database, migrate the migrations in db/migrations and initialize the database with the data from db/seeds.rb:

rake db:create db:migrate db:seed

And finally, start the server:

rails s

I18n/L10n

If you want to use another language than the default one (german), you have to change the following files:

  • config/application.rb
  • app/views/yava_mailer/
  • app/views/home/

Also copy config/locales/de.yml and config/locales/simple_form.de.yml and adjust them.

Mail

To send mails, you have to change the settings in config/environments/production.rb. You can also choose a mail host without authentication, then uncomment the delivery_options lines in app/mailers/yava_mailer.rb and set at least YAVA_EMAIL and INQUIRY_EMAIL in config/local_env.yml.

Mailserver

If you have a mailserver installed and running, you can use it to receive mails and save them automatically in the database. This is useful for ingoing responses from the manufacturers.

You can pipe the mails like this:

cat testmail | /path/to/yava/bin/rails runner "YavaMailer.receive(STDIN.read)"

Cronjobs

To provide up to date veganities and a daily dump of your database, you can set up a cronjob.

As ror-User:

crontab -e

then insert:

# http://stackoverflow.com/questions/285717/a-cron-job-for-rails-best-practices
@hourly cd /path/to/yava && RAILS_ENV=production rake veganity:update --silent
@daily /path/to/yava/db/dump_postgresql_db.sh

Mobile application

The app can be found here.

You just have to change the URL to get it running with the newly created website described above, by changing rooturl in www/js/index.js.

Documentation

To generate the documentation for YAVA, run:

yardoc --no-private --protected app/**/*.rb - README.md

If you just want to create this file, run:

yardoc --no-private --protected - README.md

Then, open /path/to/yava/doc/index.html in your browser.

yava's People

Contributors

tohn avatar

Stargazers

Christian Wiwie avatar Florian Ziesche avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.