OOP Programming - EPITA Individual Assessment - Banking Application
OOP Programming - EPITA Individual Assessment - Banking Application
Banking Application
You are required to create a MVC banking application that meets the following requirements
outlined below. Where you find ambiguity in the requirements, you are expected to use your
initiative and make a judgement call to complete the assignment. The code base can build
upon the application you delivered in Semester 1
Logging In
An opening menu should ask if you are a Bank Employee or a Customer.
To successfully login as a bank employee you must type in the pin 'A1234'
To successfully login as a customer, you must enter your first name, last name,
account number and pin.
Customer View
1. To login, a customer must enter their name, account code AND a pin number for their
account
2. A customer can retrieve the transaction history for their specified account.
3. They can add and subtract money to either their savings account or current account.
4. They cannot have negative balances
.
Creating Accounts
1. Using a suitable database, your application should generate the appropriate
database on startup using migrations.
2. The system should create accounts based on the following rules:
The account will be called xx-nn-yy-zz where xx is the initials of the customer,
nn is the length of the total name (first name and last name, yy is the alphabetical
position of the first initial and zz is the alphabetical position of the second initial
(see table below) - together they make up the pin number. A unique incremental
ID should be used to differentiate accounts – appended to the end as +id
A BCDEFGH I J K L M N O P Q R S T U V W X Y Z
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Example Joe Smith = js-8-10-19: account number is js-8-10-19, pin code is 1019+1
You will create a savings account is called js-8-10-19, and a current account is called js-8-10-
19.
The database should track for the account. You are required to have a transaction history for
the savings account AND a transactions history for the current account
Each transaction record should store the date, the action (withdraw, lodgement), the money
transferred / withdrawn and the final balance. Use tabs ('\t') to delineate the fields
e.g. 23-01-2017 Withdrawal 25.67 100.17
A bank employee can add and withdraw money on behalf of a specified customer
Coding Requirements
1. Each code file should contain your name and student number. You will be negatively
marked (-5 marks) if you fail to identify your code files.
2. A PDF report should be describe what you have done and the challenges you
encountered and include screenshots of your application
3. Your code should demonstrate the appropriate use of the following (see marking sheet
for full details):
1. Commenting
2. Abstract Classes, Classes
3. Interfaces
4. Inheritance
5. Functions / reuse / Polymorphism
6. Private, Public and Protected methods
7. Arrays / Collections
8. Code should be appropriately separated into files
9. A simple test module for confirming functions and objects behave
appropriately – this can be a ‘driver’ file.
4. Ensure your code is separated into separate files to allow for reusability
5. Ensure your code has a 'testing' module to confirm your functions are working
correctly
Marking Scheme (Part 2 – 40% - UML)
Appropriate demonstration of: Max Marks
Interfaces 5
Inheritance 5
Classes / Abstract Classes 5
Functions 5
Arrays 5
Variables 5
Code formatting, layout, appropriate file 5
separation
Polymorphism 5
Private, Protected and Public functions 5
Events and exception handling 5