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

Client requested changes to phase 1 code, i.e. package names, classes names, separation of calculation logic, logging, and exception handling.  The goal of this challenge is to implement these changes.

Challenge Requirements

The updated classes and interfaces shown in TCUML, they are colored in BLUE (either blue borders or blue methods/fields names), on theses diagrams should be implemented in this challenge, note the following about TCUML diagrams :

1. FAYA API And Implementation Class Diagram
  -  Notice the package name changes, we also switch to use "FAYA" instead of "Customer" from phase 1. So any blue item that use FAYA, you should find its corresponding class from phase 1 by replacing it with "Customer". 
  - You are responsible on the Blue colored diagrams/items, please check implementation notes in TCUML about what changed in these items.
  - For other red items, you are not responsible to implement the red items, they are out of scope.
2. Model Class Diagram
  - We did full renaming and restructuring of entities and fields, you are only responsible on the models that is required in phase 1 changes as shown in the TCUML class diagrams definitions.
  - We are providing you with excel sheet that show you the mapping between old and new entities.
3. Public API And Implementation Class Diagram
  - We have updated the code to seperate the calculation logic to its own classes, so you will see RED calculator classes, these are in scope and you will update the old code to use them. Also all BLUE items you are responsible on implementing them.

Also please refer to the ADS document for logging, exception handling, unit testing updates. They all must be implemented in the challenge, the updated sections:
 - Logging 
 - Exception Handling
 - Unit Testing Coverage

General Notes

 - Across the updated TCUML design, we are using "FAYA" instead of "Customer" term.
 -  ALL sql statements should be written as oracle stored procedures
 - Update postman API calls
 - 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

 - Access to the gitlab repository (for existing source code and new architecture) are provided in challenge forums.
 - Once you join that group, you will see the repositories:
 - Architecture: v2 (make sure to use the tagged version)
 - Backend: TBD-code

Existing Documents

 - 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.

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30056063