Triskelle Solutions develops software to enroll, monitor, and support the progress of children with special needs across the United States. I joined the team to assist designing reports for the State of Colorado Department of Education.
- Layouts must closely resemble existing documents
- Reports look the same from the web portal and in print
- Support English and Spanish languages
The web portal is built with the Angular framework and consumes web services developed in C# and .Net Core. SQL Server and Entity Framework are used in the data layer. The report engine responsible for generating reports utilizes Razor Light, a specialized version of Microsoft’s Razor language. Microsoft Azure hosts the deployment environments which are managed through Azure DevOps.
An important requirement layouts were required to match documents already in use, look the same on the screen from the portal user interface written in Angular 8, and support multiple languages. I designed a custom CSS framework to extending Bootstrap providing consistent layouts and addressing issues when printing HTML such as adding headers and footers and page breaks for long documents. Each report was added to the system as Razor Light templates incorporating additional C# markup and data-binding with Entity Framework.
The project presented these challenges:
- Forms would require complex HTML / CSS
- Forms needed to be consistent
- Razor Light implementation is complex
- Testing live forms bound to data required pre-qualification processes
- Printing HTML needed custom headers and footers
- Page breaks needed to be controlled with precision
Once I understood the platform and requirements, I decided to design a reporting framework that leveraged Bootstrap 4.0 as a base. The next step was to create clean HTML for 37 reports using the reporting framework and the Microsoft Word documents as reference. Each report was added to Visual Studio and checked into a source control repository. C# databinding was then added to the HTML template forms. Project managers and testers were notified when each form was complete to begin testing. After initial testing was complete, forms were adjusted as required.
Although it was a meticulous development process, we achieved our goals. I enjoyed working with the talented team from around the world who Triskelle assembled. At the end of the day, the customer is satisfied. Triskelle scores a win and I met some new friends. That is success.