{"id":19036459,"url":"https://github.com/chizuru-yamauchi/Online_Banking_System_SpringBoot_Postgresql","last_synced_at":"2026-05-06T00:30:23.453Z","repository":{"id":241134914,"uuid":"804388270","full_name":"chizuru-nina-yamauchi/Online_Banking_System_SpringBoot_Postgresql","owner":"chizuru-nina-yamauchi","description":"Assignment to build application with Java, Spring Boot, JPA, PostgreSQL, Maven, Jakarta EE, hibernate","archived":false,"fork":false,"pushed_at":"2024-06-10T20:36:45.000Z","size":290,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-02T05:41:56.664Z","etag":null,"topics":["hibernate","java","jpa","junit-test","mockito","orm","postgresql","relational-database","spring-boot","spring-mvc","spring-security","thymeleaf"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chizuru-nina-yamauchi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-22T13:46:26.000Z","updated_at":"2024-10-12T23:19:57.000Z","dependencies_parsed_at":"2024-05-22T16:29:57.767Z","dependency_job_id":"6b5e602c-7364-4dec-94e7-f7b2724f7c73","html_url":"https://github.com/chizuru-nina-yamauchi/Online_Banking_System_SpringBoot_Postgresql","commit_stats":null,"previous_names":["chizuru-nina-yamauchi/online_banking_system-springboot-postgresql-"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chizuru-nina-yamauchi%2FOnline_Banking_System_SpringBoot_Postgresql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chizuru-nina-yamauchi%2FOnline_Banking_System_SpringBoot_Postgresql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chizuru-nina-yamauchi%2FOnline_Banking_System_SpringBoot_Postgresql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chizuru-nina-yamauchi%2FOnline_Banking_System_SpringBoot_Postgresql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chizuru-nina-yamauchi","download_url":"https://codeload.github.com/chizuru-nina-yamauchi/Online_Banking_System_SpringBoot_Postgresql/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240093145,"owners_count":19746776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hibernate","java","jpa","junit-test","mockito","orm","postgresql","relational-database","spring-boot","spring-mvc","spring-security","thymeleaf"],"created_at":"2024-11-08T21:54:31.387Z","updated_at":"2026-05-06T00:30:21.366Z","avatar_url":"https://github.com/chizuru-nina-yamauchi.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Assignment: Enhance the Online Banking System with Transaction Management\n\nAssignment created and guided with README file by Safwan kher(https://github.com/safwan-kher).\n\n---\nREADME and instruction by Safwan kher.\n\n\n#### Objective:\nExtend 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.\n\n#### Requirements:\n1. **Advanced Transaction Management:**\n   - Use `@Transactional` to ensure that all financial transactions are processed in a secure and consistent manner.\n   - Use `@Modifying` for direct updates in the database for operations like deposits and withdrawals.\n\n2. **Service Layer Updates:**\n   - Develop methods that handle the creation of new accounts, deposits, withdrawals, and transfers, ensuring all operations are transactionally secure.\n\n3. **Controller Enhancements:**\n   - Introduce new endpoints in the controller to handle requests for each banking operation.\n\n4. **View Modifications:**\n   - Modify Thymeleaf templates to include forms for each banking operation.\n   - Ensure that the user interface is intuitive and responsive.\n\n#### Tasks:\n\n1. **Implement Transactional Operations:**\n   - Create a method to open a new bank account.\n   - Implement a method to deposit money into an account.\n   - Develop a method for withdrawing money from an account.\n   - Set up a method to transfer money between two accounts.\n\n2. **Thymeleaf Template Implementation:**\n   - Design forms for opening a new account, depositing money, withdrawing money, and transferring funds.\n   - Use Bootstrap 5 to ensure the forms are responsive and user-friendly.\n\n3. **Testing:**\n   - Test all functionalities to ensure they work as expected and handle edge cases like overdrafts and transfer errors.\n\n#### Thymeleaf Templates with Bootstrap 5:\n\n### 1. Home Page Template (home.html)\n\nThis template serves as the landing page and includes links to other functionalities like account creation, deposits, withdrawals, and transfers.\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml xmlns:th=\"http://www.thymeleaf.org\" lang=\"en\"\u003e\n\u003chead\u003e\n    \u003cmeta charset=\"UTF-8\"\u003e\n    \u003ctitle\u003eOnline Banking System\u003c/title\u003e\n    \u003clink href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css\" rel=\"stylesheet\"\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv class=\"container mt-4\"\u003e\n    \u003ch1\u003eWelcome to the Online Banking System\u003c/h1\u003e\n    \u003cdiv class=\"row\"\u003e\n        \u003cdiv class=\"col-md-4\"\u003e\n            \u003ca th:href=\"@{/accounts/new}\" class=\"btn btn-success\"\u003eOpen New Account\u003c/a\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"col-md-4\"\u003e\n            \u003ca th:href=\"@{/transactions/deposit}\" class=\"btn btn-primary\"\u003eDeposit Money\u003c/a\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"col-md-4\"\u003e\n            \u003ca th:href=\"@{/transactions/withdraw}\" class=\"btn btn-warning\"\u003eWithdraw Money\u003c/a\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"col-md-4 mt-3\"\u003e\n            \u003ca th:href=\"@{/transactions/transfer}\" class=\"btn btn-info\"\u003eTransfer Money\u003c/a\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\n### 2. New Account Form Template (new-account.html)\n\nThis template includes a form for opening a new bank account.\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml xmlns:th=\"http://www.thymeleaf.org\" lang=\"en\"\u003e\n\u003chead\u003e\n    \u003cmeta charset=\"UTF-8\"\u003e\n    \u003ctitle\u003eOpen New Account\u003c/title\u003e\n    \u003clink href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css\" rel=\"stylesheet\"\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv class=\"container mt-4\"\u003e\n    \u003ch1\u003eOpen a New Account\u003c/h1\u003e\n    \u003cform th:action=\"@{/accounts/new}\" method=\"post\" class=\"mt-3\"\u003e\n        \u003cdiv class=\"mb-3\"\u003e\n            \u003clabel for=\"accountType\" class=\"form-label\"\u003eAccount Type\u003c/label\u003e\n            \u003cselect id=\"accountType\" name=\"accountType\" class=\"form-control\" required\u003e\n                \u003coption value=\"SAVINGS\"\u003eSavings\u003c/option\u003e\n                \u003coption value=\"CHECKING\"\u003eChecking\u003c/option\u003e\n            \u003c/select\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"mb-3\"\u003e\n            \u003clabel for=\"initialDeposit\" class=\"form-label\"\u003eInitial Deposit\u003c/label\u003e\n            \u003cinput type=\"number\" id=\"initialDeposit\" name=\"initialDeposit\" class=\"form-control\" required\u003e\n        \u003c/div\u003e\n        \u003cbutton type=\"submit\" class=\"btn btn-primary\"\u003eOpen Account\u003c/button\u003e\n    \u003c/form\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\n### 3. Deposit Form Template (deposit.html)\n\nThis template includes a form for depositing money into an account.\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml xmlns:th=\"http://www.thymeleaf.org\" lang=\"en\"\u003e\n\u003chead\u003e\n    \u003cmeta charset=\"UTF-8\"\u003e\n    \u003ctitle\u003eDeposit Money\u003c/title\u003e\n    \u003clink href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css\" rel=\"stylesheet\"\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv class=\"container mt-4\"\u003e\n    \u003ch1\u003eDeposit Money\u003c/h1\u003e\n    \u003cform th:action=\"@{/transactions/deposit}\" method=\"post\" class=\"mt-3\"\u003e\n        \u003cdiv class=\"mb-3\"\u003e\n            \u003clabel for=\"accountNumber\" class=\"form-label\"\u003eAccount Number\u003c/label\u003e\n            \u003cinput type=\"text\" id=\"accountNumber\" name=\"accountNumber\" class=\"form-control\" required\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"mb-3\"\u003e\n            \u003clabel for=\"amount\" class=\"form-label\"\u003eAmount\u003c/label\u003e\n            \u003cinput type=\"number\" id=\"amount\" name=\"amount\" class=\"form-control\" required\u003e\n        \u003c/div\u003e\n        \u003cbutton type=\"submit\" class=\"btn btn-primary\"\u003eDeposit\u003c/button\u003e\n    \u003c/form\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\n### 4. Withdrawal Form Template (withdraw.html)\n\nThis template includes a form for withdrawing money from an account.\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml xmlns:th=\"http://www.thymeleaf.org\" lang=\"en\"\u003e\n\u003chead\u003e\n    \u003cmeta charset=\"UTF-8\"\u003e\n    \u003ctitle\u003eWithdraw Money\u003c/title\u003e\n    \u003clink href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css\" rel=\"stylesheet\"\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv class=\"container mt-4\"\u003e\n    \u003ch1\u003eWithdraw Money\u003c/h1\u003e\n    \u003cform th:action=\"@{/transactions/withdraw}\" method=\"post\" class=\"mt-3\"\u003e\n        \u003cdiv class=\"mb-3\"\u003e\n            \u003clabel for=\"accountNumber\" class=\"form-label\"\u003eAccount Number\u003c/label\u003e\n            \u003cinput type=\"text\" id=\"accountNumber\" name=\"accountNumber\" class=\"form-control\" required\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"mb-3\"\u003e\n            \u003clabel for=\"amount\" class=\"form-label\"\u003eAmount\u003c/label\u003e\n            \u003cinput type=\"number\" id=\"amount\" name=\"amount\" class=\"form-control\" required\u003e\n        \u003c/div\u003e\n        \u003cbutton type=\"submit\" class=\"btn btn-primary\"\u003eWithdraw\u003c/button\u003e\n    \u003c/form\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\n### 5. Transfer Form Template (transfer.html)\n\nThis template includes a form for transferring money between two accounts.\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml xmlns:th=\"http://www.thymeleaf.org\" lang=\"en\"\u003e\n\u003chead\u003e\n    \u003cmeta charset=\"UTF-8\"\u003e\n    \u003ctitle\u003eTransfer Money\u003c/title\u003e\n    \u003clink href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css\" rel=\"stylesheet\"\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv class=\"container mt-4\"\u003e\n    \u003ch1\u003eTransfer Money\u003c/h1\u003e\n    \u003cform th:action=\"@{/transactions/transfer}\" method=\"post\" class=\"mt-3\"\u003e\n        \u003cdiv class=\"mb-3\"\u003e\n            \u003clabel for=\"fromAccount\" class=\"form-label\"\u003eFrom Account Number\u003c/label\u003e\n            \u003cinput type=\"text\" id=\"fromAccount\" name=\"fromAccount\" class=\"form-control\" required\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"mb-3\"\u003e\n            \u003clabel for=\"toAccount\" class=\"form-label\"\u003eTo Account Number\u003c/label\u003e\n            \u003cinput type=\"text\" id=\"toAccount\" name=\"toAccount\" class=\"form-control\" required\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"mb-3\"\u003e\n            \u003clabel for=\"amount\" class=\"form-label\"\u003eAmount\u003c/label\u003e\n            \u003cinput type=\"number\" id=\"amount\" name=\"amount\" class=\"form-control\" required\u003e\n        \u003c/div\u003e\n        \u003cbutton type=\"submit\" class=\"btn btn-primary\"\u003eTransfer\u003c/button\u003e\n    \u003c/form\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\nThese 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.\n\n\n\n---\n\nResult by Chizuru Yamauchi\n\n\n![pic1](./src/main/resources/pics/pic1.png)\n![pic2](./src/main/resources/pics/pic2.png)\n![pic3](./src/main/resources/pics/pic3.png)\n![pic4](./src/main/resources/pics/pic4.png)\n\n\n- *Before transfer money*\n\n![pic6](./src/main/resources/pics/pic6.png)\n\n![pic5](./src/main/resources/pics/pic5.png)\n\n- *After transfer money*\n\n![pic7](./src/main/resources/pics/pic7.png)\n\n- *Added features to log in and security*\n\n![pic8](./src/main/resources/pics/pic8.png)\n\n![pic9](./src/main/resources/pics/pic9.png)\n\n![pic10](./src/main/resources/pics/pic10.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchizuru-yamauchi%2FOnline_Banking_System_SpringBoot_Postgresql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchizuru-yamauchi%2FOnline_Banking_System_SpringBoot_Postgresql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchizuru-yamauchi%2FOnline_Banking_System_SpringBoot_Postgresql/lists"}