Challenge Overview

OVERVIEW
We are building an API (micro) service. This service will provide APIs needed for our implementation. It will be based on Loopback4 and use a PostgreSQL Database as backend.

REQUIREMENTS
  • Please see the attached list of API endpoint definitions to be implemented.
  • There is no authorization, authentication or user scheme to be implemented.
  • If there is a field that requires user identification, this field must accept a dummy value for the moment.

TECH REQUIREMENTS
  • Programming language used must be node.js written in typescript.
  • The provided project skeleton must be used for implementation.
  • Code must be properly documented.
  • The provided linting configuration must be used.
  • Every implemented functionality must be tested by unit-tests and/or acceptance tests.
  • All packages used for this implementation must be MIT, BSD or Apache 2.0.
  • Every defined port, host etc. should be put in central variables / configurations for easy re-configuration (if applicable).
  • The express based components must also based on loopback. See example inside the provided skeleton
  • Ensure that the code has no linting errors in IDE (VSCode with TSLint) and on the CLI.
  • Please see the attached list of preferred node_modules and stick to it. Exceptions from this list must be provided with a reason.
  • Do not use unmaintained or deprecated node_modules
  • All REST APIs should be inside the Loopback Swagger API Documentation and work with "try it out"
  • Files/Binaries stored in Uploads shall be saved into a configurable directory on a filesystem. All other content needs to be stored in a postgres-DB using the loopback connector.
  • For database schema please use the auto-migration approach that Loopback offers. This should enable the developers to generate the Database Schema from the models they create.

Preferred Node-Modules
  • HTTP Requests: Axios
  • Logging: @enchanted/logger
  • Linting: @enchanted/tslint
  • Testing: mocha

EXPECTED RESULTS
  • All technical requirements are applied to the implementation
  • All REST APIs must be implemented according to the provided API implementation guideline
  • All REST APIs must provide proper HTTP Error Codes
  • Unit Tests for testing of the implementation must be provided
  • Package.json must be tidied up and only contain used dependencies
  • Package.json must distinct between development and production dependencies


Final Submission Guidelines

A single zip file containing the following:
  • Complete source code that covers all requirements, including unit tests
  • Scripts to create / initialize / clean database (if needed)
  • Postman collection to test the API manually
  • Readme in markdown format explaining how to configure, run and verify your submission

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30094475