Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chizuru-nina-yamauchi/online_banking_system_springboot_postgresql

Assignment to build application with Java, Spring Boot, JPA, PostgreSQL, Maven, Jakarta EE, hibernate
https://github.com/chizuru-nina-yamauchi/online_banking_system_springboot_postgresql

hibernate java jpa junit-test mockito orm postgresql relational-database spring-boot spring-mvc spring-security thymeleaf

Last synced: 6 days ago
JSON representation

Assignment to build application with Java, Spring Boot, JPA, PostgreSQL, Maven, Jakarta EE, hibernate

Awesome Lists containing this project

README

        

### Assignment: Enhance the Online Banking System with Transaction Management

Assignment created and guided with README file by Safwan kher(https://github.com/safwan-kher).

---
README and instruction by Safwan kher.

#### Objective:
Extend the functionality of an existing Online Banking System by incorporating advanced transaction management using `@Transactional` and `@Modifying` annotations. This involves creating services for opening new accounts, depositing money, withdrawing money, and transferring funds between accounts. Additionally, update the Thymeleaf templates to allow users to interact with these new functionalities using Bootstrap 5 for styling.

#### Requirements:
1. **Advanced Transaction Management:**
- Use `@Transactional` to ensure that all financial transactions are processed in a secure and consistent manner.
- Use `@Modifying` for direct updates in the database for operations like deposits and withdrawals.

2. **Service Layer Updates:**
- Develop methods that handle the creation of new accounts, deposits, withdrawals, and transfers, ensuring all operations are transactionally secure.

3. **Controller Enhancements:**
- Introduce new endpoints in the controller to handle requests for each banking operation.

4. **View Modifications:**
- Modify Thymeleaf templates to include forms for each banking operation.
- Ensure that the user interface is intuitive and responsive.

#### Tasks:

1. **Implement Transactional Operations:**
- Create a method to open a new bank account.
- Implement a method to deposit money into an account.
- Develop a method for withdrawing money from an account.
- Set up a method to transfer money between two accounts.

2. **Thymeleaf Template Implementation:**
- Design forms for opening a new account, depositing money, withdrawing money, and transferring funds.
- Use Bootstrap 5 to ensure the forms are responsive and user-friendly.

3. **Testing:**
- Test all functionalities to ensure they work as expected and handle edge cases like overdrafts and transfer errors.

#### Thymeleaf Templates with Bootstrap 5:

### 1. Home Page Template (home.html)

This template serves as the landing page and includes links to other functionalities like account creation, deposits, withdrawals, and transfers.

```html


Online Banking System


Welcome to the Online Banking System



```

### 2. New Account Form Template (new-account.html)

This template includes a form for opening a new bank account.

```html


Open New Account


Open a New Account




Account Type

Savings
Checking



Initial Deposit


Open Account

```

### 3. Deposit Form Template (deposit.html)

This template includes a form for depositing money into an account.

```html


Deposit Money


Deposit Money




Account Number



Amount


Deposit

```

### 4. Withdrawal Form Template (withdraw.html)

This template includes a form for withdrawing money from an account.

```html


Withdraw Money


Withdraw Money




Account Number



Amount


Withdraw

```

### 5. Transfer Form Template (transfer.html)

This template includes a form for transferring money between two accounts.

```html


Transfer Money


Transfer Money




From Account Number



To Account Number



Amount


Transfer

```

These templates provide a comprehensive user interface for the Online Banking System, allowing users to manage their accounts and perform various transactions efficiently. The use of Bootstrap 5 ensures that the interface is modern and responsive.

---

Result by Chizuru Yamauchi

![pic1](./src/main/resources/pics/pic1.png)
![pic2](./src/main/resources/pics/pic2.png)
![pic3](./src/main/resources/pics/pic3.png)
![pic4](./src/main/resources/pics/pic4.png)

- *Before transfer money*

![pic6](./src/main/resources/pics/pic6.png)

![pic5](./src/main/resources/pics/pic5.png)

- *After transfer money*

![pic7](./src/main/resources/pics/pic7.png)

- *Added features to log in and security*

![pic8](./src/main/resources/pics/pic8.png)

![pic9](./src/main/resources/pics/pic9.png)

![pic10](./src/main/resources/pics/pic10.png)