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’d like to add new calculation engines and provide more front end features for the end user.

Note: SEC Yield is synonymous with FAYA.  The client has made the application name more broad to correctly encompass all of its functions.

Challenge Overview

We have existing architecture, and we’d like to update it to address the following :

- Design Money Market/Distribution Yields calculation engines.
- Design new front end features.

We look forward to seeing your architecture designs!

The expected deliverable : 

- TCUML containing all necessary diagrams (Classes/Models and Sequence diagrams)
- RESTful API Endpoint Documentation (preferred swagger documentation)
- The UI Interface specification
- Code Challenges Specifications
- Application Design Specification

Tips for success:
- Asking questions early and getting PM's feedback is very important for the success of this competition.
- Raise questions if you feel anything is confusing, or if you have any questions on the provided documentation.

Challenge Requirements

For this challenge, you will be update the existing architecture documentation to include the new requirements.

Please consider all documentation provided and recommend a robust, extensible architecture and foundation for the the FAYA Yield Application. 

Please note the following :

- Previous Architecture Documentation https://gitlab.com/sancus-community/architecture
- SECYieldCrowd
    - This document contains a high level overview diagrams of the work in scope helps you understand the technical requirements.
    - In 3rd page we have the following in scope:
       - User Interface - Angular box
       - Request Handler Web Container box : we have existing API where angular 2.0 app talk to, and we are expanding the api to address the new frontene features. It should be deployed as seprate war file.
          - Yield Engine Web Container Box : we will address the Money Market and Distribution boxes.
          - Persistence Engine Web Container : this is where we pull customer data and save calculation data with same approach as we currently do in the current code.  The SQL is provided by client.
- MnyMktAndDistYieldHighLevelReqs
    - Contains a high level overview of the Money Market/Distribution yields
- MMandDistFundandClassLevelYieldCalculations
    - Contains the Money Market/Distribution yields calculations.
-  UserInterfaceWireframeRequirements and UserInterfaceWireframeIODataSet
    - These are the requirements for the frontend angular 2.0 app, you will architect the frontend angular components, and the required controller backend to support it.
    - The client is provided the POJOs for the data model as well, we will provided while the challenge is running as client is still working on it.
-  GlossaryOfTerms
   - This helps you understand the terminologies used across the documents and existing project/source code.  This has been recreated on the Architcture wiki: https://gitlab.com/sancus-community/architecture/wikis/application-glossary 
- API Notes
    - You need to provide postman file or a swagger file for each api you are defining. Developer will use it and improve on it. Refer to existing ones.

Technology Stack

- Java 8
- Spring 4.x
- Spring Web - MVC
- Apache HTTP Server
- Apache Tomcat 8.x
- Log4j / SLF4J / Apache Commons
- Apache Commons Libraries
- REST through Spring
- Maven
- Angular 2.0
- Sonar for Code Quality
- JUNIT for Test Automation
- JAXB
- Jackson

Documentation
Existing architecture documents, and new engine calculations documents are provided in challenge forums.

 

Final Submission Guidelines

Final Submission Guidelines

The expected deliverables are:

- TCUML file.
- RESTful API Endpoint Documentation
- The UI Interface specification Document
- Assembly Specifications
- Application Design Specification
- Rule Engine Calculation documents

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30055839