Challenge Overview
Welcome to “Poseidon LPC Card and Customer Microservice Challenge”. In this challenge, we would like to continue building the LPC Payment Backend API.
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+
- NestJS
- DynamoDB
- SOAP (WSDL)
REQUIREMENTS
- Update the existing code to expand the Card and Customer microservices with the endpoints defined in the API Design documents:
- Updating the mock SOAP api server is in scope
- Keep all Unit and E2E tests updated with high coverage
- The application is NestJS monorepo. New microservices should be created as new apps. Any common code should be placed in the common library
- Do not delete configuration files in existing code base without authorization in the forum
- You will have to update the Dockerfile-dev and docker-compose files to allow running the application
- Update the CI file to run the tests for all microservices
- Unit tests requirements:
- Should not depend on environment, external data, or other unit tests (All external services like Cognito, DB and SOAP API should continue to be mocked during)
- Should cover all the paths of the code, assert edge cases, and not have side effects
- 90% of coverage in each category. We expect that all controllers, services will have 100%
- Test a single small unit of work, and assert the results of the code
- Well-factored and run fast and efficiently
- E2E test (integration) requirements:
- Should not depend on environment, external data, or other unit tests (All external services like Cognito, DB and SOAP API should continue to be mocked during)
- Should cover success and failure cases (400, 401, 403, 404, etc)
- E2E tests should use the mock database calls, mock Cognito and SOAP api
- If unit testing is doing good coverage of service, E2E can stub the service call altogether
Final Submission Guidelines
- Updated source code
- Updated tests
- Updated Dockerfile and docker-compose files
- Update CI YAML file