Internal projects · Insurance
Insurance ERP
Internal life, health, property and platform insurance projects, with permission trees of thousands of entries and scripts of up to 100k characters handled without freezing the browser
- Client
- Prudential, Berkley, Porto and other players · via i4Pro
- Role
- Front-end Developer
- Technologies
- Vue.js
- Vuetify
- Vuex
- Vite
- JavaScript
- BFF
Context
i4Pro's insurance ERP, the foundation for internal projects of major players such as Prudential, Berkley and Porto, across life, health and property insurance lines and platforms. The front-end, in Vue.js with Vuetify and Vuex, follows a BFF (Backend for Frontend) architecture and consumes RESTful .NET (C#) APIs backed by SQL Server stored procedures.
Challenge
Render trees with thousands of permissions per instance in the browser and copy scripts of up to 100,000 characters without freezing the UI, migrate the ERP's front-end applications from Vue 2 to Vue 3 with Vite and co-lead strategic and technology decisions on the products for major players.
Results
- better application and integration performance after the migration to Vue 3 with Vite
- 40–45%
- characters: the largest scripts copied without freezing the UI
- 100k
Key deliverables
- 01Led the migration of the ERP's front-end applications from Vue 2 to Vue 3 with Vite, improving application and integration performance by 40–45%.
- 02Built Vue.js features with Vuetify and Vuex for internal projects of insurers such as Prudential, Berkley and Porto, in a BFF (Backend for Frontend) architecture consuming RESTful .NET (C#) APIs backed by SQL Server stored procedures.
- 03Built a per-instance permission tree fed by the .NET APIs that listed thousands of permissions, validating the instances and rendering it all with virtual scrolling, lazy-loaded nodes and batch processing, without freezing the browser.
- 04Implemented clipboard copy of scripts of up to 100,000 characters without freezing the UI.
- 05Co-led strategic product and technology decisions for the major insurers served.
Features and the pains they solve
Every feature was born from a real operational problem.
01
Per-instance permission tree
- Pain
- The .NET APIs list thousands of permissions per instance; rendering and validating them all on screen is the kind of volume that freezes the browser.
- Solution
- A per-instance permission tree, fed by the .NET APIs, validates the instances and renders thousands of permissions with virtual scrolling, lazy-loaded nodes and batch processing, without freezing the browser.
Impact: Thousands of permissions per instance, no freezes
02
Long-script clipboard
- Pain
- Scripts with tens of thousands of characters must be copied straight from the interface, and a copy that size can freeze the tab.
- Solution
- Clipboard copy of scripts was implemented for texts of up to 100,000 characters without freezing the UI.
Impact: Up to 100,000 characters per script
03
Migration to Vue 3 with Vite
- Pain
- The ERP's Vue 2 front-end applications limited the performance of the applications and integrations used by the insurers.
- Solution
- The ERP's front-end applications were migrated from Vue 2 to Vue 3 with Vite, bringing performance gains to the applications and integrations.
Impact: +40–45% performance
04
BFF architecture and .NET integration
- Pain
- The data on screen comes from .NET (C#) APIs backed by SQL Server stored procedures, and the screen must reflect it faithfully.
- Solution
- The Vue.js features, with Vuetify and Vuex, follow a BFF (Backend for Frontend) architecture and consume the RESTful .NET APIs.
05
High-performance native features
- Pain
- Large data volumes must reach the interface without degrading the experience of the people who operate the system every day.
- Solution
- The permission tree and the script clipboard were built as native product features to bring in large data volumes with high performance.
06
Strategic product decisions
- Pain
- Each player has its own priorities and requirements across life, health, property and platforms.
- Solution
- Co-led strategic and technology decisions on the products for the players served.