A modern banking system built with Java Swing and MySQL — designed for simplicity, speed, and security.
MyBank System is a sleek, LAN-compatible desktop banking application built with Java Swing.
It provides users with intuitive access to core financial features like Deposits, Withdrawals, Transfers, and Statements — all managed through a responsive dashboard interface.
🧭 Interface Theme:
Minimalist teal-gray theme inspired by modern fintech dashboards.
🎨 Color Palette:
| Element | Color | Hex |
|---|---|---|
| Primary Background | Deep Teal | #2F3E46 |
| Accent | Soft Olive | #CAD2C5 |
| Buttons | Slate Blue | #52796F |
| Text | Ivory White | #F8F9FA |
🖋️ Typography:
Uses “Segoe UI” — clean and legible across all resolutions.
🧩 UI Features:
- 🪟 Rounded corners and smooth hover effects
- 🖼️ Circular user avatar rendering
- 📊 Dashboard widgets (Balance, Transaction Cards, etc.)
- 💡 Dynamic refresh and event-based updates
com.mybank
├── dao
│ ├── DBConnection.java # Database connector
│ ├── UserDAO.java # Handles user CRUD
│ └── TransactionDAO.java # Handles transactions
│
├── model
│ ├── User.java # User entity
│ └── Transaction.java # Transaction entity
│
├── view
│ ├── LoginFrame.java
│ ├── RegisterFrame.java
│ ├── DashboardFrame.java
│ ├── DepositFrame.java
│ ├── WithdrawFrame.java
│ ├── TransferFrame.java
│ ├── TransactionHistoryFrame.java
│ └── ProfileFrame.java
│
└── Main.java # App entry point
| Feature | Description |
|---|---|
| 🔐 Secure Login / Registration | BCrypt-based password hashing for safe credentials. |
| 💰 Deposit / Withdraw / Transfer | Full transaction management with validation. |
| 📜 Transaction History | Track your activity with timestamps and filtering. |
| 🖼️ Profile Customization | Upload avatar + update personal info. |
| 📈 Dashboard Insights (Pro) | Real-time balance, last 5 transactions, and activity chart. |
| 🧾 Export Statements (PDF) | Generate financial summaries for offline records. |
| Column | Type | Details |
|---|---|---|
| user_id | INT (PK, AI) | Unique user ID |
| username | VARCHAR(50) | Unique username |
| password | VARCHAR(255) | Hashed password |
| full_name | VARCHAR(100) | User's full name |
| VARCHAR(100) | User's email | |
| phone | VARCHAR(20) | Contact number |
| address | VARCHAR(255) | Residential address |
| photo | VARCHAR(255) | File path to photo |
| role | ENUM('user','admin') | User access level |
| created_at | TIMESTAMP | Auto timestamp |
| Column | Type | Details |
|---|---|---|
| id | INT (PK, AI) | Transaction ID |
| user_id | INT | Linked to users.user_id |
| type | ENUM('DEPOSIT','WITHDRAW','TRANSFER') | Transaction type |
| amount | DECIMAL(12,2) | Transaction amount |
| target_account | VARCHAR(50) | Target username (for transfers) |
| created_at | TIMESTAMP | Auto timestamp |
git clone https://github.com/yourusername/MyBankSystem.git
cd MyBankSystemCREATE DATABASE mybank_system;
USE mybank_system;Import schema (from the section above).
Edit file: DBConnection.java
private static final String URL = "jdbc:mysql://localhost:3306/mybank_system?useSSL=false&serverTimezone=UTC";
private static final String USER = "root";
private static final String PASSWORD = "";mvn clean install
java -cp target/classes com.mybank.Main✅ Or simply open in IntelliJ IDEA → Run Main.java.
- Perform transactions
- View personal history
- Edit profile details
- View all users
- Export global transaction reports
- Manage users and roles
| Layer | Technology |
|---|---|
| Frontend | Java Swing (AWT, FlatLaf-inspired styling) |
| Backend | Java DAO Pattern |
| Database | MySQL / MariaDB |
| Security | BCrypt (Password hashing) |
| Reports | OpenPDF (PDF Export) |
- 🧮 Balance graphs with Recharts
- 🧾 Automated monthly statement emails
- 🌐 RESTful API for mobile app integration
- 🧑💻 Dark mode UI theme
- 🪙 Currency conversion widget
Developed with ❤️ by shemaarafati2020
“Simplicity, Security, and Speed — That’s MyBank.”
📧 Contact: [email protected] 🌍 Based in: Rwanda 🇷🇼 🧑💻 GitHub: @shemaarafati2020
© 2025 MyBank System | Designed for Desktop Banking
```Would you like me to generate realistic mock screenshots (Swing UI in teal/gray theme) for your actual project — Login, Dashboard, Deposit, etc.? I can create those visuals for you automatically so they match your project’s design.