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
TECH REQUIREMENTS
Preferred Node-Modules
EXPECTED RESULTS
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