./gradlew run
- Ktor - Kotlin async web framework
- Netty - Async web server
- Exposed - Kotlin SQL framework
- H2 - Embeddable database
- HikariCP - High performance JDBC connection pooling
- Jackson - JSON serialization/deserialization
- JUnit 5, AssertJ and Rest Assured for testing
POST /transaction/transfer
--> Transfer money between two accounts
e.g -
{
"srcAccountId": 3,
"destAccountId": 1,
"purpose": "Salary",
"amount": 25000
}
returns
{
"data": {
"id": 1,
"purpose": "Salary",
"srcAccountId": 3,
"destAccountId": 1,
"amount": 25000,
"dateUpdated": 1569038234809
},
"code": 201,
"msg": "Transaction successfully completed!"
}
GET /account/
--> get all accounts from the database.
GET /account/{id}
--> get specific account with the given id from the database.
GET /transaction
--> get all transactions from the database.
GET /transaction/{id}
--> get specific transaction with the given id from the database.
100% test coverage by Unit Tests for service layer and repository layer and Integration Tests for all apis.