Object-Oriented Programming Project
Bank Registration and Account Management System
1. Project Overview
This project aims to design and implement a Bank Registration and Account Management
System using Object-Oriented Programming (OOP) principles in Java. The system simulates
real-world banking operations such as client registration, account creation, deposits, withdrawals,
and administrative control.
Students will apply fundamental and advanced OOP concepts to model real entities (Bank,
Client, Account, Employee) and implement interactions between them using structured design
and clean code practices.
2. Project Objectives
By completing this project, students will be able to:
• Design a complete system using UML class diagrams
• Apply encapsulation, inheritance, abstraction, and polymorphism
• Implement constructors, method overriding, and validation
• Manage data using arrays of objects
• Build a menu-driven console application using Scanner
• Simulate realistic banking scenarios using OOP design
3. Project Scope
The system must allow:
• Registering new clients in the bank
• Creating different types of accounts for clients
• Performing deposit and withdrawal operations
• Managing clients through an administrator
• Displaying client and account information
The application will be console-based and use fixed-size arrays (not collections).
Milestone 1: Conception Report (Design Phase)
Students must submit a Conception Report containing:
1. System Description
• Brief explanation of the system functionality
• Identification of system users (Admin, Employee, Client)
2. UML Class Diagram
A complete UML class diagram showing:
• All classes
• Attributes and methods
• Access modifiers (+ / −)
• Relationships:
o Inheritance
o Composition
o …
3. OOP Design Requirements
The design must include:
• At least one abstract class
• At least one inheritance hierarchy
• Method overriding
• Encapsulation with validation in setters
• Default and parameterized constructors
Deliverable: PDF file containing the UML diagram and design explanation.
Milestone 2: Implementation Phase (Coding)
Students must implement the system in Java, following their UML design.
Required Classes (Minimum)
• Person (abstract)
• Client
• Employee
• Admin
• Account (abstract)
o SavingAccount
o CurrentAccount
• BankSystem (main class)
Required OOP Concepts
• Encapsulation: private attributes with getters/setters
• Inheritance: shared behavior through parent classes
• Abstraction: abstract classes and methods
• Polymorphism: overridden methods
• Constructors: default and full constructors
Data Management
• Use arrays of objects
o Array of Client
o Each Client has an array of Account
• Track object counts manually
User Interaction
• Use Scanner to read user input
• Implement a menu-driven interface
• Validate all user inputs
Main Program Scenario (Mandatory)
The main() method must:
1. Create an Admin object
2. Display a main menu with options such as:
o Register new client
o Open account for client
o Deposit money
o Withdraw money
o Search for client
o Display all clients and accounts
o Exit
3. Allow interaction using Scanner
4. Display clear and formatted output
Project Constraints
• Console-based application only
• Must follow UML design
• Must use arrays
• Code must be well-structured and commented
• No hard-coded values for logic operations
Final Submission
Students must submit:
1. Conception Report (PDF) – UML + design explanation
2. Java Source Code – all classes
3. Screenshots of Program Output
Evaluation Criteria
• Correct use of OOP concepts
• Accuracy of UML diagram
• Code quality and structure
• Proper use of arrays and Scanner
• Correct execution of scenarios
• Input validation and error handling