- Create a new virtualenv environment (name `project_name`-env)- Installs Django- Creates a starter project using the built-in Harvest template- Installs the base dependencies- Syncs and migrates a SQLite database, this requires you to answer a coupleprompts (unless `--no-input` is passed)- Collects the static CSS and JavaScript files (mainly due to Cilantro)- Prints out a message to perform a couple commands in your shell

**Arguments**

`project_name` - The name of the project which must be a valid Pythonidentifier since it will be an importable Python package. This means it canonly contain alphanumeric characters and underscores and cannot start with anumber, such as `myproject`, `my_project`, and `project1`, but not `1project`,`my-project` or `-myproject`.

**Options**

`--verbose` - Pass to get all output printed to stdout. Multiple flags can bepassed to increase the verbosity, e.g. `-vv`.

`--no-env` - Pass to prevent creating a virtualenv. If set, it is assumed thevirtualenv is active prior to running this command to ensure dependencies areinstalled in the correct site-packages directory.

`--no-input` - Pass to prevent being prompted during the setup. Thiscurrently includes the prompt for setting up a superuser during the databasesync. This is primarily useful for performing scripted builds.

`--template` - Specify a template to base your Harvest application on. Bydefault `harvest init` will base its build off of`https://github.com/cbmi/harvest-template`. By passing a URL to this option`harvest init` will attempt to bootstrap the project based on the endpointspecified. Additionally, if your provided template contains a Fabric fabfilecontaining a `harvest_bootstrap` task the init command will offload allbootstrapping tasks beyond creating the virtualenv and installing ofdependencies to the `harvest_bootstrap` task. This could be useful in situationswhere further assumptions can be made about a new Harvest deployment(i.e. containerization, use of a specific DB, specific Django models, etc.).

`--venv-wrap` - If you are using virtualenvwrapper to handle your python virtualenvironments you can set this flag to create a virtualenv in accordance withthe conventions of that utility -- The name of your environment will correspondto your project name and will be created in the directory specified by the`WORKON_HOME` environment variable.

**Post-Setup**

After creating a new Harvest project, the next step is to define a few Djangomodels. Run `python bin/manage.py avocado check` to see what needs to befurther setup as well as optional settings and dependencies that can beinstalled.

### Update Harvest

This command updates itself to the lastest stable version from PyPi.

```bash$ harvest update```

### Install Demo

This command installs one of the Harvest demos.

```bash$ harvest init-demo [--verbose] [--no-env] demo_name```

**Arguments**

`demo_name` - The name of an available demo which is currently only `openmrs`.

**Options**

`--verbose` - Pass to get all output printed to stdout. Multiple flags can bepassed to increase the verbosity, e.g. `-vv`.

`--no-env` - Pass to prevent creating a virtualenv. If set, it is assumed thevirtualenv is active prior to running this command to ensure dependencies areinstalled in the correct site-packages directory.