https://github.com/inventixcity/inventix-bank
Advanced Banking Management System built with Java & JavaFX - Features dual authentication, real-time transactions, account management, and modern MVC architecture with SQLite database
https://github.com/inventixcity/inventix-bank
authantication clean-code java javafx javafx-application mvc-architecture sqlite sqlite3
Last synced: 2 months ago
JSON representation
Advanced Banking Management System built with Java & JavaFX - Features dual authentication, real-time transactions, account management, and modern MVC architecture with SQLite database
- Host: GitHub
- URL: https://github.com/inventixcity/inventix-bank
- Owner: inventixcity
- License: mit
- Created: 2025-07-16T20:24:04.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-07-16T20:29:32.000Z (12 months ago)
- Last Synced: 2025-07-19T23:38:59.731Z (11 months ago)
- Topics: authantication, clean-code, java, javafx, javafx-application, mvc-architecture, sqlite, sqlite3
- Language: Java
- Homepage:
- Size: 388 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🏦 Inventix Bank - Advanced Banking Management System
[](https://www.oracle.com/java/)
[](https://openjfx.io/)
[](https://www.sqlite.org/)
[](https://maven.apache.org/)
## 📖 Overview
**Inventix Bank** is a sophisticated, enterprise-grade banking management system built with modern Java technologies. This application demonstrates advanced software engineering principles with a clean, scalable architecture that separates concerns effectively through the Model-View-Controller (MVC) pattern.
## ✨ Key Features
### 🔐 **Dual Authentication System**
- **Client Portal**: Secure login for customers with personalized dashboards
- **Admin Panel**: Administrative access for bank staff with comprehensive management tools
- **Role-based Access Control**: Different privileges for different user types
### 💰 **Advanced Account Management**
- **Dual Account Types**: Support for both Checking and Savings accounts
- **Real-time Balance Tracking**: Live updates of account balances
- **Account Summary**: Comprehensive overview of all client accounts
- **Transaction History**: Detailed records of all financial activities
### 🚀 **Money Transfer & Transactions**
- **Instant Money Transfer**: Send money between accounts seamlessly
- **Transaction Validation**: Robust validation for all financial operations
- **Transaction Categories**: Organized transaction types (Income/Expense tracking)
- **Recent Transactions**: Quick access to latest financial activities
### 👥 **Client Management (Admin)**
- **Client Creation**: Add new clients with account setup
- **Client Overview**: Comprehensive client database management
- **Account Monitoring**: Track client account activities
- **Deposit Operations**: Administrative deposit functionalities
### 📊 **Advanced Dashboard**
- **Financial Overview**: Income and expense summaries
- **Account Analytics**: Visual representation of account status
- **Transaction Timeline**: Chronological view of all activities
- **Personalized Greetings**: Dynamic user interface elements
### 🐛 **Bug Reporting System**
- **Integrated Bug Tracker**: In-app bug reporting functionality
- **Issue Management**: Systematic approach to handling user feedback
- **Quality Assurance**: Continuous improvement mechanism
## 🏗️ Architecture & Design
### **Model-View-Controller (MVC) Pattern**
```
📁 src/main/java/com/jmc/inventix/
├── 📁 Models/ # Data layer and business logic
│ ├── Client.java # Client entity with JavaFX properties
│ ├── Account.java # Account base class
│ ├── Transaction.java # Transaction entity
│ └── DatabaseDriver.java # Database operations
├── 📁 Views/ # UI presentation layer
│ ├── ViewFactory.java # Factory for creating views
│ └── Various enums for UI components
└── 📁 Controllers/ # Application logic layer
├── LoginController.java
├── 📁 Client/ # Client-specific controllers
└── 📁 Admin/ # Admin-specific controllers
```
### **Key Design Patterns**
- **Singleton Pattern**: Centralized model management
- **Factory Pattern**: Dynamic view creation
- **Observer Pattern**: Real-time data binding
- **MVC Pattern**: Clear separation of concerns
### **Database Design**
- **SQLite Database**: Lightweight, file-based database
- **Normalized Schema**: Efficient data organization
- **Transaction Integrity**: ACID compliance for financial operations
- **Prepared Statements**: SQL injection prevention
## 🛠️ Technology Stack
### **Core Technologies**
- **Java 15**: Modern language features and performance
- **JavaFX 18.0.1**: Rich desktop application framework
- **FXML**: Declarative UI design
- **SQLite 3.36.0**: Embedded database engine
- **Maven**: Dependency management and build automation
### **Libraries & Dependencies**
- **FontAwesome FX**: Professional iconography
- **JSR305**: Code annotations for better maintainability
- **JUnit 5**: Comprehensive testing framework
## 🚀 Getting Started
### **Prerequisites**
- Java 15 or higher
- Maven 3.8.1 or higher
- Git (for version control)
### **Installation**
1. **Clone the repository**
```bash
git clone https://github.com/inventixcity/inventix-bank.git
cd inventix-bank
```
2. **Build the project**
```bash
mvn clean compile
```
3. **Run the application**
```bash
mvn javafx:run
```
### **Alternative Run Method**
```bash
# Using Maven with specific main class
mvn clean javafx:run -Djavafx.mainClass="com.jmc.inventix.App"
```
## 📊 Database Schema
### **Main Tables**
- **Clients**: Customer information and authentication
- **CheckingAccounts**: Checking account details
- **SavingsAccounts**: Savings account information
- **Transactions**: Financial transaction records
- **BugReports**: User feedback and issue tracking
## 🔒 Security Features
- **Encrypted Authentication**: Secure login mechanism
- **Parameter Validation**: Input sanitization
- **Role-based Access**: User privilege management
- **Database Security**: Prepared statements prevent SQL injection
## 🎨 User Interface
### **Modern Design Elements**
- **Responsive Layout**: Adaptive UI components
- **Professional Styling**: Clean, banking-appropriate design
- **Intuitive Navigation**: User-friendly interface
- **Real-time Updates**: Dynamic content refresh
### **Key UI Components**
- **Login Screen**: Secure authentication interface
- **Client Dashboard**: Personalized financial overview
- **Admin Panel**: Comprehensive management tools
- **Transaction Views**: Detailed financial records
## 📈 Project Highlights
### **Advanced Features**
- **Real-time Data Binding**: JavaFX properties for live updates
- **Comprehensive Error Handling**: Robust exception management
- **Modular Architecture**: Scalable and maintainable codebase
- **Professional Documentation**: Extensive code comments
### **Code Quality**
- **Clean Code Principles**: Readable and maintainable
- **Design Patterns**: Industry-standard implementations
- **Type Safety**: Comprehensive use of generics
- **Null Safety**: JSR305 annotations for better reliability
## 🔧 Development
### **Project Structure**
```
inventix-bank/
├── src/main/java/ # Source code
├── src/main/resources/ # Resources (FXML, images)
├── target/ # Compiled classes
├── pom.xml # Maven configuration
└── inventix.db # SQLite database
```
### **Build Commands**
```bash
# Clean and compile
mvn clean compile
# Run tests
mvn test
# Package application
mvn package
# Run application
mvn javafx:run
```
## 🤝 Contributing
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## 📝 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 👨💻 Author
**Umer Fraz Ahmed**
- GitHub: [@inventixcity](https://github.com/inventixcity)
- Email: inventixcui@gmail.com
## 🙏 Acknowledgments
- JavaFX community for excellent documentation
- SQLite team for the reliable database engine
- FontAwesome for professional icons
- Maven team for build automation tools
## 📞 Support
For support, email inventixcui@gmail.com or create an issue in the GitHub repository.
---
**⭐ Star this repository if you find it useful!**
*Built with ❤️ by Umer Fraz Ahmed*