HTML JavaScript Ruby CSS Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app Merge remote-tracking branch 'origin/staging' Jun 18, 2018
bin add delayed_job for background task processing Feb 10, 2015
config add app role to enable passenger restart May 23, 2018
db Merge remote-tracking branch 'origin/staging' into acmg_codes Feb 26, 2018
debian update debian packaging stuff Nov 16, 2017
import import all four brances of the sequence ontology Aug 5, 2016
lib Merge remote-tracking branch 'origin/master' into phenotypes Feb 7, 2018
log initial skeleton with test oauth implementation Aug 5, 2014
misc_scripts create misc_scripts directory for one off scripts Feb 24, 2016
public new frontend build May 17, 2018
spec Use correct @user Jun 11, 2018
text Renamed Links.html to List.html Apr 18, 2017
vendor/assets initial skeleton with test oauth implementation Aug 5, 2014
.codeclimate.yml update config May 1, 2015
.coveralls.yml initial skeleton with test oauth implementation Aug 5, 2014
.gitignore ignore all db/sql files in dev env May 24, 2018
.rspec initial tests for session prototype Aug 5, 2014
.travis.yml Update ruby version for travis Jun 21, 2018
CHANGELOG.md new frontend build Sep 30, 2016
Capfile disable asset compilation in cap Feb 19, 2018
Civic Database Schema (no fields).pdf Added database schema PDFs Jul 21, 2016
Civic Database Schema.pdf Added database schema PDFs Jul 21, 2016
Gemfile Update omniauth versions Jun 18, 2018
Gemfile.lock Update omniauth versions Jun 18, 2018
LICENSE new versions of the software licensed under MIT Feb 17, 2015
README.md Update README.md Jun 11, 2018
Rakefile initial skeleton with test oauth implementation Aug 5, 2014
config.ru initial skeleton with test oauth implementation Aug 5, 2014

README.md

CIViC - Clinical Interpretation of Variants in Cancer

Code Climate Coverage Status

This repository contains the server component of the CIViC. It is a Ruby on Rails application that serves JSON data to power the frontend website and API.

Setup

Developing for CIViC involves setting up a development environment.

To get started quickly, we recommend launching an AWS EC2 instance from our pre-configured and maintained AMI (getting started wiki page). Alternatively, you may set up your own local development environment using the following setup instructions.

Prerequisites

Before attempting to install the CIViC server and client software, you should obtain the following applications and libraries:

  • A relatively modern Ruby (>= 2.1)
    • If your OS doesn't ship with a modern Ruby, you can use rbenv and ruby-build to obtain it.
  • Postgres
  • NodeJS
  • npm
  • libxml2
  • libxslt
  • libpq-dev
  • openssl

On OSX with homebrew, this should install the needed library dependencies:

brew install libxml2 libxslt openssl postgres node

Installation

The following will set up the server side application and load the database schema.

git clone https://github.com/griffithlab/civic-server.git
cd civic-server
gem install bundler
rbenv rehash
bundle install
rbenv rehash
rake db:create
rake db:migrate

For convenience, a sanitized version of a recent database backup is provided for your local development environment. You can load it with the following command:

rake civic:load[force]

Finally, start the CIViC rails server

rails s

If you only intend to do server development, you can stop here. The server repository already contains the most recent production build of the frontend javascript. You can load CIViC in your browser at http://127.0.0.1:3000.

If you intend to develop front end features however, you'll need to set up the client side application using the following:

git clone https://github.com/griffithlab/civic-client.git
cd civic-client
npm install -g bower gulp
npm install
bower install
gulp serve

You should now be able to access the backend server at http://127.0.0.1:3000 and the frontend application at http://127.0.0.1:3001

Note that certain tasks needed by a running instance of CIViC are accomplished by 'background workers'. This includes data release generation as well as notification delivery.

You can start the workers in the background with the following command:

bin/delayed_job start 

If you would prefer the workers to run in the foreground you can start them in a console (rails c) with this command instead:

Delayed::Worker.new.start

Note to make yourself an admin in a local install you can do the following from your civic-server repo. First log into the front end http://127.0.0.1:3001 and sign in with your user. Log into a rails console, run a command that makes you an admin in the db, and exit.

rails c
User.find_by(email: 'your_email@example.com').make_admin!
exit

Now log into the backend admin interface as follows: http://127.0.0.1:3000/admin

Git repositories related to the CIViC project

The CIViC source code and application are organized in a client-server model. The backend code is available in the civic-server repository and frontend code is available in the civic-client repository. Issues relating to curation are tracked in the civic-curation repository. An example of a Python client is available in the civic-api-client repository. Issues relating to public CIViC meetings are tracked in the civic-meeting repository.