Challenge Overview
Challenge Objectives
-
Implement swagger for Nodejs backend
-
Provide a Screen to API mapping for mobile app
-
Ensure Swagger complies with both roles for mobile app
Project Background
In this series of challenges, we’re building a node.js backend for a mobile app (challenge currently in progress). As the first step, we want the Topcoder community to help us build a Swagger API specification for the backend. We're providing the screens for the mobile app which should help understand the overall functionality and flow
Technology Stack
-
Node.js
-
Swagger
App Designs access
See challenge forums for access
Individual requirements
-
Build Swagger spec for all APIs to be built for various screens
-
Make sure that your Swagger spec conforms to both roles - normal user and admin user
-
Make sure to include appropriate models as part of your Swagger
-
Make sure that your Swagger handles error cases for each endpoint as applicable
What To Submit
Submit the following
-
Swagger API Specification
-
Screen to API Mapping (feel free to annotate the screenshots or provide a document for this)
-
Any other documents to support your API spec & mapping
Should you have any doubt, feel free to ask in the challenge forum!
General Requirements
- Submission file should be named swagger.yaml
- App spec should written in OpenAPI 3.0 format.
- Create Database schema for each table/collections based data/fields displayed on provided storyboard screens
- The requests and responses should properly list all fields.
- For responses, you should cover all the cases, not just 200 status code, like 404
- Descriptions should be properly written for APIs, request input and responses etc
- You can use editor.swagger.io for validation.
- Create some sample body request for each API paths
Final Submission Guidelines
Final Submission Guidelines
Please see above
Scorecard & Review Criteria
We’ll follow a subjective scorecard (1-10) for this challenge. The submissions will be evaluated on the basis of- Completeness of Swagger file with respect to storyboard screens
- Adherence to best practices for designing REST API
- Accuracy of screen to API mapping
- Sample data on each endpoints.