fbpx

Modernization of a Jive-based corporate portal for personal growth

Project summary: any company is a complex system. So, it takes a lot of time to set up a huge number of processes that will ensure its successful operation. To make these processes work correctly, support personnel is required. Therefore, it is difficult to imagine a modern competitive company that lacks tools for the organization of staff training processes and thanks to which the employees cannot share their experience and accumulate it.

The modern market provides a fairly wide range of technological solutions that allow organizing such an opportunity, you just need to choose the most suitable one and adapt it to your needs.

A similar tool was implemented for our customer. It was a portal for personal growth and self-development of employees. The portal is Java EE-based Jive corporate social networking and collaboration system.

Employees can perform the following functions using this portal:

  • Create courses and organize training for other employees.
  • Organize and participate in events (trainings, meetings).
  • Upload to the portal and watch videos from various resources (YouTube).
  • Track news and inform other users about upcoming events using RSS feeds and electronic newsletters.
  • Keep in touch and communicate with other users.

This portal has existed for quite a long time, but ceased to meet the modern requirements and needs of the customer. Our team had to modernize and improve it during the project. The basic tasks are listed below:

  • To upgrade the outdated core. Poor compatibility of the developed code with the new version of Jive, unfinished client and server validation, as well as a number of other, smaller problems.
  • To update the user interface that is not up to date.
  • To provide the ability to upload videos to the portal not only from YouTube. The customer wished to be able to download videos from other popular platforms.
  • To organize the support of multiple languages.
  • Cover the code with Unit tests.

We implemented a new interface based on Freemarker (a template engine for text output dynamic filling) and CSS. In addition, we used DWR (Direct Web Remoting, a Java library that allows the code in the browser to use Java methods running on the server as if they were running in the browser).

We updated the Jive core, ensured its compatibility with the old version, and fixed validation bugs. We also implemented Spring using JAX-WS (Java API for XML Web Services, an interface for web services creation).

We developed a special framework allowing downloading video from different platforms (Vimeo and Yahoo). It makes it possible to add the option of downloading video from different providers. After that we applied this framework in our project.

We introduced the practice of writing Unit tests for any module under development. It allowed the team to quickly find bugs in the future when making changes to the code.

The work on the project was getting complicated by the fact that there was no project source code and our team had to decompile and figure out how the system works.

We also created an additional environment for testing, thereby we were able to prevent bugs from getting to production servers.

The final structure of the portal is shown in Figure 1.

Portal structure

Figure 1 – Portal structure

Technologies:

Programming languages: Java, Javascript, CSS.
Frameworks: Spring IoC, Spring Security, Spring DAO, Apache Struts SiteMesh, Apache CXF.
Infrastructure: Ant, Git, IntelliJ IDEA, Jira, Tomcat.
Test libraries: JUnit 4.
Other libraries: DWR.
Tools: Jive, Freemarker.

Project features:

  • Initially there was no source code and our team had to work through decompilation.
  • The customer set a fairly short deadline for the development.
  • It was required to ensure compatibility of the code developed for the earlier version of Jive with its latest version.

Project results

JazzTeam solved all the assigned tasks working on the project:

  • Completion and adaptation of video download plug-ins (before that it was possible to download only videos from YouTube): now it is possible to download video from two other platforms – Vimeo and Yahoo, and the framework that allows adding new video providers was created.
  • The task related to the improvement of client and server validation was solved, and the bug handling system was improved.
  • The code was covered by Unit tests, which made it possible to quickly find bugs in separate modules of the portal source code after making changes.
  • The support of multiple languages was added.
  • The user interface was redesigned (an improved explanation on the create and edit pages, clear error messages, convenient movement of forms to the top of the page were added).

Company’s achievements during the project:

  • Staging Environment (an environment that is an exact copy of the application used for testing) was proposed and implemented.
  • A framework that allows adding new video providers was implemented.