Development Environment

The Clowder web application is written in Scala and Play.

The awesome people at JetBrains have kindly given us an license for their awesome IntelliJ IDEA, since the project is open source. We love it and are indebted to them for it. Thank you! Some of us also use and love ScalaIDE. Both are great tools for scala developement.

Minimum Requirements

First install required software described here Required Software.

Check out the source code

You will need a Git client to checkout the source code. The code is available at the following url as a collection of git repositories:

Atlassian has kindly given us an open source license to their applications and most of our software development happens using their tools. Thank you!

The repository clowder containes the web frontend and is required. It should be cloned using the following command:

> git clone https://opensource.ncsa.illinois.edu/stash/scm/cats/clowder.git

Most of the other repositories include specific extractors. Basic extractors are available in extractors-core:

> git clone https://opensource.ncsa.illinois.edu/stash/scm/cats/clowder.git

Execute

With the required software in place and the code checked out, first start up MongoDB, then the web frontend.

mongod

The web frontend is setup using the sbt build system. Change directory into the Clowder main directory and run the code using the following command

./sbt run

To have access to other commands enter the sbt shell first and the use one of the many commands available (you can get a list by typing help in the shell). For example, to build the application for deployment type the following:

./sbt
> dist

The default configuration is fine for simple testing, but if you would like to modify any of the settings, you can find the all the configuration files under the /conf directory. The following files are of particular importance:

  • /conf/application.conf includes all the basic configuration entries. For example the MongoDB credentials for deployments where MongoDB has non default configuration.
  • /conf/play.plugins is usesd to turn on and off specific functionality in the system. Plugins specific to Clowder are available under /app/services.
  • /conf/securesocial.conf includes configuration settings for email functionality when signup as well as ways to configure the different identity providers (for example Twitter or Facebook). More information can be found on the securesocial website.