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 domain layer for the application, this basically means:
- The database schema (please note that Domain.png only contains a basic ERD, and it's not complete, see more details below on all requirements to support)
- JPA-annotated domain-model-classes (see the ch.post.it.plat.domain.model package in plat-process folder, this is where all classes with database-mapping are located.)
- Java code to access / manage objects (the data access classes, see the ch.post.it.plat.domain.repository package in plat-process folder)
- You must develop based on the client's skeleton, see minimal-app-code.zip
Requirements
Please go through the business requirements document and make sure all use cases are supported by the domain layer. There are also some cases missing in the spec so make sure you check the following list as well.
We need to support CRUD for all the following objects even if they are not mentioned in the requirements spec:
- Unit
- Team
- Resources (Employees)
- Working Place / locations
- Public holidays (a special case of absence) / absence
- Capacity
- Reservation
- All types of projects
- All types of tasks
- Allocation
- The business-organization is structured in a tree. Parent is a recursive unit-structure. A unit can have several teams. The team can have several employees.
- A unit can contain other units and/or team(s).
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.
Technology Overview
- Java 8
- Maven 3
- Oracle 11g
- JPA / Hibernate
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:
- Full domain 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.
- SQL Scripts and full ERD diagram
- 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.