Challenge Overview



Welcome to “Poseidon LPC - Microservices API Design Challenge”.  In this challenge, we would like to create the design for backend microservices service API which will be used by the Poseidon Mobile SDK.

 

PROJECT BACKGROUND

The objective is to build an SDK for the Loyalty Payment Card(LPC) for our client. This SDK will be used by LPC’s clients to build the LPC mobile app.

So the SDK will provide all required functionalities from authentication to payment processing, reward management, etc. 

 

TECHNOLOGY STACK

  • Swagger OpenAPI 3.0 

  • Database ERD (DynamoDB)

 

REQUIREMENTS

  • The LPC backend system is a multi-tenant backend that can allow many clients to use this system. This should be taken into account in API and database design. 

  • In this challenge we will provide the below docs for your reference

    • Poseidon API Architecture View.pdf
      • This gives you the overview of the Poseidon API Architecture 
    • Components Design.pdf
      • This gives you the data dictionary and key identifiers involved and what we think is the services and its boundaries, we are looking for your suggestions to refine them.
    • Services Design Canvas.pdf   
      • This is the Design canvas for each of the micro services and is for your reference and we need you to refine the design canvas for each of the services. You can use this word doc to populate.
      • For more details on the design canvas and various elements of it, please refer this url
    • Third Party Payment Provider APIs (provided in the forum)
      • This gives the WSDL files of the third party payment provider APIs. This has most of the APIs but may not be complete. Refer to these files to know what inputs will be required and the response from these APIs.
  • The current LPC payment Swagger file will be provided in the forum
  • ���SQL (Postgresql) will also be provided in the forum. It must be converted and updated to DynamoDB
  • We want you to create the API design for the below micro-services 

    • Registration Service
    • Customer Service
    • Card Service
    • Wallet Service
    • Loyalty Service
    • Privacy Service (To view and update Privacy/Record of processing activities[ROPA]/Terms & Conditions)
  • For card and customer services, if the endpoints don’t have a corresponding SOAP WSDL file please ignore it

  • For registration and customer create the following properties should be treated as required:

    • First and last names
    • Address
    • Birthdate
    • E-mail
    • Mobile phone
    • Passport���
  • The swagger files will be used by the Prism tool (https://stoplight.io/open-source/prism/). Therefore, examples and responses should be properly modeled for that


Final Submission Guidelines

Please provide the below docs.

  • Swagger OpenAPI 3.0 file - YML format

  • Database ERD file for DynamoDB

  • Updated Design Canvas for each of the services [Word doc is fine]

ELIGIBLE EVENTS:

2020 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30117494