Register
Submit a solution
The challenge is finished.

Challenge Overview

1.0. Introduction

Topcoder would like to improve the product development team's ability to deliver quick, stable releases across all key applications/services of the platform. This includes making it easy for the community to quickly participate in design, development, qa, devops, and release efforts.

2.0. Challenge Overview

This challenge will focus on performing the following tasks below on the tc-direct-project-service code base. Currently we use Jenkins as CI tool for this service but intend to transition to CircleCI later.

    Improve CI/CD integration: add missing automated tests to the "src/tests" folder i.e. https://github.com/appirio-tech/tc-direct-project-service/tree/dev/src/tests/

    Improve documentation:  make sure the readmes are current with install instructions and current swagger docs.
 

2.1. Automated Tests

To make the scope manageable, you should provide tests for the classes listed below:

Package com.topcoder.service.project.resources
https://github.com/appirio-tech/tc-direct-project-service/blob/dev/src/main/java/com/topcoder/service/project/resources/ProjectResource.java


Package com.topcoder.service.project.api
https://github.com/appirio-tech/tc-direct-project-service/blob/dev/src/main/java/com/topcoder/service/project/api/ProjectGeneralInfoDTO.java#L207

https://github.com/appirio-tech/tc-direct-project-service/blob/dev/src/main/java/com/topcoder/service/project/api/ProjectCopilotStatDTO.java#L155

https://github.com/appirio-tech/tc-direct-project-service/blob/dev/src/main/java/com/topcoder/service/project/api/ProjectPermissionInfoDTO.java#L118

These DTOs contain logic which could break from future refactorings which is why you should write tests for the methods linked to above.
Some IDEs/tools support generating basic unit tests from DTOs so you are free to include generated tests for other classes under this package to increase code coverage.
 

2.2. Swagger Document

The repo includes a Postman collection which should aid you with understanding how the REST API is consumed.
https://github.com/appirio-tech/tc-direct-project-service/tree/dev/docs

1. Please update the Swagger file and the Postman collection to match the interfaces exposed by the REST API.
2. Also update the README with detailed deployment instructions.

 

3.0. Repository

https://github.com/appirio-tech/tc-direct-project-service/
If you are presented with a HTTP 404 message when attempting to access the repo on GitHub, please request access on the forum.
Please base your submission on your fork of the dev branch.
 

4.0. Deployment

The platform might be a bit daunting to deploy locally for first timers, so it is important to ask for help early on the forums.
 

4.1. Prerequisites

Before you begin, you will need to have the following tools installed:

Docker v1.12.3+
Java 8+
Maven 3.3.3+
 

4.2. Dependencies

The tc-direct-project-service service is dependent on a much larger (web) application called direct-app (https://github.com/appirio-tech/direct-app).

Before attempting to deploy tc-direct-project-service locally, you must first successfully deploy direct-app in your local environment. Although direct-app is a bit complex to setup locally, TopCoder maintains a public docker image for it on Docker Hub (https://hub.docker.com/r/appiriodevops/direct-app/) which should help you get up to speed much faster. 

Instructions on how to setup and run the docker image are on GitHub: https://github.com/appirio-tech/tc-common-tutorials/tree/master/docker/direct-app
 

 



Final Submission Guidelines

Please upload your final submission to Online Review.
Your submission must include: newly added automated tests and updated deployment instructions.
You could either make a note of the commit hash you used and include a patch of all your changes. Alternatively, you could upload all of the original files plus your modifications.

ELIGIBLE EVENTS:

2017 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30056457