Getting Started with AIP Development
Welcome aboard. We're so happy you are interested in joining the community of AIP developers. We've tried to make it reasonably straightforward for you to get in and start contributing right away. Please work through this 'getting started' guide and consider also joining the Araport-Developers Google Group. Also, make sure to keep an eye on the Araport Developer Zone for new features and announcements.
If you're coming to our November workshop, we suggest you try to get through installation and configuration of the prerequisites to maximize the time you can spend learning new material.
Acquiring the necessary accounts
You need two sets of credentials to develop AIP content:
Installing and configuring dependencies
The list of requirements to start AIP development is relatively minimal, but you do need a few things installed. You also ought to get comfortable using them! We assume that you are developing in Linux or Mac OS X (because they are UNIX-like), but all of these tools are also available and usable under Windows 7 (or better).
- Agave CLI
- Node.js and npm
- Python + virtual environment, pip
- A good text editor
- Optional: an in-browser REST client
Step 1. git
- Installation - Follow the instructions!
- Configuration - Make sure to run through the setup, too
- Ensure that git is accessible in your $PATH
Step 2. Node.js and npm
Step 3. AgaveAPI command line
git clone https://bitbucket.org/taccaci/foundation-cli # then, add foundation-cli/bin to your PATH
Initialize the Agave CLI tools. You only need to do this once!
tenants-init Please select a tenant from the following list:  araport.org  iplantc.org  irec  vdjserver.org  wso2.agave.staging  xsede.org  xsede.org.staging Your choice : 0 You are now configured to interact with the APIs at https://api.araport.org/
Create an OAuth2 client and cache its key and secret locally. You only need to do this once!
clients-create -S -N araport_cli API username : YOUR_ARAPORT_USERNAME API password: Successfully created client araport_cli key: Q23DP_OASIsWxzwa5Ijh_5tUYw_H secret: pDDGdirnNTsOuW4Yh6EwaCMsU6ga
Step 4. Python + virtual environments and pip
Follow all the steps in the guide for your operating system. After installing virtualenv and pip, install virtualenvwrapper
- Installing Python on Mac OS X
- Installing Python on Linux
- Installing Python on Windows
- Installing virtualenvwrapper
Step 5. Install cURL
Check to see if cURL is on your system already. If it's not, install it using a package manager or by downloading it from the cURL web site. Make sure it's in your $PATH after installation.
Step 6. Choose a text editor
You have many to choose from! If you don't have a favorite yet, might we suggest
- Atom - Free, powerful, extensible, and open source
- Sublime Text - It's 70 bucks but hey, you're on a $2000 laptop, right?
- TextWrangler - Free-as-in-beer and awesome, but Mac OS X only.
- EMACS or vim - Non-GUI editors but extremely flexible
Step 6. Optional REST client
Brushing up on the basics
We've tried to distill down the bare minimum of material needed to create Araport apps and data APIs. If some of this is new, don't worry. You'll get more experience working through the worked example tutorials we will be publishing.
- Git and Github
- Pro Git - Read Chapters 1, 2, 3, and 6
- cURL Tutorial - Read up on at least the followings flags -s -k -u -L -X -F and -H
- Introducing JSON - Make sure you understand JSON syntax
Diving deeper with additional resources
The Araport project stands on the shoulders of giants, so there's a lot of other background or reference material that you might be interested in. Here are a few suggested resources to broaden your knowledge base.
- AIP Developer Zone - Developer HQ for creating AIP apps and services. Home of SDKs, tutorials, examples, and more
- AIP Project Github - For better or worse, it's all out there
- Thalemine User Guide - Start here if you're new to Intermine. API documentation coming soon!
- Jbrowse documentation - Our genome browser of choice
- Simple Daily Git Workflow - Print it out. Tape it up over your desk.
- OAuth2 Simplified - AIP uses OAuth2 for authentication. In addition to our specific documentation, here's an overview.
- JSON Schema - AIP will soon publish and adopt JSON schemas for its data service responses. Here's a primer.
- JSONlint.com - An online JSON Validator
- Roy Fielding's REST Dissertation
- Dillinger Markdown Editor - Handy if you're learning Markdown for the first time
- About Cross-Origin Resource Sharing - AIP provides CORS for all data services, including ones you build with us
- Switching to HTTPS - AIP uses only strong HTTPS for data transfer. Here's how and why we do this.