Situation
More than 900 inspectors of the State Inspectorate perform their tasks of inspection supervision in compliance with the Laws governing inspection supervision for particular administrative fields, as well as the conditions that the inspectors have to meet. They are placed on the following positions: inspector for economic affairs, labor inspector, inspector for electric power supply, inspector for mining industry and inspector for pressure vessels. In the course of inspection supervision, inspectors are independent and they conduct the procedure, pass decisions and undertake measures within the framework of legal regulations, duties and authorities pursuant to the Law and other regulations.
As in all similar organizations, a large amount of paperwork is being produced on each case, and initially most of it was processed manually, with minimal IT support - inspectors mainly used Microsoft Office products, and there was no central repository or document management system.
Initial Assessment & Solution
After evaluating all the requirements, Mono Software decided to develop a mixed solution based on our two frameworks: smart client framework and MonoX portal framework. The functionality and user interface have to be common accross the organization, but the needs of inspectors in each particular administrative field are varying greatly.
One of the main goals was to enable inter-institutional cooperation (in particular with the Ministry of Defense, Ministry of Internal Affairs, Ministry of Labor and Social Welfare etc.) by using SOAP/Web services to exhange important information with other government bodies. In this moment inspectors can access the fresh information on all Croatian companies and citizens involved with them - this data (around half a million records just for the basic company info) is imported on a regular basis. State Inspectorate also transfers all the relevant data from/to its public site on a daily basis.
Additionally, the Inspectorate's public Web site has to be synchronized with their intranet portal to allow for easy content publishing. Visitors of the public Web portal must have the ability to report various law violations and to track the statuses of their cases. Various forms must be available for electronic processing, and users' electronic signature is used to avoid paper-based submissions.
Smart client user interface
Planning & Technology Selection
Being strongly related to Microsoft development tools and technologies, Mono Software based the application on Microsoft .NET Framework version 2.0. Microsoft Visual Studio 2005 was the designated development environment for both client and the server portion of the app. Microsoft SQL Server 2005 was used as the RDBMS at the server side.
A typical application report in PDF format
Mono Software development team is devoted to the strongly typed, n-tiered, RAD programming philosophy. We are using LLBLGen (Low Level Business Layer object relational mapper & code GENerator) object-relational mapper by Solutions Design; without it, the development of such large scale project would be much more difficult. With its help, it's easy to generate the complete business tier based on a database architecture and transform even the most complicated kind of queries to the strongly typed C# code, which provides huge savings during both the initial development phase and the later bug correction/new features/maintenance phases. LLBLGen outperformed all the other similar tools we tested and remained a strong ground for all Mono Software projects to the present day. More recently we have started to use LINQ, a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations.
As for the reports, considering the two approaches mentioned above, we've found that for our lightweight model, the Microsoft SQL Server Reporting Services would be the most appropriate. It provides an easy way to transform a simple query to a decently designed report in no time. On the other hand, SQL Server Reporting Services proved lacking for some of the advanced tasks we needed to perform. After assessing several different tools, our choice narrowed down to the Active Reports from Data Dynamics. Its development simplicity, transparence, a powerful event model (which reminded to a simple ASP.NET web page), advanced sub-report options, data binding abilities and many other features started to pay off almost immediately and during the earliest development stages. Both SQL Server Reporting Services and Active Reports are now being used in the system.
At the time we were starting the implementation, an exciting new technology from Microsoft emerged - WCF (Windows Communication Foundation), designed especially for building and running connected systems. Although the "classic" Web service solution was at the time still quite sufficient for our needs, we decided to adopt this new technology, since it provided a better security, performance and more robustness in general.
Application Development
Our initial development efforts were dedicated to delivering a bare functional prototype ASAP. In line of the Extreme Programming (XP) methodology and due to frequent legislative changes, new releases were issued frequently, emphasizing intensive communication with the client. Mono smart client framework solved most of the low level tasks (Web service communication, security, user interface management, report section), so we were able to focus on critical business issues.
Smart client case navigation bar
The smart client application (eOcevidnik) serves as the central workplace for each of the inspectors. It looks and performs just like standard Microsoft Office Application. It is less expensive to develop, and overcomes many of the well-known functional and usability deficiencies of browser-based applications. It fully utilizes the hardware and software resources available on the client machine i.e. the local CPU, graphics processor, memory (RAM) and disk storage, and therefore require substantially fewer server resources.
MonoX portal framework was used to build Internet and intranet portals. Most of the required modules were already present in the MonoX core (content management, news management, user and role management, content synchronization).
Company registry module
Benefits
The new system increased inspectors' productivity, improved security, facilitated users' daily tasks and created solid grounds for the future development of the new advanced features. The applications's availability 24 hours a day to anyone with a decent internet connection and the planned improvements that will allow for offline work made the whole process insensitive to the inspector's location. The public services offered by the State Inspectorate can now be accessed by a wider audience, while the overall customer service level is much better.