Challenge Overview
System 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. In the initial phase of this project, we’d like to calculate the security level yields and the security level incomes only. No fund level Yield calculation would be required in phase 1.
This challenge is responsible for all classes and interfaces shown in TCUML Model, Exceptions, Front-End, Public API And Implementation Class Diagrams. It will provide all engine implementations shown in TCUML.
Competition Task Overview
Note: Extensive implementation notes are provided at method documentation on UML Class Diagrams. Please follow them for implementation.
Note: Please read the whole Application Design Specification first. All the details not mentioned in this specification are provided in that document, and must be addressed in your code.
Model, Exceptions, Public API And Implementations.
The classes and interfaces shown in TCUML on these diagrams should be implemented in this challenge. Please check TCUML for details.
Unit Tests
You are required to provide tests. The tests will be classified into unit and functional tests separately. 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 as the preferred library. Please also create full functional tests to validate each piece of functional tests.
Technology overview
- Java 8
- REST API
- JSON
- Apache HTTP Server
- Tomcat 8
- Apache POI
- 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
Getting Started
- Click THIS LINK to join the sancus-community gitlab group.
- Once you join that group, you will see the repositories:
- Architecture: v1.1 (the version was updated)
- Backend: 30054756-code (This version is starter kit with all dependencies and script, with sample backend, you MUST use it.)
Existing Documents
- Class Diagrams
- Sequence Diagrams
- Application Design Specification
- Assembly Specifications
- UI Specification
- Swagger API definition
Final Submission Guidelines
Deliverables
- All source code, tests and scripts that address the requirements.
- Updates to project README files with an updated deployment requirements or steps.
- Updates to postman.json files to demo the API
- The winner will be asked to make a merge request to the backend repository.