camunda Webapp
This is the camunda BPM webapplication backend and assembly. Clean, package and install it via Maven.
Structure of this project
The structure is as follows:
core
- camunda core application and plugin infrastructurewebapp
- camunda web applicationdistro/{container}
- projects that produce camunda web application for the different bpm platform containers
Webapps
They are 3 webapps available for the camunda BPM platform, they are:
- cockpit: is an administration interface for the processes
- tasklist: provides an interface to process user tasks
- admin: is used to administer users, groups and their authorizations
The webapps above are relying on 2 libraries:
- JS SDK: provides tools for developers who want interact with the platform using Javascript
- commons: is a set of shared scripts, templates and assets, used in the different webapps
Cockpit
Plugins
Parts of the cockpit application may be extended using plugins. The aim of these plugins is to provide the application with additional views on process engines provided by a camunda BPM platform installation.
See plugin development guide for details.
Tasklist
Admin
Libraries
JS SDK
Has tools to work with the REST API and forms.
Commons
Contains resources like images, .less
stylesheets as well as some angular.js modules and locales for the translation of the Tasklist interface texts.
Development
Prerequisite
You need node.js - we recommend using nvm to install node.js.
You will also need to install grunt globally using npm install -g grunt-cli
.
Setup
Adjusting Maven Settings
See https://github.com/camunda/camunda-bpm-platform#building-camunda-bpm-platform
Using grunt
They are some grunt tasks aimed to ease the development setup process, but they can not be considered as stable and might do some mess with your NPM linking (at least with the camunda related packages).
To give it a try:
Setup step:
# cd <path to your workspace>
git clone git@github.com:camunda/camunda-bpm-webapp.git
cd camunda-bpm-webapp/
npm install
grunt setup
Working:
# cd <path to your workspace>/camunda-bpm-webapp
grunt
You can additionally use the --update option (who will refresh the maven dependencies).
By hands
Depending on your needs, you might want to clone the following repositories:
# cd <path to your workspace>
git clone git@github.com:camunda/camunda-bpm-webapp.git
git clone git@github.com:camunda/camunda-commons-ui.git
git clone git@github.com:camunda/camunda-bpm-sdk-js.git
git clone git@github.com:camunda/camunda-tasklist-ui.git
git clone git@github.com:camunda/camunda-admin-ui.git
git clone git@github.com:camunda/camunda-cockpit-ui.git
git clone git@github.com:camunda/camunda-cockpit-plugin-base.git
To ease development and provide live-reloading, you can link the projects as follow:
# cd <path to your workspace>
cd camunda-bpm-sdk-js
npm link
cd ..
cd camunda-commons-ui
npm link
cd ..
cd camunda-cockpit-ui
npm link
npm link camunda-commons-ui
npm link camunda-bpm-sdk-js
cd ..
cd camunda-tasklist-ui
npm link
npm link camunda-commons-ui
npm link camunda-bpm-sdk-js
cd ..
cd camunda-admin-ui
npm link
npm link camunda-commons-ui
npm link camunda-bpm-sdk-js
cd ..
Note: if you do not link the projects, you will have to run npm install
in each of them.
From the camunda-bpm-webapp
directory:
# might (or not) be needed
cd ../camunda-cockpit-plugin-base
mvn clean install
cd ../camunda-bpm-webapp
cd webapp
mvn clean install jetty:run -Pdevelop,livereload
The webapps are then available pointing a browser at http://localhost:8080
You can now start developing using the ./node_modules/grunt-cli/bin/grunt auto-build
command in the directories (you need a separate terminal/process for each of them)
camunda-cockpit-ui
camunda-tasklist-ui
camunda-admin-ui
camunda-bpm-sdk-js
If you made the linking, the pages in your browser should reload when a change is made to the scripts of those projects.
Browsers support
The supported browsers are:
- Chrome
- Firefox
- Internet Explorer 9+
Contributing
You are more than welcome to take part on the development of this project!
Issues
You can submit issues in the camunda Jira.
Coding
Clone the repository, add, fix or improve and send us a pull request. But please take care about the commit messages, our conventions can be found here.
Coding style guide
In place of a guide, just follow the formatting of existing code (and / or use the .editorconfig files provided).
Help and support
- Documentation
- Stackoverflow
- Google groups for users and developers
Authors
- Daniel meyerdan Meyer - @meyerdan
- Valentin zeropaper Vago - @zeropaper
- Nico Nikku Rehwaldt - @nrehwaldt
- Sebastian Stamm - @seb_stamm
License
Unless otherwise specified this project is licensed under Apache License Version 2.0.