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


We have new APIs and calculators to implement in this challenge, all new design items will be addressed in this challenge along with unit testing them.

Challenge Requirements

The new classes and interfaces shown in TCUML, they are colored in RED (either red borders or red functions/entities), theses diagrams should be implemented in this challenge. We have extensive implementation notes are provided at method documentation in these TCUML Class Diagrams. Please follow them for implementation.

FAYADataPersistenceService interface is the CustomerDataPersistenceService (and its implementation) from phase 1, we are doing a renaming and we have a challenge running in parallel to update it, but client requested to seperate the red functions to their own classes implementation, so in this challenge for Money Market functions put them in FAYAMoneyMarketDataPersistenceService, and FAYADistYieldDataPersistenceService for Distribution Yield functions.

Also please refer to the ADS document for more information about configurations, logging, exception handling, unit testing, code quality check. They all should follow same pattern as in phase 1 code. 

Unit Testing

You will implement unit tests for all new code you are adding, you should provide accuracy and failure unit tests, and try to cover all edges and cases. You will need to use mocks, but not create too many mock objects, as it is hard to maintain. Some limited level of mocking is acceptable. Use [mockito] (http://mockito.org/) as the preferred library. It is also expected that you will write full functional tests to validate each piece of functionality.

General Notes

- Provide new postman api files.
 -  ALL sql statements should be written as oracle stored procedures
- Update sql scripts
- Update README
- Update build scripts (if needed)

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

- Check forums to get access to the existing source code and new architecture. 
- Once you join that group, you will see the repositories:
- Architecture: v2 (make sure to use the tagged version)
- Backend: TBD-code

Existing Documents

Provided in challenge forums :
- TCUML Diagrams
- Application Design Specification
- Swagger API definition

 

Final Submission Guidelines

Deliverables

- 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: 30056062