The task is to create a backend API for a simple blog system consisting of Articles, Users and Comments.
Features:
Articles:
- Create a new article ( title, body, and author )
- Read/retrieve a given Article by ID.
- List all articles.
- Search for a specific article.
- Add comments to a given article.
- Thumbs up to a given article.
Author:
- Create a new author ( name and job title )
- Read/retrieve given Author info by ID.
- List all authors.
Requirements:
- The features above need to be implemented in the form of a Restful API.
- The API needs to be implemented using Node js
- Use Mongo DB as a Database to store the data.
- Use Express js as the HTTP server for your API.
- Implement input validation for all the endpoints.
- Write unit and end to end test cases.
- Write design documentation for both the API and the data model.
- The code should be hosted on one of the following source management systems ( Github, Gitlab )
Bonus:
- Implement the task using one of the frameworks that support Typescript, e.g. NestJs
- Use Docker and docker-compose to automate building and provisioning of the API and the database.
- Add functionality to sort articles by the number of thumbs up given.
- Enhance articles searching ( i.e. text scoring, search engines )
- Deploy your API to one of the free hosting services, e.g. Heroku.