About Client
The client is a global leader in Music rights administration, offering comprehensive services in copyright research, music license management, royalty reporting, and strategic consulting. They cater to a wide range of industries, including digital music services, record labels, television stations, broadcasters (both terrestrial and satellite), social networks, user-generated content platforms, and consumer products companies.
Business Goals & Specifications
- Client Onboarding Process
- A streamlined client onboarding process needs to be developed. This process should be easily customizable by non-technical users, facilitating an efficient setup and integration.
- Dedicated Client Sites
- Each client will have a dedicated site within the Music License Management Portal, where they can log in and manage their data, including reports and documents. This setup ensures personalized data management and access.
- Data Visualization
- The system must provide a visual representation of the data on the client dashboard, enabling intuitive insights and effective decision-making.
- Secure Payment Gateway
- A secure payment gateway is required to handle royalty fee transactions securely, ensuring all financial operations are conducted with high security.
- Third-Party Integration
- The portal should support integration with third-party systems, including various databases, to ensure smooth data exchange and enhance operational efficiency.
- Bulk Data Upload
- A bulk upload feature is necessary for managing large volumes of data effectively, facilitating smooth data migration and management within the Music Royalty Management System.
- Conflict Resolution
- Functionality to resolve conflicts between clients should be developed, ensuring effective management of any issues that arise.
- Onboarding Status Tracking
- Users associated with a client should be able to check the status of onboarding processes, offering transparency and tracking capabilities.
- Secure Login with MFA
- A secure login with Multi-Factor Authentication (MFA) is required for external users to protect sensitive information and enhance overall security.
Implemented Features & Capabilities
- Multi-Factor Authentication : Implemented Google Authenticator for signing in, with user authentication and access control managed by Liferay and integrated with OpenID Connect.
- Picklist Management : Configured support for both Admin action-based and scheduled picklist loading.
- Client-Specific Sites : We developed dedicated sites and folder structures for each client.
- Error Handling : Comprehensive error handling is implemented on both the frontend and backend during file processing.
- Client Site Creation : Allows clients to create sites for their own clients, with current users and organizations imported from the LDAP directory.
- Data Management : Picklist data is sourced from the backend dictionary table, with Elasticsearch (ES) utilized for handling large tables.
- File Uploads : Supports direct data file uploads, including creating and mapping objects to the master object via backend APIs, and bulk CSV uploads to the client object.
- Real-Time Notifications : Integrated a Kinesis stream to enable users to receive real-time messages and notifications.
- Workflow Management : Implements parent-child workflows with the ability to initiate workflows manually or through file uploads, and approve or reject workflows for file upload processes.
- Dynamic Tabs : Tabs can be generated dynamically based on specific actions.
- Notification System : Sends notifications to users via email and Liferay notifications across various instances.
- Centralized Logging : Maintains a centralized logging system in a clustered environment.
- Low-Code/No-Code Development : Utilizes Liferay’s low code/no code capabilities to quickly develop and customize functionalities.
- Clustered Environment : The dev cluster environment consists of 3 nodes, with one always serving as the master. If the master node fails, the other nodes can take over until a new master is elected or the original master is restored.
- Data Ownership and Conflict Management : Implemented a workflow managed by the Copyright Research Supervisor for handling data conflicts, including mediation and document submission processes.
- Document Submission and Ownership : If the Original Claimant submits documents within a specified time, the Supervisor notifies the new claimant to submit their documents; otherwise, the new claimant becomes the content owner. If both parties submit documents, the conflict is resolved externally, with the Supervisor maintaining an entry on the website.
- Scheduler Management : Manages submission durations via a ‘scheduler’, utilizing Liferay workflows.
- Document and Media Management : Extends Liferay’s out-of-the-box document and media folder functionality for uploading and maintaining documents.
Technology Components & Implementations
- Liferay CE Portal 7.4 GA 4 : Utilized as the core platform for the portal, leveraging custom entities and integrating workflows and indexers.
- Custom Entities and Workflow : Developed custom entities with integrated workflows and indexers to enhance functionality.
- SMTP Configuration : Configured SMTP for implementing email notifications, ensuring reliable communication.
- LDAP Integration : Enabled user logins with company email addresses through LDAP, streamlining access.
- Elastic Search : Employed to improve performance and logging capabilities.
- Aurora MySQL :Used as the multi-node database, providing robust data management.
- AWS : Leveraged for maintaining the cluster and deploying JAR files, ensuring scalable infrastructure.
- React JS : Developed the front end of the web application, enhancing user interface dynamics.
- React Testing Library and Jest : Conducted unit testing for front-end code to ensure functionality and quality.
- SonarQube : Implemented for testing back-end code, ensuring high code quality and reliability.
- Material UI : Used for building components in React, improving the visual design of the application.
- Apollo Client and GraphQL : Facilitated communication between the front end and back end.
- Message Bus : Enabled communication between various modules and services.
- Google Authenticator : Integrated for secure user authentication.
- Kinesis : Utilized for streaming messages and notifications to users in real-time.
- Kibana : Implemented for data visualization, providing valuable insights into application data.
- PgSync : Used to synchronize data from Postgres to Elasticsearch, improving data accessibility.
- HashRouter : Implemented for client-side routing in the web application, enhancing navigation.
- Figma : Used for designing and prototyping the user interface, ensuring a user-friendly experience.
- Docker : Leveraged for containerizing applications, ensuring consistent environments across development, testing, and production.