Sie sind auf Seite 1von 3

Write an application for Banking Domain as per following usecase.

Application will be used by bank employees to facilitate their customers


in doing day today banking activities like :

1) New customer can apply for opening a new saving or current account
with the bank.
2) Minumum balance for opening saving account is Rs 10000.00 and Rs. 50000.00
for current account.
3) Customer should provide name,age,phone,email and address while applying for
account.
4) After account is opened, customer will become account holder with unique
account number and customer id.
5) Application will have facilities like closing account, checking balance,
credit/debit some amount, transfer account from one branch to other branch of the
same bank.
6) Those cutomers who are doing transactions of around Rs 200000.00 in a month,
would be declared as premium customers with added advanteges and offers.
7) Application will allow to generate report for daily transactions.
8) Application will allow to generate report for date wise transactions.
9) Application will allow to generate report for monthly transactions.
10) Application will allow to generate report for a range of dates.
11) Application will allow to generate transaction report for financiyal year.
12) Application will be sending notifications to customers, whenever a
transaction happening for more then Rs 5000.00

Keeping all requirements in mind, database design and application programming


should be done.

Number of tabels :

1) bank_detail

bank_id number(20) Not null primary key Auto generated


name string(20) Not null
strength Number(10)
type String(20) Nationalized/private/foreign

2) branch_detail

branch_id number(20) Not null primary key Auto generated


name String(20) Not null
address String(20)
bank_id Number(20) foreign key

3) customer_detail

customer_id number(20) Not null primary key Auto generated


name String(20) Not null
age number
phone number
email string(20)
type string new/premium
branch_id number(20) foreign key

4) customer_address

address_id number(20) Not null primary key Auto generated


street String(20) Not null
city string(20)
state string(20)
customer_id number(20) foreign key

5) account_detail

account_id number(20) Not null primary key Auto generated


type String(10) Not null saving/current
amount double(20)
status char A/I
customer_id Number(20) foreign key(no unique constrainst)

6) offer_detail

offer_id number(20) Not null primary key Auto generated


type String(20) Not null credit card/cash/loan/gift
offer_date date
expiry_date date
utilized string Y/N
customer_id Number(20) foreign key

Add more columns if required.

Java Application Objects :

DAO Classes (containing only JDBC logic)

1) BankDAO
public void save(Bank bank)
public void update(Bank bank)
public Bank read()
2) BranchDAO
3) CustomerDAO
4) AccountDAO
public void save(Account bank)
public void update(Account bank)
public Account readById()
public List<Account> readByCustomerId()
public List<Account> readAll()
public void delete(int id)

5) OfferDAO
6) AddressDAO

Service Classes (containing only business and validation logic)

1) BankService
public void add(Bank)
public void modify(Bank)
public Bank show(int id)

2) BranchService
3) CustomerService
4) AccountService
public void open(Account bank)
public void modify(Account bank)
public void close(Account bank)
public double balance(int id)
public double withdraw(int id,double amount)
public double deposit(int id,double amount)
4) ReportService
public List currentDateTransaction(int accountId)
public List dayTransaction(int accountId,Date day)
public List monthlyTransaction(int accountId,String month)
public List rangeTransaction(int accountId,Date from,Date to)
public List financialTransaction(int accountId)
public List debitTransaction(int accountId)
public List creditTransaction(int accountId)

5) OfferService
6) AddressService

Data Holder Classes (containing properties and getter and setters)

1) Bank
2) Branch
3) Customer
4) Account
5) Offer
6) Address

Generate more classes if required