Englo

Englo - A Projects Software Management and Delivery Tool

Download .zip Download .tar.gz View on GitHub

Description

Englo is a tool to manage and deliver software projects. It’s based on Entando, an Open Source web application platform, written in Java (see Entando's Github Repositories).

Features

Englo system includes two modules: englo-portal and englo-entando-components. englo-portal is able to run all the services generated from englo-entando-components module, that includes englo, basecamp, trello, github, jenkins apps.

Getting Started

  • Open your terminal
  • Create an empty directory for your project:
mkdir ~/my_project
  • Move to a directory of your choosing:
cd ~/my_project
git clone https://github.com/entando/entando-core
git clone https://github.com/entando/entando-components
  • Install entando-core and entando-components (Entando v4.2-TP1) in the following sequence, (see Entando Installation):
cd entando-core
mvn clean install -DskipTests
cd entando-components 
mvn clean install -DskipTests
  • Clone the englo project:
git clone https://github.com/entando/englo

Englo project includes two modules:

  1. englo-portal, able to run all the services generated by all the installed components
  2. englo-entando-components includes all Entando components project with the newly created plugins:
    jpenglo, jpbasecamp, jptrello, jpgithub, jpjenkins, jpoauth2

  • Install englo-entando-components
cd englo-entando-components 
mvn clean install -DskipTests

englo-portal can be run using either Tomcat or Jetty. If you are using Jetty, enter in the englo-portal folder and run:

mvn clean jetty: run

Entando-Trello: A Struts2-Angular JS combination

Entando integrates Trello, a collaboration tool that organizes your projects into boards. In one glance, Trello help you to control what's being worked on, who's working on what, and where something is in a process. This web application is developed by using Struts2 that is used for back-end (structure of Interceptor Stacks, namespaces, actions), AngularJS used for front-end frameworks.

Example: HttpRequest of Boards List

  1. The Client performs HTTPRequest to get of the List of Boards;
  2. The Action "jsonboard" is triggered and invokes the Manager to obtains the list;
  3. The Manager returns a JSON output to the Action which, in turn, returns to the list (JSON result) to the Client;

The Result of the Request is a JSON. The Result Type is Stream Result with the following parameters:

  • contentType is JSON application;
  • contentDisposition is inline for the file name boards.json;
  • bufferSize` is the size of the buffer to copy from input to output (default = 1024).
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts> 

<package name="jptrello_do/FrontEnd/jptrelloFront/Boards" namespace="/do/FrontEnd/jptrello/Boards" extends="entando-front-default">

<action name="jsonboards" class="jptrelloTrelloFrontEndAction" method="jsonboards">
 <!-- <result type="dispatcher">/WEB-INF/plugins/jptrello/aps/jsp/internalservlet/trello/frontend-trello-angular-boards- json.jsp</result> -->
       <result type="stream">
            <param name="contentType">application/json</param>
            <param name="contentDisposition">inline;filename="boards.json"</param>
            <param name="bufferSize">1024</param>
       </result>
            <interceptor-ref name="entandoFrontEndFreeStack"></interceptor-ref>
        </action>  

A Result example is like this:

{
  "list": [
    {
      "name": "To Do",
      "id": "56196ccede7b2cfe172b94ed"
    },
    {
      "name": "Doing",
      "id": "56196ccede7b2cfe172b94ee"
    },
    {
      "name": "Done",
      "id": "56196ccede7b2cfe172b94ef"
    }
  ]
}