Challenge Overview



Welcome to “Poseidon LPC Payment Backend API”.  In this challenge, we would like to build the initial part of the LPC Payment Backend API. This is a very big backend application that will involve lots of challenges. So jump in early.
 

PROJECT BACKGROUND

The project 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. 
 

FRAMEWORK

  • Node.js 12+
  • AWS SDK JS (>=v2.521.0)
  • NestJS (Typescript)
  • Sequelize
  • Postgresql 11+
  • SOAP (WSDL)
     

REQUIREMENTS

  • Create a mock API for the SOAP requests defined in the documentation (just provide some random data and check for uniqueness. This uniqueness doesn't need to be persisted)
  • Create the backend described in the Swagger file. Only "payments" group is in scope
  • Authorization of incoming requests is done using JWT tokens. The application should do all the authentication and authorization against AWS Cognito user pool
  • The application cannot store any files on local disk. For volatile storage – use external caching, for non-volatile – DB or S3 bucket.
  • Scripts for initializing database and data should be provided
  • The Backend is going to be deployed to Amazon EKS
    • Configuration must be done using environment variables
    • Dockerfile and docker-compose.yml must be provided as well
  • Unit testing is in scope
  • Success (20x) and failure cases are in scope:
    • 400 -> missing required fields or invalid fields. Invalid pagination
    • 401 -> not authorized
    • 409 -> customer already exists
    • etc...���


Final Submission Guidelines

Zip file with:
  • Mocked SOAP API
  • LPC Payment Backend API
  • Deployment guide for local and Amazon services
  • Validation guide

ELIGIBLE EVENTS:

2020 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30108620