Development Guide - datascience/c3po GitHub Wiki

Developers Guide

This is a short development guide that offers some insights into the structure and architecture of C3PO. If you want to contribute or develop your own features, take a look here.

Want to contribute

Well, thank You! You are awesome! First, fork this repository and clone your fork. Afterwards finish reading this guide and start hacking. If you have any questions please contact me. Also, if you find any issues, please report them here in this repository (issues are enabled).

Project Structure

C3PO is built and organised with Maven. Well, most of it. Here is the current structure.

c3po 
|-- c3po-api
|-- c3po-core
|-- c3po-cmd
|-- c3po-webapi

Build

In order to build the app use sbt clean compile assembly. This will create a jar with dependencies in the target folder.

Run

To run the web-app, execute sbt "project c3po-webapi" run from the root folder.

Debug

To debug the app, execute sbt "project c3po-webapi" run with the following VM params:

-Xms512M -Xmx1024M -Xss1M -XX:+CMSClassUnloadingEnabled -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

Intellij Idea is able to connect to the debug session automatically (no remote debugging needed).

All changes you make to any component of C3PO are automatically compiled upon refresh.