Challenge Overview
Project Overview
The goal of this project is to create a web application that can do the following:
- Extraction of Subsidiaries Information from pre-defined sources for given entity.
- Configure the web sources and search the negative news for Entity Name, Entity Owner, Parent Name and Subsidiaries name.
- Present the consolidated negative news report.
Challenge Overview
For this challenge we need your help to build some REST based services / API to support the web app.
General Requirements
- The services must be built as REST API
- The services must be a microservice
- You need to clearly document the API using Swagger
- Open source libraries with Apache v2 and MIT licenses are ok, for any others you must get approval from us first.
Detailed Requirements
Below are the services we need to support the web app:
-
Login: this will authenticate the given credentials against a database table, and it will return a token and the user object (including user’s role) if login is successful. Please note that password in the database should be hashed, we cannot store password as plain text.
-
APIs to support actions on the Negative News -> Administration page, note only admin role can access these APIs. The values for the 4 sections should come from configured values instead of hardcoded.
-
APIs to get scope data for the Negative News -> Search page. Note the data should be based on what the admin saves on the Administration page.
-
API to support search feature on the Negative News -> Search page. For the search api, the implementation can simply return mock response data based on the data structure indicated by the page (example: news grouped by factor, each news item has a title, short description, link, relationships, etc).
-
API to export selected news items to PDF. Note we expect the API export the content of the page (i.e. what you see after you open the news link in browser) to PDF, not the row data.
You should use mongodb as backend database.
After you register to the challenge, you can see the prototype of the app to better understand the requirements.
Technology
Node.js
REST
Microservice
Swagger
MongoDB