The Customer is Enonic – a Norwegian company with offices in Oslo, San Francisco and Bogota. Established in 1998, the company delivers award-winning Web Content Management solutions based on a flexible and easy-to-use Java product compliant with web standards. The Customer’s client base includes large multinational companies such as Toyota, Posten, Statistics Norway, Gjensidige and Jøtul.
The success of the project was preceded by a persistent hands-on struggle for the right technological solution to ensure a safe and predictable foundation for online presence of any kind.
Upon passing a set of strict tests, 5 ScienceSoft Java Developers were enrolled on the project to augment the Customer’s development team. Although they were mostly to develop the application’s frontend, their ability to easily switch to the backend if needed was of a particular advantage.
The project kicked off with Vaadin – an open source web application framework. Owing to its server-side architecture, it would enable both development teams to focus on their strong suit – Java programming. However, it came out soon that the framework was not flexible enough to create a CMS as dynamic and smooth as it was anticipated.
The Customer decided to try the Ext JS framework. In 1 year, the application’s codebase grew so big that further development and maintenance were next to impossible.
Trying to find the right solution, ScienceSoft and Enonic came up with an idea to develop their own object-oriented framework and apply it with Microsoft’s TypeScript to replace Ext JS entirely. With the unique framework, the Customer managed to protect their API from any unpredictable change as well as enable users to employ the same components that the CMS was developed with. The approach automatically allowed a continuous and efficient testing of the product.
With ScienceSoft team ramped up with a test automation specialist, the development process continued for another 2 years under agile methodologies. Enonic CMS evolved into an easy-to-use and scalable platform that brings in a lot of features to improve user experience significantly:
- Responsive admin UI: it is a single dynamic page that allows users to manage one or dozens of websites simultaneously. No reloading is needed to navigate between documents and applications easily
- Real-time updates: thanks to WebSockets, users can always stay updated on any content modifications made by other users
- Live editing: now it is possible to build and edit layout templates without using HTML code. The tool provides unlimited design options with drag-and-drop components
- Flexible permissioning: all users, be it individuals or groups, can enjoy a simple and secure access to the content
“We have been trying to make user experience as smooth as possible,” says ScienceSoft Lead Java Developer Pavel Milkevich. “This application is a single access point which helps manage unlimited number of websites, so you can avoid hiring administrators and thus reduce maintenance costs considerably. Besides, no programming is required to publish new content.”
In cooperation with ScienceSoft team of 6 specialists, the Customer has released a brand-new CMS called Enonic eXperience Platform to provide the most intuitive and fastest way to create and manage websites, intranets, commerce and mobile solutions for public and private enterprises.
For Morten Øien Eriksen, Enonic CEO and co-founder, eXperience Platform has been the biggest undertaking in the history of Enonic. “The costs are estimated at NOK 50 million. Our goal is to be innovative in all areas of the application and not to follow the path of our competitors. And now we have a platform with a modern and flexible architecture which is years ahead of our competition”, he says.
Throughout 4 years, ScienceSoft’s cooperation with Enonic has grown into a strategic and friendly relationship. “Working with ScienceSoft has enabled us to deliver the project faster and with better quality. Their developers are highly skilled and passionate about the project,” says Morten.
Technologies and Tools
Frameworks & libraries: Vaadin, Ext JS, Gradle, Elasticsearch, Less