Skip to content

Development Guide

Morgan Guimard edited this page Jun 24, 2016 · 38 revisions

This page describes the intricacies of DocDokuPLM development.

Code Convention

To know DocDoku coding convention look at [Code Convention](Code Convention).

DocDokuPLM web client

By "DocDokuPLM web client" we mean the web based (HTML UI) front-end. Since DocDokuPLM is a modular platform, the software core engine and the web UI are two distinct components.

Prerequisites

  • DocDokuPLM server (core engine)
  • node >= 4.2.6
  • npm
  • git
  • nginx (or other proxy capable software)

Node modules required as global: grunt-cli bower. To install them run (may requires sudo on linux)

npm install -g grunt-cli bower

Proxy example configuration

We commonly use nginx for the project, here is the configuration

HTTP

server {
    listen 8989;
    server_name localhost;	

    # Static grunt server
    location / {
        proxy_pass  http://localhost:9001;
    }

    # Webservices REST
    location /api {
        proxy_pass  http://localhost:8080;
    }    

    # Websocket application
    location /mainChannelSocket {
        proxy_pass http://localhost:8080/mainChannelSocket;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";	
        proxy_read_timeout 7200s;
    }
}

HTTPS

server {
    listen 8787;
    server_name localhost;

    # SSL Configuration
    ssl on;
    ssl_certificate     /path/to/local.crt;
    ssl_certificate_key    /path/to/local.key;

    # Static grunt server
    location / {
        proxy_pass  http://localhost:9001;
    }

    # Webservices REST
    location /api {
    proxy_pass  https://localhost:8181;
    }    

    # Websocket application
    location /mainChannelSocket {
        proxy_pass https://localhost:8181/mainChannelSocket;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";	
        proxy_read_timeout 7200s;
    }
}

Grunt commands

Once all is ready you can run the following commands:

  • npm start: alias for 'npm install && bower install && grunt deploy'
  • grunt deploy: build and deploy the entire webapp on a running docdokuplm server
  • grunt build: build all modules
  • grunt serve: serve the application files on port 9001
  • grunt copy:webapp: copy all built files to the server
  • grunt clean:webapp: remove all deployed files
Clone this wiki locally