[STEEM BOUNTY] European Commission EFTG Project – Developing Investor's Portal API With Elastic Search
utopian-io·@utopian.tasks·
0.000 HBD[STEEM BOUNTY] European Commission EFTG Project – Developing Investor's Portal API With Elastic Search
### Utopian for European Commission (EC): Utopian.io is running this task request on behalf of the EC Blockchain Competence Center (BLKCC). <center>  </center> ### 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](https://github.com/scr53005/eftg-steem/wiki/Introduction-to-European-Financial-Transparency-Gateway-(ETFG)-Project) ### Estimated Task Complexity: Medium ### Task Specifications: Develop the API needed for the Investor's Portal. The [existing front end](http://pulsar.dev.blkcc.xyz:8081/#/search.html) will utilize the API to connect to the project’s [Elastic Search database](https://steemit.com/utopian-io/@utopian.tasks/steem-bounty-european-commission-eftg-project-integrating-elasticsearch-on-a-private-steem-blockchain). <center>  <sub>Figure 1: Search Form Design</sub> </center> **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 <center>  <sub>Figure 2: Investor's Portal</sub> </center> ## 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 <center>  <sub>Figure 3: Search Results Design</sub> </center> **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.
👍 elviento, steeming-hot, steemitri, mercadosaway, viperblckz, luc.real, shammi, jacksartori, jacekw.dev, bluesniper, tgagtacontcon, icdayforlo, amriakeytor, brianna3s08q, emmad6, lingcullila, snafnornode, mackenziek, emmavmzr, jessica4l, leir, crokkon, espoem, nieloagranca, merlin7, abh12345, steemchoose, ulockblock, fingersik, zaphyr, arcange, adal111, newsrx, raphaelle, jakipatryk, pele23, yeiverlin, joancabz, favcau, misia1979, farizal, roj, muhammadan, phage93, miniature-tiger, holger80, steemik, new-world-steem, ukk, cpufronz, lovenfreedom, steemitboard, scipio, sorin.cristescu, chappertron, sorin.lite, techslut, didic, tdiv7653, amosbastian, jaff8, codingdefined, mcfarhat, mforsingdal, utopian-io, tombstone, jga, fandy, elmetro, inverc, ascorphat, kikeven322, olligamer, belhogat, pierlave, armandosantos, lucky2, digital.mine, yanijps2011, mgranja, bue, sixteen4narchist, electronicsworld, titoleme, zephyraijunzo, kryptarion, clayjohn, grzesiekb, lauvlad89, yovannyjvv, pennsif, tomson777, vezo, neno001hr, zedikaredirect, deltakm, efra00, mdennis, monstercrash, masterthematrix, tiffanyavd, alwaays, josedelacruz, rosatravels, carloserp-2000, lobojt, freethink, wilbert132, samirajpoot, disha66, dustin-grim, smartiot, dantealfaiz,