Challenge Overview

Project Overview

The client is building the Fund Accounting Yield Application (FAYA), previously referred to as the SEC Yield application. This is the 2nd phase, where we adding new calculation engines and provide more front end features for the end user.

Challenge Overview

The goal of this challenge is to implement a functionality to support report generation.

It is important to read this challenge requirements first, then read the detailed requirement document attached in challenge forums.

Challenge Requirements

  • Attached in challenge forums a detailed requirement document for all the reports in scope.
  • The reports in scope are :
    • Month End Rates and Yields-Summary Report 
    • Month End Rates and Yields – Detail Report
    • SEC Yield Income Report
    • Money Market Restated Yields Report
    • SEC Yield Day over Day Compare
    • PARMSY Comparison Report
  • For User Generated Reports you are building REST API
    • Write Postman file with details about the api and the parameters, sample request, and response.
  • For System generated Reports you are building command line tool to execute the reports
  • The reports will be used by both User Generated (From Angular APP UI) or as a command line tool from scheduler job, so you need to note the following:
    • The reports should be a stand alone class, under 'reports' folder under fundyield-api module
    • API and command line tool will delegate the calls to the reports classes
    • Document the report classes, fields, and methods, including parameters and possible exceptions.
    • Reports input from API is different than command line tool, but they both have common input parameter, we would recommend making the reports methods more generic when handling input parameters, but we also Ok if you add a flag bool parameter (reportType : user or system) to help you write a logic for validating input parameters.
    • All reports will generate PDF and Excel reports, at end of each report section, there is a header/footer section that explain how the format of output report should look like, if missing means you only going to put the report table in the pdf/excel.
    • The reports logic should reuse existing SPs, It is Ok to add more input parameters but it is NOT OK to edit existing SPs logic/queries as that will be break existing functionality.
    • You don't need to write Unit Tests for the reports, you need to provide test data (You can udpate data generator) to verify your work.
  • Follow existing code styling :
    • Documentation
    • Logging
    • Exception Handling
  • Your code must pass sonar code quality check.
  • Provide seperate readme file (i.e. REPORTS_README) detailing how to setup and run.
Technology overview
  • Java 8
  • REST API
  • JSON
  • Apache HTTP Server
  • Tomcat 8
  • Spring Framework 4.x http://projects.spring.io/spring-framework/ 
  • Log4j 1.2 http://logging.apache.org/log4j/1.2/ 
  • Joda-Time 2.9 http://www.joda.org/joda-time/installation.html 
  • Oracle 11g express edition

Getting Started

Please check challenge forums for more information how to access the code.

Existing Documents

You might find these document helpful to understand the architecture of the code :
  • TCUML Diagrams
  • Application Design Specification


Final Submission Guidelines

  • Git patch file of changes OR All source code, tests and scripts that address the requirements. That include scripts, README, postman updates .. etc.
  • The winner will be asked to make a merge request to the repository.
  • Include note text file for reviewer for any special instructions or notes.

ELIGIBLE EVENTS:

2017 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30057872