[STEEM BOUNTY] European Commission EFTG Project – Developing Investor's Portal API With Elastic Search

in #utopian-io5 years ago

Utopian for European Commission (EC):

Utopian.io is running this task request on behalf of the EC Blockchain Competence Center (BLKCC).



GitHub Repository:

https://github.com/scr53005/eftg-steem

Project Background:

The EFTG Project's background and scope are described here:
European Financial Transparency Gateway (EFTG) EC Initiative

Estimated Task Complexity:

Medium

Task Specifications:

Develop the API needed for the Investor's Portal.

The existing front end will utilize the API to connect to the project’s Elastic Search database.



Figure 1: Search Form Design

Deliverables

  • Three API endpoints
    • Issuer name endpoint
    • Legal entity identifiers endpoint
    • Search endpoint
  • Documentation on how to deploy and test

Requirements:

  • Use NodeJS for developing the API
  • Develop API methods as POST
  • Send query parameters in JSON format in the body of the HTTP Request
  • Provide API response in JSON format



Figure 2: Investor's Portal

API Endpoints

Issuer name endpoint
The Issuer name endpoint will return the list of Issuer names needed for the autocomplete of the multiselect Issuer name field

  1. The endpoint should be: /issuer_names.json
  2. Searchable field: issuer name with query string parameter name as issuer_name
  3. Additional parameters:
    • Page
      Data type: number
      Parameter name: page
      Default value: Set to 1 if no value passed
    • Page size
      Data type: number
      Parameter name: page_size
      Default value: Set to 10 if no value passed
    • Order by
      Data type: string
      Parameter name: order_by
      Allowed value: issuer_name
  4. Response format:
    The structure of the response should match below example
    https://cdn.blkcc.xyz/issuer_names.json

Legal entity identifiers endpoint
The Legal entity identifiers endpoint will return the list of Legal entity identifiers needed for the autocomplete of the multiselect Legal entity identifier field

  1. The endpoint should be: /identifiers.json
  2. Searchable fields:
    • Legal entity identifier value
      Data type: string
      Parameter name: identifier_value
    • Legal entity identifier id
      Data type: number
      Parameter name: identifier_id
      If there is no value passed, match on all types of identifiers
  3. Additional parameters:
    • Page
      Data type: number
      Parameter name: page
      Default value: Set to 1 if no value passed
    • Page size
      Data type: number
      Parameter name: page_size
      Default value: Set to 10 if no value passed
    • Order by
      Data type: string
      Parameter name: order_by
      Allowed value: identifier_value
  4. Response format:
    The structure of the response should match below example
    https://cdn.blkcc.xyz/identifiers.json



Figure 3: Search Results Design

Search endpoint
The search endpoint will return the search result submitted through the investor’s interface

  1. The endpoint should be: /search.json

  2. Searchable fields:

    • Issuer name
      Data type: array of issuer IDs with data type number
      Parameter name: issuer_name
    • Company Country
      Data type: array of country codes with data type string
      Parameter name: home_member_state
    • Disclosure date from
      Data type: UTC timestamp
      Parameter name: disclosure_date_from
    • Disclosure date to
      Data type: UTC timestamp
      Parameter name: disclosure_date_to
    • Legal entity identifier
      Data type: array of strings
      Parameter name: identifier_value
    • Document class and subclass
      Data type: array of subclass IDs with data type number
      Parameter name: subclass
    • Financial year
      Data type: array of years with data type number
      Parameter name: financial_year
    • Title
      Data type: string
      Parameter name: title
  3. Additional parameters:

    • Page
      Data type: number
      Parameter name: page
      Default value: Set to 1 if no value passed
    • Page size
      Data type: number
      Parameter name: page_size
      Default value: Set to 10 if no value passed
    • Order by
      Data type: string
      Parameter name: order_by
      Allowed values: (maximum of one field only)
      • home_member_state
      • disclosure_date
      • document_language
  4. Response format:
    The structure of the response should match the example here:
    https://cdn.blkcc.xyz/search.json

  5. Timestamp UTC/GMT format
    Each API response contains a timestamp with the date and time in Universal Time Coordinated/Greenwich Mean Time (UTC/GMT), sometimes referred to as "Zulu time."

    Here's a breakdown of the components of an example timestamp (dateTime_in_UTC/GMT = 2015-08-09T21:51:26Z):
    2015 -Year
    08 - Month
    09 - Day
    T - Time
    21 - Hour
    51 - Minute
    26 - Second
    Z - Zulu Time

Deadline:

Three (3) weeks, set to start once the candidate selection is made.

How to Register Interest and Gather Further Information:

Please contact us on https://discord.gg/pV5hgDA

Rewards Information:

Rewards generated by this task request will be sent as liquid STEEM to the task solver once the task is completed, as decided by the Project owner.

The task will be considered complete after it has been tested and accepted on our private STEEM blockchain (https://explorer.blkcc.xyz/#/) and when the solvers publish a Utopian post, explaining what they did in order to solve the task.

Sort:  

A link to the description of the project, for those who wonder what this is about or who want to have "the bigger picture"

https://steemit.com/utopian-io/@sorin.cristescu/european-financial-transparency-gateway

Congratulations @utopian.tasks! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You published more than 20 posts. Your next target is to reach 30 posts.
You received more than 2000 upvotes. Your next target is to reach 3000 upvotes.

Click here to view your Board
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Support SteemitBoard's project! Vote for its witness and get one more award!

This post has been included in the latest edition of SOS Daily News - a digest of all you need to know about the State of Steem.



Congratulations @utopian.tasks!
Your post was mentioned in the Steem Hit Parade in the following category:

  • Pending payout - Ranked 7 with $ 68,17