Register
Submit a solution
The challenge is finished.

Challenge Overview

Project Background
There is a considerably large amount of information about business case studies that we need to make available for users to grasp and use quickly for their business purposes. METI (Ministry of Economy Trade and Industry - government of Japan) is creating a web application from scratch to help users finding this information and interacting with it.
 
Challenge Objectives
For the purpose of this challenge, we need the community to help build REST API for the project.
 
Technology Stack
  • Java 9
  • Springboot
  • MySQL
  • Gradle
 
Challenge Scope
The endpoints listed below are in scope of this challenge. Keep reading to find out more details.
 
General Requirements
  • Please use the provided code as base, and implement the rest of endpoints in a consistent way.
  • Unit tests are required.
  • Make sure code is well documented, all classes / methods / variables / parameters / return values must be documented in every single java code file, and appropriate inline comments should be provided too where code is not straightforward to understand
  • Provide postman file to help test the API
  • Update the swagger file if necessary
 
Individual requirements
Below is the list of endpoints that are in scope of this challenge:
 
  • Get Case Study: GET /case_studies/{id}
  • Like Case Study: POST /case_studies/{id}/like
  • Visit Case Study: POST /case_studies/{id}/visit
  • Get Collections: GET /collections?owner_id={owner_id}&sort=last_modified_at&order=desc
  • Get Collection: GET /collections/{id}
  • Create Collection: POST /collections
  • Update Collection: PUT /collections/{id}
  • Delete Collection: DELETE /collections/{id}
  • Add To Collection: POST /collections/{id}/items/add?item_id={item_id}
  • Delete Collection Item: DELETE /collections/{id}/items/{item_id}
  • Get Notification Status: GET /notifications/status
  • Get Notifications: GET /notifications
We have implemented the following two endpoints in the base code, please base your submission on that and add other endpoints:
  • Get User: /users/{id}
  • Get Me: /users/me
Documentation
Register to download the following documents we provided in the forum
  • Base code
  • Swagger Documentation
  • Database Design (DDL / ERD)


Final Submission Guidelines

What To Submit
  • Full source code with all the requirements implemented, including unit tests
  • Other docs like postman file, sql scripts, gradle build script, etc... as mentioned above
  • Detailed readme in markdown format that describes how to configure, build, run and verify the code

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30073051