From 69a531f96176c904f578df6b8dfe91542ddc5013 Mon Sep 17 00:00:00 2001 From: Bastian Greshake Date: Sun, 7 Feb 2016 11:37:47 +0100 Subject: [PATCH] wrote contributing, readme and humanstxt --- CONTRIBUTING.md | 63 ++++++++++++++++++++++++++ INSTALL.md | 60 +++++++++++++++++++++++++ README.md | 112 +++++----------------------------------------- public/humans.txt | 71 +++++++++++++++++++++++++++++ 4 files changed, 206 insertions(+), 100 deletions(-) create mode 100644 CONTRIBUTING.md create mode 100644 INSTALL.md create mode 100644 public/humans.txt diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..bf496ad --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,63 @@ +# Table of contents + +[How to contribute](#how-to-contribute) +[How to submit changes](#how-to-submit-changes) +[Testing](#testing) +[What to work on](#what-to-work-on) +[Request enhancements](#request-enhancements) +[Talk to us](#talk-to-us) +[How the site works](#how-the-site-works) +[Setup](#setup) +[Install Dependencies](#install-dependencies) +[RVM](#rvm) +[Setup Config](#setup-config) +[Initialize Database](#initialize-database) +[Running the server](#running-the-server) +[Last words](#last-words) + +# How to contribute + +Thank you very much for your interest in helping openSNP! We're always happy to see new faces here. To make this a safe and inclusive space there is a [code of conduct for the project](https://github.com/gedankenstuecke/snpr/blob/master/CODE_OF_CONDUCT.md). + +## How to submit changes + +We accept [pull requests](https://help.github.com/articles/using-pull-requests/) via the [GitHub interface](https://github.com/gedankenstuecke/snpr/pull/new/master)! + +We are using rubocop and Travis-CI. After you have submitted the request, rubocop will complain about any style-breaks (and it always complains) while Travis-CI will run all tests in the background to see whether the pull request broke anything. + +## Testing + +Inside snpr/: + +``` +bundle exec rake +``` + +This runs RSpec tests as well as the **legacy** test/unit ones. + +## What to work on + +The [issues page](https://github.com/gedankenstuecke/snpr/issues) has several open issues, some of which are [marked as "easy-first-bugs"](https://github.com/gedankenstuecke/snpr/issues?q=is%3Aopen+is%3Aissue+label%3Aeasy-first-bugs). Some other things to work on: + +- Currently we have two different testing environments - the legacy ones in test/unit, and the RSpec tests. It would be great to have all tests inside RSpec. +- There are many minor style-problems which live in .rubocop_todo.yml inside snpr/. + +## Request enhancements + +Open an issue on the [issues page](https://github.com/gedankenstuecke/snpr/issues), or send a mail to snpr-development@googlegroups.com so we can get the ball rolling! + +## Talk to us + +You can always open an issue for specific problems, or send a mail to snpr-development@googlegroups.com if you want to discuss something or if you have any questions or need help with something. There's also info@opensnp.org if something broke on the webpage itself. + +We're also available on Twitter: + +@gedankenstuecke +@helgerausch +@philippbayer + +Watch this space for a yet-to-be-created IRC channel. + +## Last words + +Thank you very much for your interest in the project and for the help of all volunteers who've helped us so far! There is a [humans.txt](https://github.com/gedankenstuecke/snpr/blob/master/public/humans.txt) where we celebrate all of you. diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..1d99e3f --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,60 @@ +# Installing openSNP +Hello and thanks so much for your interest in running our code! Maybe even to contribute to the project. For more details on this see [CONTRIBUTING.md](https://github.com/gedankenstuecke/snpr/blob/master/CONTRIBUTING.md) + +## How the site works + +The site itself is based on Ruby on Rails (RoR). We usually try to use the newest version, but after major changes in new version RoR it may sometimes take a while for the switch to happen. + +## Setup + +git is needed to download the newest sources: + +``` +git clone git@github.com:gedankenstuecke/snpr.git +``` + +Afterwards you'll have a new folder called "snpr" (it's not opensnp for historical reasons) in which all the files reside. + +## Install Dependencies + +- redis +- hiredis +- postgres + +Depending on your operating system these are installed in different ways. + +### RVM + +It's easier to use [RVM](https://rvm.io/) to handle different Ruby versions, and the repository has all necessary files so that a new installation of RVM should find what it needs to download and install. There is an installation manual on the RVM homepage. After a successful installation and once you cd into the snpr/ directory, RVM should say something +about installing the necessary Ruby version. + +## Setup Config + +All configuration is done via environment variables. A file with a +working environment for development can be found at `.env.example`. +Simply copy it to `.env` to use it as is. The +[dotenv](https://github.com/bkeepers/dotenv) gem will pick it up +and set the environment variables. + +Copy `config/database.yml.example` to `config/database.yml` and adapt to +your database setup if needed (note: it's not needed on my Fedora machine, experience may vary). + +## Initialize Database + +``` +bundle exec rake db:setup +``` + +## Running the server + +For development there's a small bash script called `serverscript` which starts the Rails server, the Redis server as well as the Sidekiq workers. + +``` +bash serverscript.sh +``` + +There are many background tasks which live in app/workers, such as file parsing or talking to various APIs, which are handled by Sidekiq workers. You can monitor the sidekiq-workers on [localhost:3000/sidekiq](http://localhost:3000/sidekiq) (useful in killing leftover tasks) once sidekiq is up and running. + +## Last words + +Thank you very much for your interest in the project and for the help of all volunteers who've helped us so far! There is a humans.txt where we celebrate all of you. diff --git a/README.md b/README.md index 40503d7..6faa779 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # openSNP [![Build Status](https://travis-ci.org/gedankenstuecke/snpr.svg?branch=master)](https://travis-ci.org/gedankenstuecke/snpr) -a repository to which users can upload their SNP-sets (and exome-VCFs) from +Hello! [openSNP.org](https://opensnp.org) is a repository to which users can upload their SNP-sets (and exome-VCFs) from 23andme, deCODEme, FamilyTreeDNA, AncestryDNA and IYG-format (for participants of EBI genotyping). On upload, SNPs are annotated using the PLoS and Mendeley-APIs to show users the newest scientific research results on their @@ -9,108 +9,20 @@ according to how many results could be gathered for SNPedia, PLoS and Mendeley (in that order). Users can send each other private messages as well as comment on SNPs and Phenotypes. -Users can enter phenotypes to assist future research. Search is handled using -postgres directly via pg_search. +## Installing openSNP +Please see [INSTALL.md](https://github.com/gedankenstuecke/snpr/blob/master/INSTALL.md) for more detailed instructions on how to run and setup openSNP. -RSS-feeds are provided for uploaded genotypes and new publications. +## Contributing to openSNP -You can monitor the sidekiq-workers on -[localhost:3000/sidekiq](http://localhost:3000/sidekiq) (useful in killing -leftover tasks) +Please see [CONTRIBUTING.md](https://github.com/gedankenstuecke/snpr/blob/master/CONTRIBUTING.md) for more detailed instructions on how to contribute. -To load all standard achievements into the database run +## Getting in contact +You can always open an issue for specific problems, or send a mail to snpr-development@googlegroups.com if you want to discuss something or if you have any questions or need help with something. There's also info@opensnp.org if something broke on the webpage itself. -``` -rake db:seed OR rake db:setup (which also sets up the entire db) -``` +We're also available on Twitter: -# Getting Started +@gedankenstuecke +@helgerausch +@philippbayer -## Install Dependencies - -- redis -- hiredis -- postgres - -## Setup Config - -All configuration is done via environment variables. A file with a -working environment for development can be found at `.env.example`. -Simply copy it to `.env` to use it as is. The -[dotenv](https://github.com/bkeepers/dotenv) gem will pick it up -and set the environment variables. - -Copy `config/database.yml.example` to `config/database.yml` and adapt to -your database setup. - -## Initialize Database - -``` -bundle exec rake db:setup -``` - -## Run Tests - -``` -bundle exec rake -``` -This runs RSpec tests as well as the **legacy** test/unit ones. - -# Usage - -You need to have the following running to ensure that everything works: - -``` -redis-server - -sidekiq -q preparse,2 -q parse,2 -q deletegenotype -q fitbit -q fixphenotypes -q frequency -q genomegov -q mailnewgenotype -q mendeley_details -q mendeley -q pgp -q plos_details -q plos -q zipfulldata -q snpedia -q zipgenotyping -C config/sidekiq.yml -e development - -rails s(erver) -``` - -Note: "serverscript" starts all these in detached screen-sessions. - -To see all rake-tasks: - -``` -rake -vT -``` - -# Deployment - -Deployment is handled via capistrano (thanks Helge!). The most important capistrano tasks: - -``` -cap deploy -``` - -deploys the newest version to production. - -``` -cap sidekiq:{start,stop,restart} -``` - -handles the Sidekiq workers. Has to be started on reboot! - -# Dependencies - -For Fedora 19: - -``` -yum install postgresql postgresql-devel hiredis hiredis-devel libxslt-devel libxslt libxml2 libxml2-devel -``` - -# Contribute - -If you want to contribute to openSNP, you are more than welcome to do so: - -* There's a [code of conduct](https://github.com/gedankenstuecke/snpr/blob/master/CODE_OF_CONDUCT.md) which lines out how we intereact with each other. -* We use [the issue tracker at GitHub](https://github.com/gedankenstuecke/snpr/issues) - for everything that needs to be done. And there is the [mailing list](https://groups.google.com/forum/#!forum/snpr-development) which we use for discuss running openSNP.org and other issues not directly related to the code-base. -* Running `rake notes` may give you some hints about things that can be - improved. -* In order to help improving the overall code style, take a look into - `.rubocop_todo.yml`. In order to learn what it is all about take a - look at [rubocop](https://github.com/bbatsov/rubocop) and specifically - [this section of the README](https://github.com/bbatsov/rubocop#automatically-generated-configuration) - to learn more about it. +Watch this space for a yet-to-be-created IRC channel. diff --git a/public/humans.txt b/public/humans.txt new file mode 100644 index 0000000..6722999 --- /dev/null +++ b/public/humans.txt @@ -0,0 +1,71 @@ +# _____ _ _ _____ +# / ____| \ | | __ \ +# ___ _ __ ___ _ __ | (___ | \| | |__) | +# / _ \| '_ \ / _ \ '_ \ \___ \| . ` | ___/ +# | (_) | |_) | __/ | | |____) | |\ | | +# \___/| .__/ \___|_| |_|_____/|_| \_|_| +# | | +# |_| + +/* TEAM /* + Philipp Bayer + Contact: philippbay@gmail.com + Site: philipp-bayer.net + Twitter: @philippbayer + Location: Perth, Australia + + Bastian Greshake + Contact: bgreshake@gmail.com + Site: ruleofthirds.de + Twitter: @gedankenstuecke + Location: Frankfurt, Germany + + Helge Rausch + Contact: helge@rausch.io + Twitter: @helgerausch + Location: Berlin, Germany + +/* Contributors /* + Calvyn82 (https://github.com/Calvyn82) + djab (https://github.com/djab) + Austin Davis-Richardson (https://github.com/audy) + Stephanie Smith-Unna (https://github.com/Treblesteph) + +/* THANKS /* + Fabian Zimmer (logo-designer!) + Madeleine Ball + John Wilbanks + Julia Reda + Lore Mroz + Scott Chamberlain + Caroline Brix + Nikolay Kolev + Marcel Salathe + Emanuel Moura + Thomas Landrain + Philip Brechler + Samantha Clark + Beau Gunderson + Thomas Schiewerling + Rhonda Lea Kirk Fries + Tom Hodder + Niclas Deißler + Niels Muenck + Cathal Garvey + Tristan + Daniel Ford + Ben Creasy + Mark Atwood + Albert Manson + Divya Mistry + Sergey + Nick + Brian Degger + Malin + Joerg Rings + +/* SITE /* + Where: https://opensnp.org + Last Update: 2016-02-07 + Standards: HTML5, CSS + Components: Ruby on Rails, Bootstrap, jQuery