A very prominent client - a major league sports organization - was looking for a compilation of cloud applications that could help them perform various data-heavy tasks in the background, get them insights if any player got injured, manage equipment inventory, and gain overall information about the happenings in the club.
About the Project
The client wanted something that could ease their way and make their work more efficient and less time-consuming. They were basically looking at three major projects: The first one was Data Task Scheduler, a serverless cloud application that used a variety of AWS services, including ECS, Lambda, Batch, and Glue, to carry out a wide range of data-intensive operations in the background. The second one was an Injury Reduction Platform, a tool for collecting data on injuries sustained by players that could also track equipment inventory and ranking, and also managed play sessions. The last one was a Data & Analytics Portal that provided all of the sports clubs with a centralized location from which the client could access data and analytics related to both the club and games.
1. Data Task Scheduler
For the Data Task Scheduler, it was challenging to implement a serverless architecture with a chart as a sequence of tasks. The client also wanted to implement a calendar that could seamlessly run data-heavy task chains in the background.
Another challenge was to integrate various AWS services to run tasks without knowing actual task descriptions to create tasks in different languages and technologies supported by the AWS services.
The last challenge for the Data Task Scheduler was real-time task status monitoring across several AWS services. Some of them relied on data extraction from logs instead of providing direct task progress updates.
The expert team of AllianceTek deployed a solution for every Data Task Scheduler challenge, which went something like:
- To accommodate this hierarchical task chain model, we adapted a pre-existing charting library (organizational chart).
- We used an existing library of a background work scheduler that offers permanent storage, is extremely stable and distributed, and very efficiently activates tasks on the set schedules.
- We developed numerous sample apps with fake data to mimic operations running on various AWS services in order to learn more about the request/response cycles and service statuses involved.
- To get around the need for a server to host a web app, we containerized our application in Docker and planned to deploy it to AWS Elastic Beanstalk.
- We built a system to examine the log for task status updates for asynchronous AWS services, which do not wait for the job to finish before responding (like AWS Lambda).
2. Injury Reduction Platform
For the Injury Reduction Platform, the client wanted integration of new modules into an existing legacy system, facilitation of the integration of information from many sources, and simplification of the complex logic behind managing equipment, materials, and the relationships between them.
We created an application that:
- Since the client had no intention of updating the legacy system and its roles/rights system was incompatible with the Equipment maintenance module's roles/rights requirement, we created the new modules pertaining to Equipment maintenance as a completely separate system in the solution.
- The data used to monitor and service equipment is gathered from a range of sources. In order to ensure consistency in the importation of data and its output across the various sites, we established a common import method. We included an example import file that the client could use for all of the pages that are qualified for import.
- Since the data in Equipment maintenance is used by other apps in the pipeline, we couldn't just delete everything and start over with fresh IDs. With this in mind, we introduced soft deletion of records and re-activation of removed records in case of re-entry of similar records across pages.
- There is a very intricate logical process at work in the equipment, parts, and connections between them. In order to apply them, we split the whole procedure into numerous sub-processes, designed specifically for Equipment rankings.
3. Data & Analytics Portal
For the Data & Analytics Portal, the client wanted Okta Single Sign-On (SSO) report embedding in PowerBI, use of AWS S3 storage for file management in the custom content management system and versioning and real-time previewing of CMS content.
The team of AllianceTek created an application with the following solutions:
- With only a few mouse clicks, the client could monitor the processing progress of all of their bulk data processes.
- The Injury Reduction Platform's end users could now monitor equipment and injuries via the application, complete with detailed analysis and simple reports.
- Admins could quickly add or remove pieces of equipment from the platform, allowing Clubs to better manage their information.
- The club's user base could now quickly and easily obtain data on membership and associated gaming trends.
- With only a few mouse clicks, the client could monitor the processing status of all mass data tasks and keep tabs on how they're progressing.
- Members of the Injury Reduction Platform could now keep tabs on injuries and their associated equipment via the portal, which provided both in-depth analysis and simple reporting.
- The platform makes it simple for administrators to add and remove pieces of equipment, allowing clubs to better control their information,
- User reports and insights on club-related games and fan bases were readily available to all club members.
What Value Did AllianceTek Provide to this Project?
1. Data Task Scheduler
- We helped the client save development time and money by adapting an existing library of organizational charts to the project's needs rather than developing a new solution from the ground up.
- Instead of designing a new solution from scratch, we recommended utilizing a widely known library for background work schedules. This would drastically save development time and expense.
- To alleviate the technical burden that would have been placed on the client had they provided a detailed description of each individual operation to be performed by AWS, we developed proof-of-concept (POC) apps in advance.
2. Injury Reduction Platform
- We developed a docker-containerizable solution, removing the need for a dedicated server and platform.
- For asynchronous AWS services like Lambda, we developed a special log parsing method to check for task statutes, eliminating the requirement for clients to manually change task status.
3. Data & Analytics Portal
- Added a new Equipment Maintenance module as a standalone part of the solution, guaranteeing that the running of the legacy system would not be disrupted in any way by its addition.
- The present legacy system is a tabular grid with individual custom filters. We integrated Kendo Grid with features like inline recording adding and updating, numerous and composite filters per column as needed, and data grouping to improve the user's experience.
- The portal's efficiency and usability were greatly enhanced by the use of a custom-tailored CMS rather than an existing hefty CMS (which would have overloaded non-technical system users).
- Material versioning made it possible for people who lacked technological expertise to edit portal content without fear of repercussions.
- By including a "what-you-see-is-what-you-get" (WYSIWYG) editor that displays page styles inside content, users are now able to upload pre-styled HTML templates.