● Main documentation can be found by clicking here
● Project also contains Java documentation - Javadoc
Nowadays, there are many different banks that try to attract future customers with favorable services.
When creating a card, customers are asked to install the bank's mobile app, where the user will have full access to their data and accounts.
What many banks don't tell You is that they also have web apps that can also be used to manage their accounts.
Due to this, if many banks have a modern interface of their web application, they are also complex.
The complexity is that it takes time to fully use the application, for example, if You want to make a transaction, You have to click through several pages when it could be done in one: change user data, for example, if the location where You live has been changed, the possibility of transferring funds to another account and more.
The aim of the work is to analyze existing web applications of banks and to develop a server part for managing personal bank accounts.
The program should present an opportunity to easily and quickly manage bank accounts, change rates, create new cards, transactions and the ability to change their data.
In the process of the implementation of the project, as well as the bachelor's thesis, a prototype of the server will be created with functionality covering the needs of the client.
The project also contains a Postman collection that can be used to test the server-side application.
To run the project, You need to configure Your workplace:
- Installed Java 17 and Maven.
- Installed PostgreSQL.
- Installed IDE for running the app (Preferable: IntelliJ IDEA).
- Installed Postman.
- Installed Git.
- Installed Kafka. In the project I am using version 3.1.0, which can be downloaded by clicking here.
- Installed Docker (Optional).
If the requirements are met, You need to clone the repository:
- Copy HTTPS link from the repository (which is
https://github.com/UnknownPug/Managing-personal-bank-accounts.git
). - Open terminal and write
git clone https://github.com/UnknownPug/Managing-personal-bank-accounts.git
. - Open the project folder in Your IDE.
Next, we need to configure the database:
1. Open the database in IntelliJ, click on "+" button.
2. Choose the datasource and then find and choose the PostgreSQL database.
3. Set the port (if port 5432 is already in use), username and password
to Your requirements and click "Apply".
After You have set the database, You need to configure application.yml file before running the project:
-
Open
application.yml
file insrc/main/resources
-
Set the
server.port
that You are using for web services (preferable to set8082
). -
Set the
spring.datasource.password
andspring.datasource.username
to password and username that You set in database. -
Set the
spring.datasource.url
that was generated in Your database. -
Set the security users'
spring.security.user.name
andspring.security.user.password
that You set in database. -
Set the
spring.kafka.bootstrap-servers
to Your IP and port (default:localhost:9092
). -
Set in
api.key
the generated key that You got from the ExchangeRate-API web page.
After You have configured the application.yml
file, You need to run the Kafka server by following these steps:
- Open the installed folder of Kafka
cd {path to kafka folder}/bin
. - Run Zookeeper:
zookeeper-server-start ../config/zookeeper.properties
- Run Kafka server:
kafka-server-start ../config/server.properties
- Run the Kafka console for reading events:
kafka-console-consumer --topic messages --from-beginning --bootstrap-server Your_ip:Your_port
After You have run the Kafka, You can run the project.
-
Run Maven command:
mvn clean install
(ormvn clean install -U
) -
Run the project by executing
Application.java
class -
Open Postman and enjoy the project
This project includes a Dockerfile that can be used to generate Docker image.
Firstly, You need to have Docker installed on Your machine.
Next, You need to configure the Dockerfile:
-
Open the Dockerfile in the root of the project.
-
Set the
SERVER_PORT
to the port number that You are using for the web services (preferable to set8082
). -
Set the
SPRING_DATASOURCE_PASSWORD
andSPRING_DATASOURCE_USERNAME
to Your database password and username. -
Set the
SPRING_DATASOURCE_URL
to Your genrated url, but instead of ip usehost.docker.internal
. -
Set the
SPRING_SECURITY_USER_NAME
andSPRING_SECURITY_USER_PASSWORD
to password and username that You set in database. -
Set the
SPRING_KAFKA_BOOTSTRAP_SERVERS
to Your IP and port (default:localhost:9092
). -
Set the
API_KEY
to Your generated key that You got from the ExchangeRate-API web page. -
Set the
EXPOSE
port number that You are using for the web services (preferable to set8082
).
After the Docker is configured, You need to build the project by running this line in the console:
docker build -t name-image .
Where name-image
is the name of the image that You want to give to the project.
You can change the name of the image to Your needs.
After running this line, Docker will build the image of the project.
Also in this application was used third-party APIs:
- Exchange Rate API for getting exchange rate currencies
- REST Countries API for validation of existing countries
Also attached to the description is a video demonstration of the project, where You can see the main functions of the application: