This project is part of one of the many projects in the current ING Honours Track in which we currently are testing the agility of a system. Everyone starts out with a given set of initial requirements and has to implement those, nothing more, nothing less. After the initial implementation each group receives a set of requirements changes that they have to implement. While implementing the new requirements every-one has to keep track of the amount of time spent on those changes so that we can use that as a relative metric for the agility of a system.
For implementing the extended set of requirements we have used the Spring framework which provides us with easy to use functions for storing, retrieving and updating data. And combined with a JSON RPC library we could easily create an JSON RPC API for our project. One issue that we had, which we hadn't tested well enough in the v1.0 was that the JSON RPC library did not support multiple classes on the same endpoint, so we ended implementing a work-around that basically redirects all HTTP traffic to the correct endpoint so that we could have everything on the same endpoint.
We have subdivided everything into 4 different packages:
- account for everything related to bank accounts
- card for everything related to debit cards
- customer for customer objects and their controllers
- transaction for handling transactions between accounts a and b
Each package has:
- a model class which represents some object or something in java
- a repository class which interacts with the database
- a service class which defines the JSON RPC methods
- a service implementation class which implements the previousely defined methods using the model and repository
- Spring Boot
- Spring web
- Spring Data JPA
- mysql-connector-java
- JSON RPC 4J
- The client (PIN machine, ATM, front end web application, etc) makes all of the API calls required for something to happen
- No security is needed
- Create a MySQL database on
localhost:3306
calleding_db
for a user with usernameing_project
and as password:localhost1234
- Run
honours.ing.banq.Application
All of the JSON RPC methods are described in the **Service
classes