Skip to content

Upgrading a Ticketing Platform for Improved Performance and Maintainability

Background

A ticketing system of a leading company in the hospitality and events industry, offers a robust event ticketing platform designed to simplify event management while keeping costs low for organizers. platform offers a robust event ticketing platform designed to simplify event management while keeping costs low for organizers. With features like mobile ticket scanning, interactive seat maps, customizable email templates, and detailed reporting, the ticketing platform provides a comprehensive solution for event organizers. As the platform grew, the need was recognized to upgrade and update its underlying technology stack to maintain long-term stability, improve performance, and ensure efficient development and maintainability of the product.

Challenge

During the platform upgrade project, the team encountered several significant technical hurdles. The platform was originally built using Vue 2, which was approaching the end of the support lifecycle; therefore, it was crucial to perform a comprehensive framework upgrade to Vue 3. Additionally, Webpack was replaced with Vite to ensure streamlined builds, modernized tooling, and improved development efficiency.

Additionally, the existing codebase was primarily composed of Vue 2 class components rather than the Options API directly. This structure required a tailored approach to convert class components to Vue 3 Composition API using the custom Vue Composition Converter tool. Migrating this to the more modern Composition API in Vue 3 posed a complex challenge, as it required updating every component in the application. Throughout the migration process, the internal development team continued working on new features and bug fixes, making it crucial to coordinate development efforts to prevent conflicts and ensure a seamless transition.

One significant hurdle involved the update from Vuetify 2 to Vuetify 3 due to major changes in the general configuration of component functionality and styling. In addition, the platform’s calendar component was provided by Vuetify 2 but not by Vuetify 3.

Several smaller challenges arose from the incompatibility of critical Vue libraries with the new framework version. These dependencies either needed to be updated or replaced with alternatives, adding further complexity to the upgrade process. This included implementing a separate package to provide calendar functionality that was missing in Vuetify 3 to meet the system requirements.

Solution

To address these challenges, IntelliTect implemented a strategic and phased approach:

  1. Parallel Development Approach: Feature branches were created for the migration work, allowing the internal team to continue development without disruption. Regular merges and thorough testing ensured that conflicts were minimized, and any issues were resolved promptly.
  2. Framework and Build Tool Upgrade: The entire platform was migrated from Vue 2 to Vue 3, with all components updated to use the Composition API. The Vue Composition Converter tool, developed in-house, was instrumental in streamlining the migration process by converting class components to the Composition API more efficiently. Webpack was replaced with Vite, resulting in faster build times, hot module reloading, and improved dependency management.
  3. Library Compatibility Fixes: Incompatible libraries were identified and either updated or replaced with suitable alternatives. Sub-dependencies that posed issues were decoupled and resolved individually to ensure compatibility.
  4. Custom Calendar Solution: Instead of building a new calendar from scratch, IntelliTect adapted a calendar component from another product to fit the ticketing system’s requirements. This approach saved significant time and resources.
  5. Backend Enhancements: Updates to outdated versions of C#/.NET and the database system were proposed and implemented with the client’s approval, improving overall security and stability.
  6. Agile Process Enhancements: IntelliTect’s project manager established a dedicated DevOps board to track tasks and progress. Tickets were created for each task, complete with point estimates and real-time status updates. Daily stand-ups and continuous communication with the internal team ensured smooth collaboration.

Outcome

The upgrade process was completed successfully, resulting in significant improvements to the system’s performance and maintainability. The migration to Vue 3 and Vite reduced build times and streamlined development workflows. Leveraging an existing calendar component saved both time and resources, while backend updates enhanced the platform’s security and long-term stability. By maintaining parallel development and close collaboration with the internal team, IntelliTect ensured minimal disruption to ongoing operations and feature development despite Composition API and Vite upgrades involving modifying every front-end component.