0% found this document useful (0 votes)
8 views

OOP Programming - EPITA Individual Assessment - Banking Application

Uploaded by

Fusty Zou
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

OOP Programming - EPITA Individual Assessment - Banking Application

Uploaded by

Fusty Zou
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

College Dorset College

Module Object-Oriented Programming Semester 2


Continuous Assessment [Project] 1 of 2
Tutor John Rowley
Submission Dates See Moodle for Submission dates

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.

Bank Employee View


1. As a bank employee you can create and delete customers.
2. Each new customer gets a savings account and a current account.
3. You can only delete customers who have zero balances.
4. You can create transactions (lodge, withdraw) for each customer. You should be able
to add and withdraw for a specified account.
5. To create a customer account you need first name, last name and email.
6. You should be able to show a complete list of customers including their balances in
savings and current account.
7. There should be a menu item allowing you to list customers, their account numbers.

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

Meeting coding specifications:


Creating files, opening files, reading files 5
Showing on screen menus 5
Login specifications (customer / employee) 5
File naming requirements 5
Reading and writing transactions appropriately 10
Appropriate level of unit tests 5
Program Construction
Appropriate program flow, code organisation, 10
uploaded and shared from git
Report
Report submitted and submitted as PDF 5
Total: 100 marks
Negative Marking
Failure to identify project, code files with student name -5 per file to max of -30 marks
and number
Build failure 50% reduction in overall
marks

You might also like