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.
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 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).