||2 years ago|
|.mvn/wrapper||2 years ago|
|jdkDocker||2 years ago|
|src||2 years ago|
|.dockerignore||2 years ago|
|.gitignore||2 years ago|
|.gitlab-ci.yml||2 years ago|
|Dockerfile||2 years ago|
|README.md||2 years ago|
|apiE2ETest.sh||2 years ago|
|docker-compose.example.yml||2 years ago|
|entrypoint.sh||2 years ago|
|mvnw||2 years ago|
|mvnw.cmd||2 years ago|
|pom.xml||2 years ago|
Solatium is a program that simulates an ATM. The users can login into their accounts and check their balance, send transactions and disburse and deposit their money.
- Login with Verification
- Persistent Account Balance
- Deposit & disburse
- All in a Blockchain (with validation)
Download one of the newest builds and run it with
java -jar filename.jar
Setup with Docker
This project can be executed with Docker. To do so pull the image from
To start the application run
docker run --name solatium -p 8080:8080 registry.gitlab.com/berufsschul-ae/solatium:latest.
To persist the transactions you have to mount a volume to
There is also a docker-compose file with all the config done, just start it with
docker-compose -f docker-compose.example.yml up and take a look at
How to use
Go to the root of you server it will ask you for a login
Currently there are only the following hardcoded users:
"user" with password "foo"
"user1" with password "bar"
"blazej" with password "blazej123"
"augusto" with password "augusto123"
"bjarne" with password "bjarne123"
"Bank" with password "Bank"
"heiko" with password "heiko123"
After a successful login you can see your balance. You can also send the transaction and disburse and deposit your money.
You can also use the included API to check for the balance of a user or send transaction etc.
The API has the following schema:
You still need to be authorized to access this API. We suggest using curl for this. Here are the request made with curl and some explanations.
Checking the balance
curl -u user:foo localhost:8080/api/balance
If you'd run the code locally, your curl request could look like this.
This request uses the balance action to the balance for the user specified after the curl parameter "-u". After the parameter we need to provide the user credentials with the following schema "(username):(password)".
curl -u user:foo "localhost:8080/api/transaction?receiverId=user1&amount=100"
This request requires an receiverId and the amount as parameters. Here we are sending a transaction from user to user1 with an amount of 100.
curl -u user:foo localhost:8080/api/deposit?amount=100
Deposit only takes one parameter and that's amount.
curl -u user:foo localhost:8080/api/disburse?amount=100
Disburse also only takes one parameters; amount.
Setup for development
Clone the project and do a
mvn clean install
Run the project with