Giter VIP home page Giter VIP logo

transaction-statistics's Introduction

Transaction Statistics

Restful API for transaction statistics. The main use case for our API is to calculate realtime statistic from the last 60 seconds. There will be three APIs, one of them is called every time a transaction is made. It is also the sole input of this rest API. The second one returns the statistic based of the transactions of the last 60 seconds.Third one is to delete all transactions.

Getting Started

Running the application

mvn spring-boot:run

Running the tests

mvn test

Available Endpoints

POST /transactions : Every Time a new transaction happened, this endpoint will be called.

GET /statistics : Returns the statistic based on the transactions which happened in the last 60 seconds.

DELETE /transactions : Delete all transactions

Producing Statistics

According to the current time, the container provides all valid TransactionStatisticsAggregator(s) Statistics are calculated by iterating on all valid aggregators.

Request/Response Explanied

POST /transactions

Every Time a new transaction happened, this endpoint will be called. Body: { "amount": 12.3, "timestamp": 1478192204000 }

Where: amount - transaction amount timestamp - transaction time in epoch in millis in UTC time zone (this is not current timestamp) Returns: Empty body with either 201 or 204. 201 - in case of success 204 - if transaction is older than 60 seconds Where: amount is a double specifying the amount time is a long specifying unix time format in milliseconds

GET /statistics

It returns the statistic based on the transactions which happened in the last 60 seconds.

Returns: { "sum": 1000, "avg": 100, "max": 200, "min": 50, "count": 10 }

Where: sum is a double specifying the total sum of transaction value in the last 60 seconds

avg is a double specifying the average amount of transaction value in the last 60 seconds

max is a double specifying single highest transaction value in the last 60 seconds

min is a double specifying single lowest transaction value in the last 60 seconds

count is a long specifying the total number of transactions happened in the last 60 seconds

transaction-statistics's People

Watchers

BharatSatija avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.