In our continuing journey of building out a challenge service, we are ready to separate out the API from the primary app. Up until now, we have been development all of our app in an integrated app called serenity core (https://github.com/topcoderinc/serenity-core). We had attempted to break out the API once before (https://github.com/topcoderinc/lc1-serenity-challenge-service/tree/inital_submission and http://www.topcoder.com/challenge-details/30045304/?type=develop). While the submission was good, we weren't ready to fully implement the solution and the code became stall. In this challenge, we are revitalizing the effort to create a challenge service which will be a JSON only API.
Along our journey, we began use to Swagger to document our API. We have implemented solutions from Apigee which integrated a Swagger configuration file with NodeJs in our Discussion API (https://github.com/topcoderinc/serenity-discussions-api and http://www.topcoder.com/challenge-details/30046041/?type=develop). Now we are implement the same pattern for our Challenge API.
The goal of this challenge is to create a JSON API for our challenges based upon the Swagger file.
Please start with our github repository and implement the API which is documented in Swagger. https://github.com/topcoderinc/lc1-serenity-challenge-service. Please look at the readme file for details about how setup the repo and coding guidance.
- Use the existing swagger documentation and implement API using existing structure
- Implement Mocha Tests
- Add Postman or swagger example objects
- Add migration scripts per readme using the resources in Swagger as guidance.
- Utilize configuration where appropriate and document any new configuration options introduced.
Feel free to utlize any existing code in https://github.com/topcoderinc/serenity-core or https://github.com/topcoderinc/serenity-discussions-api.
Final Submission Guidelines
- Please submit code as a zip file
- Mocha Tests are required.
- If any changes to swagger file are done then the file must validate via grunt yamlTest
- Please submit deploy and configuration setup instructions