A major workspace design company needed a new asset management system to replace its aging system, which was inflexible and creaking at the edges. Within 10 weeks, Zenitech had created a proof-of-concept which was rolled out at the client’s annual conference, and used to manage the event, including customers’ ticketing, data and service requests. It proved so successful that Zenitech is now building out the system across the entire business.

Zenitech’s technical approach

The asset management systems already in place were no longer fit-for-purpose. The ticketing system for the client’s event, for example, was email-based (which both the client and its customers found cumbersome).

Zenitech created a website and mobile application that could work with an NFC and/or QR-Code-based asset management system. The client could also use these tools to track orders and manage any service requests and issues.

The Zenitech team – a lead developer and three full-time developers – worked in close collaboration with the client throughout the project, meeting twice a week initially gather information. The client team included a business expert and users at top management leve, who could test the solution as it was rolled out.

Zenitech used an iterative development process, using two week-long sprints. The team selected and implemented user stories and iterations using Azure DevOps boards, and as each function was developed and tested, the next iteration was started.

The team used Azure DevOps in the forms of Azure Repos and Pipelines for code management and CI/CD solutions and had a mono repository using gitflow. Each feature and bug fix was developed on a separate branch, which would then be merged, pass a CI pipeline, and be approved by the tech lead.

The team manually triggered deployment to Zenitech’s internal environment and the client’s test environment from separate branches by starting CD pipelines. These pipelines managed the update and migration of a central SQL database, deployment of our backend and frontend applications and the distribution of the mobile application using Visual Studio App Centre.

UX design workshop with diagrams laid out on a table

Zenitech hosted the application in Azure, and used AzureSQL as a central database for persistency purposes. The backend application providing a REST API was implemented using ASP.NET Core 6.0, and Blazor WebAssembly was used for the frontend application.

Both applications were hosted in an Azure AppService. KeyCloak was the chosen Identity Provider and hosted in an AppService as a Docker image for authentication purposes.

The mobile app was a MAUI/Blazor hybrid application targeting Android and IoS, meaning it was possible to achieve high level of code reuse between the frontend and mobile application by sharing UI and other components.

The result: Creating a strong foundation for future rollouts

The initial solution has four main functionalities:
Master data management – admin users can manage data generated by customers and users. They can assign roles and configure them in a variety of ways. Admins can also use the system to manage brands, products and parts – including documents like user manuals. In addition, the system lets admins create assets and use NFC tags, which they can assign to assets or rooms.
Service request management – customers and users can create service requests, such as enquiring about replacements and asking questions about their warranties. Each service request has a business flow that starts with creating the request, and then goes through clarification, modification and price agreement stages until the customer accepts or declines the proposed solution. Service requests are supported with NFC tags on assets and rooms to reduce the likelihood of errors. – customers and users can create service requests, such as enquiring about replacements and asking questions about their warranties. Each service request has a business flow that starts with creating the request, and then goes through clarification, modification and price agreement stages until the customer accepts or declines the proposed solution. Service requests are supported with NFC tags on assets and rooms to reduce the likelihood of errors.
Admin dashboard – the dashboard acts as the base for reporting. At the initial stage, the dashboard allows users to create simple reports showing their location, basic product information, and open service requests.
Mobile application – the mobile app currently focuses on the client’s technicians and customer users (while also playing a pivotal role in NFC use)

The proof-of-concept solution was launched in time for the client’s conference, where it received very positive feedback and suggestions for the next stages of development (which is currently underway).

Zenitech specialises in modernising technology, creating future-proofed systems, and reusing existing technologies where possible to create efficiences. This project is a great example of that principle in action: delivering a workable solution in a short timeframe, that will form the basis of a wider rollout in the future.
Woman stood up leaning against desk looking ar phone