Media Library API Challenge #1

Register
Submit a solution
The challenge is finished.

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

Review style

Final Review

Community Review Board

Approval

User Sign-Off

Challenge links

ID: 30094475