Rubi Reports v2 was a complete rewrite of the existing reporting module. There were two main sections I focused on when developing this:
- robust, clean, and easy to understand code
- making it easier for users to produce meaningful reports
With the previous version, the stored procedure responsible for generating the report data, had almost 2000 lines of complex code, with a lot of hard-coded logic that worked for specific scenarios only.
When an error occurred, it was almost impossible to debug and forced on the developers more of a guessing than investigating approach when applying fixes. The amount of code was reduced to just about
350 lines, including extensive comments, and foremostly, eliminated the errors when creating reports.
Old reporting's page often seemed complicated for the users. Running reports wasn't easier, especially that there were some specific policies when creating reports that forced the users to remember
about selecting certain fields when running reports about particular subjects. Without selecting the field, the code in the back-end wouldn't know how to link the SQL tables and return data.
This was sometimes frustrating for the users and also put additional work on our development team when receiving support tickets about reports not running correctly.
Rubi Reports v2 splits the data into available report categories. These can be mixed and matched to whatever the user wants to report on, however it makes the first step into reporting a bit more simple.
Users are able to select outputs and rearrange them in the order they need and also add filters that support range (numbers only) and wildcard filtering. The Saved Reports page has also been tweaked, adding more control for the users
and greater security by using tokens in query string that are used when querying export reports - these are usually used in Excel as linked reports. Users have a choice of presenting their data in a grid format on the page or by exporting the report to Excel.
Technologies used:
Visual Studio, VB.NET, ASP.NET Web API, SQL, JavaScript, Syncfusion