Key Information

Register
Submit
The challenge is finished.

Challenge Overview

The goal of this challenge is to improve the stability of the Report Generation functionality and logic in the AERS Managed Risk application.

Challenge Requirements

Generate Report Fixes Requirement

- Step 1 Data Source :

- We need validation that prevents user to advance to next step if the selected objects have no references between them, to address this when user select an object it should gray out objects that have no references with the selected object.

- Step 2 Select Fields :

- Add new columns that render field types from table field [databasecolumn].[column_type].

- We want to support reordering rows, please use proper jquery plugin to support this, the order of the selected fields should be persisted in backend, and used when rendering the Data Table.  Something like this plugin but we are open to suggestion.

- Step 3 Calculated Fields :

- By default there should be no fields form, it should display only the Add New Field button.

- Add “Delete Field” below each field added to allow removing the field.

- We need to validate fields before advancing to next step (upon clicking “next”), the fields should be in valid form to be used in sql, you can implement a backend endpoint to test the query with that field set and render error if it is not valid..

- Step 4 Filter :

- By default there should be no fields form, it should display only the Add New Field button.

- Add “Delete Field” below each field added to allow removing the field.

- We need to validate fields before advancing to next step (upon clicking “next”), , the fields should be in valid form to be used in sql, you can implement a backend endpoint to test the query with that field set and render error if it is not valid.

- Step 5 Visualization :

- For Graph options section :

- Data tab :

- Remove the note section.

- To enable stability and proper data entry, the fields in this tab should be rendered based on the selected Graph Type :

- For XY-Axises Graph Types :

- We support only single X-Axis field in the chart based on DevExpress graph library. Remove the add more button.

- We need to enable Y-Axis in charts, currently it is not used in backend and the fields in UI are just placeholders. So you need to change this to allow user select multiple Y-Axis fields.

- Y-Axis only support numeric field types, so the drop down should not list fields that are not of supported types.

- When a field is selected in a drop down, it should be removed from other drop downs so it is not available to be picked, it does not make sense to show all fields always and it is bad UX, and will cause errors.

- For Non XY-Axis graph types you should follow same as done in XY- Axis instructions above, you should show only the fields that the chart support, and what fields needed by the chart. I am specifically referring to Pie Chart as it does not support XY-Axis, if there is any other chart type please raise this in forums for discussions.

- Metric fields should be out of scope of this challenge.

- Notation Tab

- This also should display the fields needed based on the selected Graph Type, i.e. it does not make sense to ask for Y-Axis label for the Pie Chart. You need to handle this per chart type.

- Preview Step

- The report data table should not be affected by selected graph options fields, this table should display all selected fields in Step 2.

- Add validation to prevent plotting more than a configurable number of points in YX-axis report.  The page should display error indicating that the data to be plotted are large and user needs to change the criteria.

- In some cases when trying to do aggregation (SUM, AVG .. etc) on numeric fields, the preview step will return error, please provide a fix.

-  Pie Chart generation is failing in existing solution, please investigate the issue and provide a fix.

- Backend Changes - based on the notes above you need to

- Add server side validation same as done in frontend.

- Update backend to support the changes we asked for in frontend (above), this will include some changes to how XY-Axis charts queries are compiled, and how it stores the Y-Axis fields.

- Changes to Graph Options and Data Report Table should be also applied in the Report Details page in the chart graph options section.

- Provide updated test data to support the changes you made.

Technology overview

- IIS 7

- C#

- .NET Framework 4.5

- ASP.NET

- DevExpress ASP.NET Chart Control http://demos.devexpress.com/XtraChartsDemos/Default.aspx

Existing Documents

Architecture documentation is provided in challenge forums, it is the architecture of existing solution, it is helpful if you want to look at high level overview of the solution.

GitLab Access

- You can get access to the Gitlab repo group in this tool https://tc-ragnar.herokuapp.com/ragnar/groups/564783092789620e00fa75d1/290828  .  If you are having trouble with the auto registration tool, please ask in the forums.

- Once added to the team, fork the repository and work off this branch https://gitlab.com/aers-managed-risk/backend/tree/feature/code-challenge-30052298  

 

 

 



Final Submission Guidelines

Submission

- Upload documentation for how to run your submission

- Upload all your solution as git patch files.

- Add elkhawajah as a member of your forked repository

- Winner will be required to submit a merge request on gitlab against the branch specified.




 

 

 

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30052298