Ruby Engine for merging multiple data sources with diary questionnaire data
Add Physiqual to your Gemfile. Currently Physiqual is not yet on RubyGems, this will happen after Physiqual is in a more stable beta state.
gem 'physiqual', github: 'roqua/physiqual'
Install the dependencies by running:
Initialize the database
bundle exec rake db:setup
Mount the engine in the
config/routes.rb file (in the
mount Physiqual::Engine => '/physiqual'
First create your an application on Google and Fitbit with the correct access levels and copy the key and ID from those services. Create initializer in
config/initializers/physiqual.rb and add the configuration as follows, using the ID and secret retrieved from the services:
Physiqual.configure do |config| # Google API tokens config.google_client_id = ENV['GOOGLE_CLIENT_ID'] config.google_client_secret = ENV['GOOGLE_CLIENT_SECRET'] # Fitbit oauth tokens config.fitbit_client_id = ENV['FITBIT_CLIENT_ID'] config.fitbit_client_secret = ENV['FITBIT_CLIENT_SECRET'] # Host settings config.host_url = ENV['HOST_URL'] || 'physiqual.dev' config.host_protocol = ENV['HOST_PROTOCOL'] || 'http' # EMA Settings config.measurements_per_day = 3 # Number of measurements per day, from the end of day downwards config.interval = 6 # Number of hours between measurements config.hours_before_first_measurement = 6 # How many hours before the first measurement each day should be included # Imputation # List of imputers to use, prefix with Physiqual::Imputers::, choose from: # - CatMullImputer # - KNearestNeighborImputer # - LastObservationCarriedForwardImputer # - MeanImputer # - SplineImputer # - MockImputer (doesn't actually impute). config.imputers = [Physiqual::Imputers::CatMullImputer] end
Now you should be able to start your server.
If you would like to run the dummy application, make a full checkout of Physiqual
git clone firstname.lastname@example.org:roqua/physiqual.git --shallow bundle install bundle exec rake db:setup
spec/dummy. From this directory you can either run
bundle exec rails s or create an apache v-host on passenger to run the server, for example:
cd /etc/apache2/other touch physiqual.dev.vhost.conf
And add to this file a virtualhost configuration, for example:
<VirtualHost *:80> ServerName physiqual.dev ServerAdmin email@example.com DocumentRoot "<YOUR DIRECTORY>/physiqual/spec/dummy/public" RailsEnv development PassengerRuby /Users/frbl/.rvm/gems/ruby-2.2.1/wrappers/ruby <Directory "<YOUR DIRECTORY>/physiqual/spec/dummy/public"> Options FollowSymLinks Multiviews MultiviewsMatch Any AllowOverride None Require all granted </Directory> </VirtualHost>
you should now be able to surf to, for example:
You might run into some issues with regards to SSL warnings and errors. In that case, add the curl ca certificates to the environment variables, e.g., in osx:
If your system has no SSL_CERT_FILE, you can get one from http://curl.haxx.se/ca/cacert.pem