BankingApp is a simple Java-based console application that simulates basic banking operations, including user sign-up, login, deposit, withdrawal, and transaction history tracking. This project is designed to demonstrate core Java programming skills, file handling, and basic OOP principles.
- User Sign-up and Login: Allows new users to register with a username, password, and initial balance.
- Secure Login: Validates credentials to ensure only registered users can access their accounts.
- Deposit & Withdraw: Users can deposit or withdraw funds, with updated balances.
- Transaction History: Maintains a record of each user's deposits and withdrawals.
- Data Persistence: User information, including balance, is saved to a file and loaded on subsequent logins.
- User Interface: Features a modern and intuitive UI for seamless user interaction.
- Java: Core programming language
- Swing: For building the user interface
- File Handling: For storing and retrieving user credentials and transaction history
- Object-Oriented Programming (OOP): Utilizes classes and objects for modularity and reusability
- Java JDK: Version 8 or higher
- IDE (Optional): Any IDE that supports Java (e.g., IntelliJ IDEA, Eclipse)
-
Clone the repository:
git clone https://github.com/vishwafernando/bankingApp.git
-
Navigate to the project directory:
cd bankingApp -
Compile the project:
Use an IDE or run the following command to compile the Java files:
javac -d bin -sourcepath src src/App/Main.java
-
Run the application:
java -cp bin App.Main
- src/: Contains the Java source files.
- core: Handles business logic for managing users and transactions.
- core: Defines the User and Transaction data models.
- App: The main class to run the application.
- assests/: Stores
credentials.txt, which holds user login data. - bin/: Contains the compiled bytecode files.
- If you’re a new user, choose the "Sign Up" option.
- Enter a username, password, and an initial balance.
- For existing users, select "Login."
- Enter your username and password.
- After logging in, choose to deposit or withdraw funds.
- The application will update and display your balance after each transaction.
- Log out to securely save your data.
The application features a modern and intuitive user interface built using Java Swing. It is designed to be user-friendly and visually appealing, ensuring that users can navigate through the application effortlessly.
- AccountManager: Manages user sign-up, login, balance updates, and data persistence.
- User: Represents a user with credentials, balance, and transaction history.
- Transaction: Captures each deposit or withdrawal for history tracking.
User credentials and balances are stored in assests/credentials.txt and updated with each transaction.
This project is licensed under the MIT License - see the LICENSE file for details.
Feel free to submit issues and pull requests to improve the application. Your contributions are welcome!
For any questions or support, please contact [vishwafernando.vf@gmail.com] or open an issue in this repository.