Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/amruthlp12/com.onlinebankingapplication
An online banking application built with Java and MySQL, providing functionalities for account management, customer management, and transaction management.
https://github.com/amruthlp12/com.onlinebankingapplication
account-management backend-development banking banking-software client-server customer-management database database-integration financial-software java java-development jdbc mvc mysql object-oriented-programming open-source project-structure sql transaction-management
Last synced: 15 days ago
JSON representation
An online banking application built with Java and MySQL, providing functionalities for account management, customer management, and transaction management.
- Host: GitHub
- URL: https://github.com/amruthlp12/com.onlinebankingapplication
- Owner: AmruthLP12
- License: mit
- Created: 2024-07-05T09:29:18.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-07-21T11:21:56.000Z (6 months ago)
- Last Synced: 2024-11-16T02:17:59.632Z (3 months ago)
- Topics: account-management, backend-development, banking, banking-software, client-server, customer-management, database, database-integration, financial-software, java, java-development, jdbc, mvc, mysql, object-oriented-programming, open-source, project-structure, sql, transaction-management
- Language: Java
- Homepage:
- Size: 2.3 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Online Banking Application
An online banking application built with Java and MySQL, providing functionalities for account management, customer management, and transaction management.
## Table of Contents
- [Features](#Features)
- [Installation](#Installation)
- [Database Setup](#database-setup)
- [Configuration](#Configuration)
- [Usage](#Usage)
- [Project Structure](#project-structure)
- [Contributing](CONTRIBUTING.md)
- [License](LICENSE.md)
## Features
* Manage Accounts:
* View Account
* View All Accounts
* Create Account
* Update Account
* Delete Account
* Manage Customers
* Manage Transactions# Installation
### Prerequisites
- Java 8+
- MySQL
- Maven### Steps
1. Clone the repository
```bash
git clone https://github.com/AmruthLP12/com.OnlineBankingApplication.git
cd online-banking-application
```
2. Build the project using Maven:```bash
mvn clean install
```3. Run the application:
```bash
mvn exec:java -Dexec.mainClass="com.banking.ui.Main"
```## Database Setup
1. Create the database schema:
```sql
-- Drop existing database
DROP DATABASE IF EXISTS banking;-- Create database
CREATE DATABASE banking;-- Use the created database
USE banking;
```
2. Create the tables:```sql
-- Table for customers
CREATE TABLE customers (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
phone VARCHAR(15) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);-- Table for accounts
CREATE TABLE accounts (
id INT AUTO_INCREMENT PRIMARY KEY,
account_number VARCHAR(20) UNIQUE NOT NULL,
account_type ENUM('SAVINGS', 'CHECKING', 'BUSINESS') NOT NULL,
balance DOUBLE NOT NULL DEFAULT 0.0,
customer_id INT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (customer_id) REFERENCES customers(id)
);-- Table for transactions
CREATE TABLE transactions (
id INT AUTO_INCREMENT PRIMARY KEY,
account_id INT NOT NULL,
amount DOUBLE NOT NULL,
type ENUM('DEPOSIT', 'WITHDRAWAL', 'TRANSFER') NOT NULL,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (account_id) REFERENCES accounts(id)
);```
3. Populate the tables with initial data (optional):
```sql
-- Sample data insertion
INSERT INTO customers (name, email, phone) VALUES
('John Doe', '[email protected]', '123-456-7890'),
('Jane Smith', '[email protected]', '098-765-4321');INSERT INTO accounts (account_number, account_type, balance, customer_id) VALUES
('ACC1001', 'SAVINGS', 1500.00, 1),
('ACC1002', 'CHECKING', 500.00, 2),
('ACC1003', 'BUSINESS', 2500.00, 1);INSERT INTO transactions (account_id, amount, type) VALUES
(1, 200.00, 'DEPOSIT'),
(1, -50.00, 'WITHDRAWAL'),
(2, 100.00, 'DEPOSIT'),
(3, 500.00, 'TRANSFER');```
## Configuration
Configure the database connection in` src/main/resources/config.properties`:
```properties
db.url=jdbc:mysql://localhost:3306/banking
db.username=root
db.password=your_password```
## Usage1. Run the application:
```bash
mvn exec:java -Dexec.mainClass="com.banking.ui.Main"```
2. Follow the on-screen prompts to manage accounts, customers, and transactions.
## Project Structure
```bash
online-banking-application/
│
├── src/
│ ├── com/
│ │ ├── banking/
│ │ │ ├── config/
│ │ │ │ └── DatabaseConfig.java
│ │ │ ├── dao/
│ │ │ │ └── AccountDAO.java
│ │ │ │ └── CustomerDAO.java
│ │ │ │ └── TransactionDAO.java
│ │ │ ├── model/
│ │ │ │ └── Account.java
│ │ │ │ └── Customer.java
│ │ │ │ └── Transaction.java
│ │ │ ├── service/
│ │ │ │ └── AccountService.java
│ │ │ │ └── CustomerService.java
│ │ │ │ └── TransactionService.java
│ │ │ ├── ui/
│ │ │ └── AccountUI.java
│ │ │ └── CustomerUI.java
│ │ │ └── TransactionUI.java
│ │ │ └── Main.java
│ ├── resources/
│ │ └── schema.sql
│
├── pom.xml
├── README.md
└── .gitignore```
## Contributing
Contributions are always welcome!
See [CONTRIBUTING.md](CONTRIBUTING.md) for ways to get started.
## License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.