Skip to content

Davidazullo/app-nodejs-codechallenge

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Yape Code Challenge 🚀

Table of Contents

Candidate Information

Problem

Every time a financial transaction is created it must be validated by our anti-fraud microservice and then the same service sends a message back to update the transaction status. For now, there are only three transaction statuses:

  1. Pending
  2. Approved
  3. Rejected

Every transaction with a value greater than 1000 should be rejected.

  flowchart LR
    Transaction -- Save Transaction with pending Status --> transactionDatabase[(Database)]
    Transaction --Send transaction Created event--> Anti-Fraud
    Anti-Fraud -- Send transaction Status Approved event--> Transaction
    Anti-Fraud -- Send transaction Status Rejected event--> Transaction
    Transaction -- Update transaction Status event--> transactionDatabase[(Database)]
Loading

Tech Stack

  1. Backend: Node.js with Express.js as the framework and Sequelize as ORM.
  2. Database: PostgreSQL.
  3. Message Broker: Kafka.

Resources

  1. Transaction creation:
{
  "accountExternalIdDebit": "Guid",
  "accountExternalIdCredit": "Guid",
  "tranferTypeId": 1,
  "value": 120
}
  1. Transaction retrieval:
{
  "transactionExternalId": "Guid",
  "transactionType": {
    "name": ""
  },
  "transactionStatus": {
    "name": ""
  },
  "value": 120,
  "createdAt": "Date"
}

About

Code challenge for potential Yaperos 🚀

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published