Skip to content

Latest commit

 

History

History
117 lines (84 loc) · 3.61 KB

File metadata and controls

117 lines (84 loc) · 3.61 KB

Project Overview

This project is designed to showcase robust Java application development, database integration with MySQL, and professional-grade UI/UX design in a multi-window desktop environment.


Installation

  1. Clone this repository

    git clone https://github.com/Orlando275/JavaBank-MySQL.git
  2. Configure your Java project

    • If you’re using Maven, add the MySQL Connector dependency in your pom.xml.
    • If you’re using Gradle, include the connector in your build.gradle.
    • Or download the JDBC driver JAR of your choice, place it in a lib/ directory, and add it to your classpath.
  3. Build and run

    # With Maven
    mvn clean install
    mvn exec:java -Dexec.mainClass="com.mycompany.project_.Main"
    
    # With Gradle
    gradle build
    gradle run

Database Deploy

Create the project_bank database and users table by executing the following SQL (via MySQL Workbench, CLI, etc.):

CREATE DATABASE project_bank;
USE project_bank;

CREATE TABLE IF NOT EXISTS users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(255) NOT NULL UNIQUE,
  email    VARCHAR(255),
  password VARCHAR(255) NOT NULL
);

Features

  • User Authentication – Secure login and registration with password hashing and database validation.
  • Account Management – Deposit, withdrawal, and balance overview for each user.
  • Transaction History – Persistent log of transactions, sortable and filterable for quick review.
  • Multi-Window UI – Intuitive Java Swing interfaces with responsive layouts.
  • Modular Architecture – Clear separation of controllers, DAOs, models, and views for easy extension and maintenance.

Project Structure

PROJECT_BANK/
├── src/
│   ├── main/
│   │   └── java/
│   │       └── com/
│   │           └── mycompany/
│   │               └── project_/
│   │                   ├── LoginWindow.java
│   │                   ├── Main.java
│   │                   ├── MainPage.java
│   │                   └── RegisterWindow.java
│   └── test/
│       └── java/
├── target/
├── LICENSE
├── pom.xml
└── README.md

Screenshots

Welcome Screen

Welcome Screen

Registration Form

Registration Form

Login Window

Login Window

Login Success Popup

Login Success

Main Page Dashboard

Main Dashboard


How It Works

  • StartupMain.java initializes the Swing UI and establishes a JDBC connection to project_bank.
  • Authentication – User credentials are validated against the users table; new users can register.
  • Account Operations – Deposit and withdrawal actions update the database and UI in real time.
  • Transaction Logging – Every operation is recorded and fetched for display in the history view.
  • Modularity – Controllers handle user interactions, DAOs manage SQL queries, and models represent core entities — making feature additions straightforward.

📄 License

This project is licensed under the MIT License — see the LICENSE file for details.