Digital Assets Collaboration Platform

Digital Assets Collaboration Platform

Клиент

The customer is an IT company, which has been developing and supporting a Digital Assets Collaboration platform for many years. Their existing and potential clients belong to a wide range of industries interested in powerful and flexible media and document turnover solution with high availability and user-friendly interface for their business needs.

Задача

Asset management process means uploading, storing, providing access and allowing the possibility to exchange opinions about media files and documents. All files in the system are grouped by subjects and rich metadata consisting of both format-specific and basic groups of tags. Subjects are types of products made by the corporation. Each product has a number of features as part of the meta description. The web application has a collection of tags to make the features regulated. It is also possible to create custom tags in addition to vendor-predefined. The tags are organized in different structures — hierarchical and plain. All tags are stored in a MySQL DB and indexed in ElasticSearch as part of file meta descriptions. Application users can discuss subject files by sharing access to the file and adding comments to it. Each action is notified by email to the users that share subject files.

Another point to mention is media processing and streaming functionality for a number of content types. It offers the best user experience in dealing with heavy media content regardless of device characteristics currently used to access the digital workspace and accessing purposes. In other words, the system can store raw videos and photos and automatically transcode them to a predefined set of formats and screen sizes to make available on powerful desktops, mobile devices, laptops, etc.

All information content of the application can be grouped by different levels and methods. All files are grouped into assets. An asset is a unit of information shown in the application for one of the products made by the corporation. An asset can contain a lot of files, their descriptions, comments, discussions, as well as asset's own comments and descriptions enlisted inside a certain subject. Another method to group content is packages. A package is a group of files and assets grouped by a user-defined rule. Every package contains its own list of comments; all selected users get notifications by email.

The application has a very flexible mechanism to make rules of access to content for different groups of users. All users and user groups have a great number of options to create access level types as needed for their current tasks.

Решение

Our team has been taking part in development and maintenance of the platform.

One of the main customer requirements is good performance. Therefore, performance improvement of existing parts of the web application is a permanent task, which goes in parallel with the development of new features. The application is typical Model-View-Controller application, which is supposed to be speeded up with standard load balancing software. Performance improvement includes SQL query optimization, data amount minimization and reducing the amount of data processing steps on the business logic layer.

New development is focused on several parts of the system. The first one is search mechanism improvement. The tag system inner structure was significantly redone to fit ElasticSearch requirements. The second part is rebuilding asset commenting engine. All comments logic became equal for all parts of the system. One more part is developing additional administrative logic for managing users and content settings.

Adobe Flash Player is used for displaying different types of media, such as video, pictures, pdf and so on. Flash Player Annotation tool was also enabled in the application. Therefore, users can add drawing and voice notes during discussions.

Other functionalities implemented by our team:

  • License agreement (terms of service) acceptance tracking for new users.
  • Asset commenting system with private/public functionality and email notifications; private textual conferencing scoped to media content.
  • User activity tracking — logging most important user actions in the app, making “newsfeed” with sensible info for other users based on the collected info.
  • Refactoring across a number of app modules to organize similar functionalities to use same DB tables instead of separate ones.
  • Powerful and fast search system across a large set of metadata based on “tagging” of target items, “tags” structure management subsystem, batch processing of metadata changes, background synchronization with ElasticSearch.
  • Multifactor authentication.
  • Files Upload/Download workflow, connecting with “processing” workflow (metadata grabbing, preview generation, etc.).
  • REST API development for integrating with third-party software.
  • Approval workflow for media uploaded to the system — to ensure providing to public sources “high-quality” content only.
  • Multiple performance optimizations in different parts of the app.

Результаты

The platform enables users to communicate quickly and discuss production issues remotely; organizes millions of media, documents and other sensible information to be easily accessed at any time; takes care of data safety powered by strong role-based access control system and optimizes company effectiveness keeping employees’ digital workspace consistent and responsive. Such possibility raises labor productivity and helps to take well-considered decisions.

Customer benefits from getting quick access to the pool of our high-skilled developers, which enables shorter time-to-market with higher quality of the product.

Технологии

Exam Delivery App
Java Web Application Framework