0% found this document useful (0 votes)
29 views7 pages

Banking System MCO

wdff

Uploaded by

jebjebavestruz8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views7 pages

Banking System MCO

wdff

Uploaded by

jebjebavestruz8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

# Project Documentation

## Project Title: Banking System

## Members: [Baito, Mitran, Talbo]

### Introduction

#### Purpose of the Project:

The purpose of the Banking System project is to provide a comprehensive solution for managing

banking operations. It aims to address the need for efficient account management, transactions,

and loan processing in a banking environment. The project was motivated by the increasing

demand for streamlined banking services and the need for automation to enhance customer

experience and operational efficiency.

#### Objectives:

- Enable users to open new accounts with ease.

- Facilitate deposit and withdrawal transactions securely.

- Provide functionality for applying and managing loans.

- Generate account statements for users' reference.

- Enable users to view their transaction history.

#### Scope:

The project includes functionalities such as account opening, deposit, withdrawal, loan

application, account statement generation, and transaction history viewing. It encompasses the

core banking operations required for day-to-day transactions and account management. However,

advanced features such as investment management and international transactions are considered

out of scope for this project.


### Project Overview

#### Description of the Project:

The Banking System project is a Java-based application that offers various banking

functionalities to users. It provides a user-friendly interface for performing banking operations

efficiently. The project aims to simplify the banking experience for both customers and bank

personnel by automating key processes.

#### Key Features:

- Account opening: Users can easily open new accounts by providing necessary information.

- Deposit and withdrawal: Facilitates secure deposit and withdrawal transactions.

- Loan application: Allows users to apply for loans and manage loan accounts.

- Account statement generation: Generates detailed account statements for users' reference.

- Transaction history viewing: Provides users with access to their transaction history for better

financial management.

### User Manual

#### Getting Started:

To get started with the Banking System:

1. Launch the application.

2. Follow the on-screen instructions to navigate through the menu options.

3. Choose the desired operation by entering the corresponding number.

4. Follow the prompts to complete the transaction.

#### User Guide:

- **Open Account**: Enter personal details and initial balance to open a new account.
- **Deposit**: Enter the account number and deposit amount to add funds to an account.

- **Withdraw**: Enter the account number and withdrawal amount to deduct funds from an

account.

- **Apply for Loan**: Apply for a loan by providing the account number and loan amount.

- **Generate Account Statement**: Enter the account number to view a detailed account

statement.

- **View Transaction**: Enter the account number to view transaction history including

deposits, withdrawals, and loans.

## Troubleshooting Tips

### Common Issues and Solutions

1. **Account Not Found**: If users encounter "Account not found" error:

- Double-check the entered account number for accuracy.

- Ensure the account exists in the system by confirming details with the user.

2. **Invalid Choice**: If users receive "Invalid choice" message:

- Verify that the chosen option matches the displayed menu.

- Ensure correct input format (e.g., numeric choices).

3. **Insufficient Funds**: If users face "Insufficient funds" error:

- Advise users to check their account balance before attempting withdrawals or loan

applications.

- Recommend depositing funds or adjusting the withdrawal/loan amount.


4. **Application Crashes**: If the application crashes unexpectedly:

- Check for any runtime errors or exceptions displayed in the console.

- Ensure all required input fields are filled correctly.

- Restart the application and retry the operation.

### FAQs

1. **How do I open a new account?**

- Follow the prompts to enter personal details and initial balance when prompted.

2. **Can I deposit money into someone else's account?**

- No, deposits can only be made into the user's own account for security reasons.

3. **What should I do if I forget my account number?**

- Contact customer support or visit the bank branch for assistance in retrieving your account

number.

## Code Documentation

### Overview of Codebase

The codebase comprises several Java files organized into classes and helper methods.

### Comments and Documentation

Class: Bank1

Purpose: This class serves as the main controller for the banking system. It handles user

interactions, displays the menu, and delegates actions based on user input.
Methods:

main(String[] args): The main entry point of the application. It displays the menu, prompts the

user for input, and calls corresponding methods based on user choices.

displayMenu(): Displays the menu options available to the user.

openAccount(Scanner input): Allows users to open a new bank account by collecting required

details and creating an Account object.

deposit(Scanner input): Handles deposit transactions by updating the balance of the specified

account.

withdraw(Scanner input): Manages withdrawal transactions by deducting the specified amount

from the account balance.

applyForLoan(Scanner input): Processes loan applications by updating the account balance with

the loan amount.

generateAccountStatement(Scanner input): Generates an account statement displaying account

information and transaction history.

viewTransaction(Scanner input): Displays transaction history for a specified account.

Class: Account

Purpose: Represents a bank account with various attributes and methods to manage account

operations.

Variables:

accountNumber: Unique identifier for the account.

lastName, firstName, middleName: Personal details of the account holder.

dateOfBirth, address, zipCode, contactNumber: Additional information about the account holder.

accountType: Indicates whether the account is of type "Savings" or "Checking".

balance: Current balance of the account.

deposits, withdrawals, loans: Arrays to store transaction amounts for deposits, withdrawals, and

loans.
depositCount, withdrawalCount, loanCount: Track the number of transactions for each type.

Methods:

deposit(int amount): Updates the account balance by adding the specified amount and records the

transaction.

withdraw(int amount): Deducts the specified amount from the account balance if sufficient funds

are available and records the transaction.

applyLoan(int amount): Increases the account balance by the loan amount and records the loan

transaction.

generateAccountStatement(): Constructs an account statement with account details and

transaction history.

getters: Provide access to account attributes and transaction details.

Class: AccountNumberGenerator

Purpose: Generates unique account numbers for newly opened accounts.

Variables:

accountNumberCounter: Tracks the last generated account number.

Methods:

generateAccountNumber(): Generates a new account number by incrementing the counter.

### Coding Conventions and Style Guide

- **Naming Conventions**: Follows camelCase for variable and method names, and PascalCase

for class names.

- **Indentation**: Uses 4 spaces for indentation.

- **Formatting**: Consistently applies curly braces for code blocks and follows a clear structure

for methods.

## Conclusion
### Summary of Project Outcomes

The Banking System project successfully achieved its objectives of providing efficient account

management and transaction processing functionalities. Users can perform various banking

operations seamlessly, enhancing their overall banking experience.

### Acknowledgments

We would like to acknowledge the contributions of all team members who participated in the

development of the project. Special thanks to our mentors and stakeholders for their valuable

guidance and support throughout the project's lifecycle.

You might also like