Challenge Overview

Challenge Overview

Welcome to the Managed Risk - Custom Reporting Module Backend Assembly!  The client for this project is looking to build dynamic reports out of database tables of data.  Their current tool allows these reports to be built by a developer, but this requires a normal development cycle to build, test, and release these reports.  They would like to have a system in place that allows them to build these custom reports, joining multiple database objects (tables, views, stored procedures) if necessary, into dynamic data to populate different visualizations.

The closest system to equate it to would be Salesforce Reporting.  In there, you can wire up multiple related objects into a grouped, filtered, and sorted data source.  In this assembly challenge, we need a recommendation, given the environment, as to how we can accomplish this level of configurability and surface it in a way that the end-user can build meaningful reports.

This assembly will provide the data models, exceptions, backend services and scheduler job.

Competition Task Overview

The specific tasks for this backend assembly challenge are detailed below.  A complete list of deliverables can be found in the TopCoder Assembly competition Tutorial at: http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorials

Note: Extensive implementation notes are provided at method documentation on UML Class Diagrams. Please follow them for implementation.

Note: Please read the whole Application Design Specification first. All the details not mentioned in this specification are provided in that document.

Model Classes

This assembly is responsible for implementing all model classes on class diagram "Model Class Diagram".

Exceptions

This assembly is responsible for implementing all exceptions on class diagram "Exceptions Class Diagram".

Backend Services and Job

This assembly is responsible for implementing all services and job on class diagram "Backend Services Class Diagram".

Unit Tests

Assemblers are required to write unit tests using MS Unit Testing Framework, please do NOT use NUnit

Technology Overview

- Windows Server
- SQL Server 2012
- Visual Studio 2012
- IIS 7
- C#
- .NET Framework 4.5
- ASP.NET
- Unity 3.5: http://unity.codeplex.com/
- Enterprise Library 6: Logging https://msdn.microsoft.com/en-us/library/ff648951.aspx
- Quartz.NET 2.3.3: http://quartznet.sourceforge.net/
- jQuery 1.11.3: http://jquery.com
- Microsoft OpenXML SDK 2.5: https://msdn.microsoft.com/en-us/library/office/bb448854.aspx
- DevExpress ASP.NET Chart Control: http://demos.devexpress.com/XtraChartsDemos/Default.aspx

Existing Documents

- Class Diagrams
- Sequence Diagrams
- Assembly Diagram
- Application Design Specification
- ERD
- Assembly Specifications

Testing

- Unit tests are required for this challenge (see "Unit Test" section above).

Project Setup

- Request access to the Gitlab repo group here http://tc-gitlab-ragnar.herokuapp.com/#!/ragnar/joinGroup/55cc117fba02d50f0080b5e2/290828, by posting on the forums, or emailing the copilot.
- Once added to the team, fork the repository and work off https://gitlab.com/aers-managed-risk/backend/tree/feature/30050551-backend-assembly
- Note: This is the first challenge of this set, so this repo is empty.  Forking the repo will make submitting a request easier later.



Final Submission Guidelines

A complete list of deliverables can be viewed in the TopCoder Assembly competition Tutorial at: http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorials 

Below is an overview of the deliverables:

  • Code that covers all requirements
  • A complete and detailed deployment document explaining how to deploy the application including configuration information.

Submission

- Upload documentation for how to run your submission (via OR as normal)
- Upload all your source code as a zip (via OR as normal)
- Add jcori 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

ID: 30050551