Challenge Overview

Project Overview

Platane is a web-based resource-planning-tool (a resource is an employee with its work-capacity).

In Platane an employee can be reserved for a particular project (example: John works for project PLATANE 40% (2 days/week) from 1.1.2015 – 30.6.2015).Platane displays the work levels of the teams and employees, and projects the workload.. Platane collects from Exchange Server the absences of the employees and collects from Jira the assigned tasks for the employees. With an optimizing-algorithm, Platane calculates the optimal work-order of the tasks and the workload of the employees.

Competition Task Overview

For this challenge, we need to implement the manager services and corresponding REST services to support the frontend, this challenge must cover the following use cases (see Platane-business-requirements_V01.01.pdf for details):

  • 3.1.5 Add Resource (note that add/edit/delete is in scope)
  • 3.1.7 Maintain Public Holidays (note that add/edit/delete is in scope)
  • 3.1.8 View Outlook Absence (this is integrated into the Employee-View and the current REST-API already covers the requirements to display Absences, just putting this here in case it has bugs which will be in scope of this challenge to fix)
  • 3.1.9 View Jira Task (this is integrated into the Employee-View and the current REST-API already covers the requirements to display the Jira-Tasks, just putting this here in case it has bugs which will be in scope of this challenge to fix)
  • 3.1.10 Generate RSS Feed

Detailed Requirements

  • All above use cases must be implemented in the manager layer (package: ch.post.it.plat.process.manager) and Spring MVC layer (REST API, package: ch.post.it.plat.web.controller). The MVC layer / REST API should simply delegate the calls to the manager layer. Please see section 4 and section 5.4 in Platane-software-specification_V01.01.pdf to better understand how the layers are separated.
  • The REST-API must also provide the possibility to build the Unit/Team-Structure. See “Build Unit Structure” from maintenance-menu. This means: Adding and removing a Unit from a Unit (recursive tree) and adding and removing a Team from a Unit.
  • The REST-API must also provide the possibility to link and unlink Jira-Projects to Project. See “Maintain Projects” from maintenance-menu.
  • All business rules listed in the software specification and indicated by the GUI (check the storyboard) must be implemented in the manager layer.
  • Please do NOT include security-control in this challenge, because it will be handled in upcoming challenges.
  • You must work based on the specified gitlab code branch.  The final submission should still follow the client's skeleton, which is shown in minimal-app-code.zip
  • You must clearly document the endpoints for the REST API, and you must use Swagger.
  • The optimizing-algorithm (chapter 3.3 of the business-spec) is NOT part of this challenge.
  • Please make sure you check the screens from the storyboard and the clickmap.png we provided in the forum.

Client Standards

Please make sure you go through all client documents, they contain important information about how you should write your code:

  • Developers-guide.pdf
  • Platane-business-requirements-v01.01.pdf
  • Platane-software-specification-v01.01.pdf

Testing

Unit tests are required, please check the Developers-guide.pdf document and make sure you follow the guidelines there.

Existing unit tests must still work after code is merged. New unit tests must be provided for new code provided in this challenge.

Technology Overview

  • Java 8
  • Maven 3
  • Jira REST API
  • Exchange Server EWS Web Services
  • Spring MVC
  • Oracle 11 / Express Edition

Documentation Provided

Register to download all documents from challenge forum.



Final Submission Guidelines

Submission Deliverables

A complete list of deliverables can be viewed in the TopCoder Assembly competition Tutorial at: http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorials 

Below is an overview of the deliverables:

  • Code that covers all requirements
  • A complete and detailed deployment document explaining how to deploy the application including configuration information.
  • JUNIT Tests to verify your application successfully meets the requirements of the application.
  • The maven build script to build and run the code / tests.

Final Submission

For each member, the final submission should be uploaded via the challenge detail page on topcoder.com.

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30050648