Goal
This project focused on upgrading and refactoring HOT’s legacy self-service portal – Self-Service Zone (VPN required). The objective was to modernize the system by unifying backend services, CMS-driven content, and a responsive frontend.
Key Milestones
- Designed and implemented a service abstraction layer to expose structured data from internal systems, enabling integration with the newly built backend.
- Built a new content management back office using Umbraco, based on detailed specification documents. Collaborated with system implementers to streamline the CMS usage.
- Leveraged Umbraco CMS in a headless setup, feeding dynamic content to the frontend application.
- Translated design mockups into a dynamic, responsive Angular 10 UI, following Material Design principles.
Technologies Used
- Database: SQL Server
- Backend: .NET Framework 4.8, .NET Core 3.1, SOAP, RESTful APIs
- Frontend: Angular 10, JavaScript, jQuery, CSS3
- CMS: Umbraco 8 (Headless)
Project Highlights & Challenges
Umbraco Back Office Design
The original specification was created by non-technical stakeholders unfamiliar with Umbraco, resulting in:
- Excessive abstraction layers within the CMS
- Inefficient data structures that deeply nested required elements
Solution
- Collaborated with the design team to revise and simplify the CMS specifications.
- Integrated an open-source NuGet package to improve and flatten data retrieval from Umbraco’s headless API.
Integration with CRM & Billing Systems
The backend relied on multiple internal systems, but:
- Access to data was restricted due to infosec and role-based limitations.
- Some existing services were incompatible with the new architecture.
Solution
- Rewrote parts of the services from scratch in .NET Core, ensuring compliance with security policies.
- Refactored business logic to align with modern service boundaries and authentication constraints.
This project was a deep dive into bridging enterprise legacy systems with modern web architecture. It also required balancing CMS flexibility, security concerns, and frontend usability—all while collaborating across teams with competing priorities.