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 :ref:`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: - https://opensource.ncsa.illinois.edu/bitbucket/projects/CATS `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.