Challenge Overview

Welcome to the SEC Yield Architecture challenge! In this challenge, we are looking to define the foundation architecture an expansive financial application to be built over several phases.  In this challenge, you will catch a glimpse of the full application structure, but this challenge is focused on preparation for building a few of the calculation engines.  You will be defining the system, persistence, and APIs to be built by the client that will be mocked in tests in this Java/Swing application.

We look forward to seeing your architecture designs!

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.

Project Description

SEC Yield is a standardized yield used across the industry to compare the yields of income generating funds. It is calculated daily for the prior day. In order to calculate SEC yield for a mutual fund, the yield of each qualifying security (think stocks) held by the fund and the income of the qualifying securities held by the fund must be computed first.

The project development is broken into multiple phases, in this phase, we’d like to calculate the security level yields and the security level incomes only.

Challenge Requirements

For this challenge, we need to come up with a full design / architecture for the project covering both backend and frontend.

The expected deliverable :

- TCUML containing all necessary diagrams (Classes/Models and Sequence diagrams)

- RESTful API Endpoint Documentation (preferred swagger documentation)

- The UI Interface specification

- Assembly Specifications

- ERD / SQL Scripts

- Application Design Specification

Please consider all documentation provided and recommend a robust, extensible architecture and foundation for the SEC Yield Application.  Note the following :

- SEC Yield Requirements Overview : This document contains details information about the project requirements, testing requirements, and technical requirements.

- SEC Yield High Level Solution Architecture : This document contains a high level overview of the architecture, what we are addressing in this phase :

- Rules engine workflow :

- Test Data sheet : we will use this sheet to verify the calculation output, you need to suggest a unit and functional tests, along with these test data, to properly test the accuracy and throughput of the calculations

- User Interface (Angular/HTML ..etc)

- Crowd Responsibilities Boxes

- REST API of each purple box.

- Application Specific boxes are out of scope, we will implement a concrete mock implementation of their REST APIs, the client will replace it with their own implementation, i.e. we will implement a mock persistence layer for testing purpose.

- This document show the full workflow, we are addressing only the Phase 1 boxes, but your architecture should be flexible to expand to address other workflow in future phases.

- We need a functionality recommendation and stubs for the calculation selection algorithm

    - I.e Given the inputs and data, the application should select the correct calculation (or calculations) to provide the desired result given the flowchart.  Remember: for this phase, we’re worried about the items in the Phase 1 boxes, but this architecture should take into account the larger picture.

Technology Stack

- Required frameworks / libraries

- Optional frameworks / libraries - You do not have to use these, but if your architecture warrants uses of one of these types of systems, these are our choices.

- 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

- Sonar for Code Quality

- JUNIT for Test Automation

- JAXB

- Jackson

- Spring AOP

- JQuery

- Apache Camel

- Active MQ – Use Active MQ if JMS is part of the architecture

- Drools Rules Engine (if a rules engine is deemed necessary)

Documents

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

- ERD / SQL Scripts

- Application Design Specification

- Rule Engine Calculation documents

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30054684