Developer Onboarding - Relief-1/Relief1 GitHub Wiki

Developer Onboarding

The importance of Relief1 and Development Quality.

Relief1’s mission is to deliver a permanent service that will provide the information and tools needed by those impacted by disasters, volunteers, organizations and governmental agencies. To accomplish this, we must provide a service that is:

  • fault-tolerant

  • reliable

  • secure

  • high performance

  • scalable

  • well tested

To reach our goal we will strive for the highest quality work possible. The importance of our mission cannot be underestimated. We aren’t saying this to scare you, but to convey the importance of the cause and the standard of excellence that we desire.

We want you if:

  • you’re a person of integrity

  • you will give respect to those on the team

  • you work well with others

  • you will be a standard of excellence

  • you will raise the bar for those around you

By being a part of the Relief1 team, you will help make a difference in the life of a mother looking to reconnect with a missing daughter, a father who’s searching for shelter for his family, and a son in need of food to eat and clothes that fit.

With your aid and support, Relief1 will become a reality.

##Language

Currently, we are using server-side JavaScript on top of node.js to build Relief1. Our goal is to build a fault-tolerant, scalable, fast and secure system using node.js as the backbone of the service. JavaScript has been around for quite some time, there are many resources on the language and best of all, many people know it. We hope to leverage to our advantage the large pool of potential developers that know JavaScript as well as the promising technology that is node.js.

Want to learn more about JavaScript and node.js? We are collecting a list of articles, books, links and tutorials to help you get up to speed quickly.

Instructions for Getting Setup

Operating System

Windows: Start at step 1

Mac: Make sure you have the following installed:

  • Brew - /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

  • Xcode - Found on OS Install DVD or the App store on Lion

  • Start at step 3

Linux & FreeBSD: Start at step 3

Steps for getting started developing with Relief1

Step 1: Download & Install Virtual Box - https://www.virtualbox.org/wiki/Downloads

Step 2: Download & Install Ubuntu 11.04 - http://www.ubuntu.com/download/ubuntu/download

Step 3: Install Git

  • Debian/Ubuntu - sudo apt-get install git

  • Fedora - sudo yum install git

  • Brew - sudo brew install git

Step 4: Install OpenSSL Dev

  • Debian / Ubuntu - sudo apt-get install libssl-dev

  • Fedora - sudo yum install libssl-dev

Step 5: Install Node.js Stable

Step 6: Install Curl (if necessary)

Step 7: Install NPM (Node Package Manager)

##Setting up Git & GitHub

Step 1: Setup a GitHub account if you haven’t already - https://github.com/signup/free

Step 2: Fork Relief-1 to your repository - http://help.github.com/fork-a-repo/

Step 3: Setting up Git to work with GitHub

Step 4: Git Reference - http://gitref.org/

Relief1 Programming Standard Operating Procedures

Javascript Coding Style Guide: Link

Git Work Flow: http://nvie.com/posts/a-successful-git-branching-model/

Note: Our integration branch is master.

List of Stories/Issues: https://www.assembla.com/spaces/relief1/tickets?id=abvG8uLPqr4jqzeJe5cbLr

  1. Fork - http://help.github.com/fork-a-repo/

  2. Create a branch with some meaningful name.

  3. Select a story/issue to work on.

  4. Hack (tests for new features are appreciated)!

  5. Verify that the tests are still passing (nodeunit test).

  6. Commit.

  7. Push.

  8. Pull request.

  9. Update ticket with new status


Contributors: Maciej Malecki, Carter Leffen