By: T16-3 Since: Aug 2018 Licence: MIT

1. Introduction

Bank Address Book (BankAB) is a business process management and workflow application platform, whereby its users are all the employees in a banking environment. This platform supports the basic daily routine of each employee such as:

  • Checking working schedule

  • Applying for leave application

  • Checking in and out during working hours

The managers and administrators will have higher priority access level of BankAB such as changing the priority level of the employee and approve or reject leave requests.
This user guide will give you step by step instruction on how you can use the features of BankAB.

2. Getting Started with BankAB

  1. Ensure you have Java version 9 or later installed in your Computer. Download

  2. Create a folder named BankAB in the desired location.

  3. Download the latest BankAddressBook.jar here into the folder BankAB.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

    Ui
  5. If the app does not contain any sample data (refer to Table 1), something went wrong during the download process. Delete the folder BankAB and repeat step 1 to 4.

  6. The following table contains a sample list of employees with the respective account details when the application runs for the first time or when ResetCommand was executed in the previous runtime:

Table 1. List of sample user accounts at first launch or upon reset

Name

NRIC

Password

Priority Level

Alex Yeoh

S1234567E

Password

ADMINISTRATOR (Highest Priority level)

Leonard Tan

S1230000E

Password

I.T. UNIT

Bernice Yu

T1234567E

Password

MANAGER

Charlotte Oliveiro

F1234567E

Password

BASIC (Lowest Priority Level)

  1. Type the command in the command box and press Enter to execute it.
    e.g. typing help and pressing Enter will open the help window.

  2. Some example commands you can try:

    • login ic/S1234567E pwd/Password : Log in as Alex Yeoh, with a priority level of ADMINISTRATOR.

    • list : lists all contacts

    • add n/John Doe ic/S9458861T pwd/Password p/98765432 e/johnd@example.com d/Junior Management a/311, Clementi Ave 2, #02-25 wr/7.5 t/friends t/owesMoney : adds a contact named John Doe to the Address Book.

    • schedule 2 : list the schedule of the 2nd employee in the address book

    • exit : exits the app

  3. Refer to Features for details of each command.

3. Features

Command Format

  • Words in UPPER_CASE are the parameters to be supplied by the user e.g. in add n/NAME, NAME is a parameter which can be used as add n/John Doe.

  • Items in square brackets are optional e.g n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.

  • Items with ​ after them can be used multiple times including zero times e.g. [t/TAG]…​ can be used as   (i.e. 0 times), t/friend, t/friend t/family etc.

  • Using items without after them multiple times will cause the app to either accept the last acceptable item or prompt an error message.

  • Parameters can be in any order. e.g.: Specifying parameters in the order ic/NRIC n/NAME is identical to n/NAME ic/NRIC.

  • All the commands listed below requires user to login unless specified.

3.1. Personal User Account

3.1.1. Login to the application: login

Logs in to the application using a registered NRIC and password.
Format: login ic/NRIC pwd/PASSWORD
Example: login ic/S1234567E pwd/Password

A successful login will show the NRIC and name which you have used to login, followed by the schedule of the day (if any).

loginTextBox
login success screenShot

3.1.2. Checks the login status of the application: checkloginstatus

Prints whether this application is logged in.
Also prints the logged in NRIC if logged in.

3.1.3. Logout of the application: logout

Logs out of the application, allowing for other users to log in again.

3.1.4. Editing personal particulars : edit

Edits the existing particulars of the logged in user.
Format : edit [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…​

  • Edits the personal details of the user who is logged in.

  • At least one of the optional fields must be provided.

  • Existing values will be updated to the input values.

  • When editing tags, the existing tags of the employee will be removed i.e adding of tags is not cumulative.

  • You can remove all the employee’s tags by typing t/ without specifying any tags after it.

  • You are able to edit the following fields for this command:

    • Name: n/NAME

    • Address: a/ADDRESS

    • Phone: p/PHONE_NUMBER

    • Email: e/EMAIL

    • Tag(s): t/TAG1 t/TAG2 …​

This command will NOT be able to edit the following:

  • Department

  • Leave

  • NRIC

  • Password

  • Priority Level

  • Schedule

  • Mode

  • Working Rate

Examples:

  • edit p/91234567 e/johndoe@example.com
    Sets the logged in employee’s details to the aforementioned email and phone number.

  • edit t/friend t/lecturer n/John Doe
    Sets the logged in employee’s details to the name of John Doe; clears all tag and sets the two aforementioned tags.

3.2. Employee Management Database

3.2.1. Adding an employee: add

  • Refer to Appendix A for the list of prefixes and its' constraints.

  • Refer to Appendix B for the different privileges in each priority level.

  • This operation requires administrator privilege to perform.

Adds an employee to the address book
Format: add n/NAME ic/NRIC pwd/PASSWORD p/PHONE_NUMBER e/EMAIL d/DEPARTMENT a/ADDRESS wr/WORKING_RATE [plvl/PRIORITY_LEVEL] [t/TAG]…​

  • An employee can have any number of tags (including 0)

  • Priority level will be set to BASIC if left empty

  • A recently added employee will have no schedule allocated

  • More than 2 decimal places for working rate is acceptable

Examples:

  • add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 wr/7.5 d/Junior Management ic/T0249855I pwd/9EwciT plvl/1

  • add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Tower p/1234567 d/Senior Management t/Creditor ic/S1875858E pwd/Fed528F wr/10

3.2.2. Deleting an employee : delete

This operation requires administrator privilege to perform.

Deletes the specified employee from the address book.
Format: delete INDEX

  • Deletes the employee at the specified INDEX.

  • The index refers to the index number shown in the displayed employee list.

  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • delete 1

Deletes the employee with index 1 in the address book.

3.2.3. Change priority level of employee: setplvl

  • This operations requires administrator privilege to perform.

  • Refer to the Priority level section in Appendix A for the appropriate input value.

  • Refer to Appendix B for the different privileges in each priority level.

  • You are not able to edit your own priority level.

Sets the priority level of an employee at the specified index.
Format: setplvl INDEX plvl/PRIORITY_LEVEL
Example: setplvl 1 plvl/0

  • A successful change of priority level should show the following message:

setPlvl success screenShot
  • Users of insufficient priority level (below administrator priority level) will get the following error message when attempting to execute this command:

setPlvl failed screenShot
  • Users (with sufficient priority level), that attempts to change their own priority level will not be allowed to do so:

setOwnPlvl failed screenShot

3.2.4. Change the department of an employee : setdepartment

  • This operation requires administrator privilege to perform.

  • Administrator can only change the departments of other employees but not himself/herself.

  • Department names should start with a name, and ends with 'Management'.

Changes the department of an employee.
Format: setdepartment INDEX d/DEPARTMENT
Alias: sd

  • Changes the employee’s department at the specified INDEX.

  • The index refers to the index number shown in the displayed employee list.

  • The index must be a positive integer 1, 2, 3, …​

  • Refer to the Department section at Appendix A for the appropriate input for the department name.

Example: setdepartment 3 d/Junior Management

Changes the employee department with ID 3 in the address book to Junior Management.

SetDepartmentAfter

3.3. Leave Application

3.3.1. Leave application : leave

Request leave application of the user for approval.
Format: leave date/DATE

  • DATE must be in the format DD/MM/YYYY

  • DATE must not be today’s date or past dates

  • DATE must be a valid calendar date

Example: leave date/20/11/2019

leave

Requested leave application on 20/11/2019.

acceptedleave

3.3.2. List leave application : listleave

  • Does not require the user to log in before using the command.

List out all leave application in the leave list.
Format: listleave

listleave

Returns all the leave application in the system.

listedleave

3.3.3. Filter leave application : filterleave

  • Does not require the user to log in before using the command.

Filter leave applications based on NRIC.
Format: filterleave NRIC
Alias: fl

  • Filter is case insensitive eg. s1234567a matches S1234567A

Example: filterleave F2058730E

filterleavecmd

List all leave application requested by the user with NRIC, 'F2058730E'.

filteredleave

3.3.4. Delete leave application : deleteleave

Delete the specified leave from leave list.

  • User can only delete leave application he/she requested.

  • To delete other user’s application, requires higher privilege to perform. Example, MANAGER can delete BASIC user’s leave application.

  • ADMINISTRATOR can delete any leave application.

Format: deleteleave INDEX
Alias: dl

  • Deletes the leave at the specified INDEX.

  • The index refers to the index number shown in the displayed leave list.

  • The index must be a positive integer 1, 2, 3, …​

Example: deleteleave 1

deleteleavecmd

deletingleave

Deletes the leave application with INDEX 1 in the leave list.

deleteresult

3.3.5. Approve leave application : approve

Approve the specified leave application from leave list.

  • Only higher priority users can approve leave application. Example, MANAGER can approve BASIC user’s leave application.

  • ADMINISTRATOR cannot approve his own leave application, only another ADMINISTRATOR can approve his leave application.

Format: approve INDEX

  • Approve the leave at the specified INDEX.

  • The index refers to the index number shown in the displayed leave list.

  • The index must be a positive integer 1, 2, 3, …​

Example: approve 2

approvecmd

Approve the leave application with INDEX 2 in the leave list.

approved

3.3.6. Reject leave application : reject

Reject the specified leave application from leave list.

  • Only higher priority users can reject leave application. Example, MANAGER can reject BASIC user’s leave application.

  • ADMINISTRATOR cannot reject his own leave application, only another ADMINISTRATOR can reject his leave application.

Format: reject INDEX

  • Reject the leave at the specified INDEX.

  • The index refers to the index number shown in the displayed leave list.

  • The index must be a positive integer 1, 2, 3, …​

Example: reject 2

rejectcmd

Reject the leave application with INDEX 2 in the leave list.

reject

3.4. Scheduling

3.4.1. List schedule: schedule

List schedule for the employee.

Format: schedule INDEX

  • Shows schedule at the specified INDEX.

  • The index refers to the index number shown in the displayed leave list.

  • The index must be a positive integer 1, 2, 3, …​

  • ADMINISTRATOR priority level is required to view schedule of other employees

Example: schedule 1

  • Shows the schedule of employee with ID 1 in the list.

Sample output:
schedule cmd

3.4.2. Set schedule: setschedule

Set schedule of the employee.

Format: setschedule INDEX ts/TIME_START te/TIME_END v/VENUE

  • Set the schedule at the specified INDEX.

  • The index refers to the index number shown in the displayed leave list.

  • The index must be a positive integer 1, 2, 3, …​

  • TIME_START and TIME_END must be in HHMM 24 hour format

  • If TIME_START is later than TIME_END, TIME_END refers to the following day.

  • TIME_START cannot be the same as TIME_END.

  • ADMINISTRATOR priority level is required to set schedule of other employees

Examples:

  • setschedule 1 ts/1100 te/1600 v/Toilet

Sets a schedule for 1st user to work in Toilet from 1100 hours to 1600 hours

  • setschedule 2 ts/2200 te/0800 v/Main Door

Sets a schedule for 2nd user to work at Main Door from 2200 hours to 0800 hours of the following day

3.5. Filtering/Sorting

3.5.1. Listing all employees : list

  • Does not require the user to log in before using the command.

Shows a list of all employees in the address book.
Format: list

3.5.2. Locating employees by name: find

  • Does not require the user to log in before using the command.

Finds employees whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]

  • The search is case insensitive. e.g hans will match Hans

  • The order of the keywords does not matter. e.g. Hans Bo will match Bo Hans

  • Only the name is searched.

  • Only full words will be matched e.g. Han will not match Hans

  • Employees matching at least one keyword will be returned (i.e. OR search). e.g. Hans Bo will return Hans Gruber, Bo Yang

Examples:

  • find John

Returns john and John Doe

  • find Betsy Tim John

Returns any employee having names Betsy, Tim, or John

3.5.3. Sort address book contacts: sort

  • Does not require the user to log in before using the command.

Sorts the employees or departments of the current list in sorted order. The list can be sorted in ascending or descending order.
Format: sort FIELD ORDER

This operation only supports the following fields and orders

  • FIELD: name and department

  • ORDER: asc and desc

Examples:

  • sort name asc

Sorts the employee names in the list in ascending order

SortAfter1
  • sort department desc

Sorts the department names in the list in descending order

SortAfter2

3.5.4. List department : listdepartment

  • Does not require the user to log in before using the command.

Shows a list of departments available in the addressbook.
Format: listdepartment
Alias: ld
Example: listdepartment

Returns a list of departments available in the addressbook currently. Listing of department names are in ascending order.

ListDepartmentAfter

3.5.5. Filtering department : filterdepartment

  • Does not require the user to log in before using the command.

  • The keyword Management will not be accepted to prevent listing of all departments.

Filter departments and list out the employees who are in the department.
Format: filterdepartment KEYWORD [MORE KEYWORDS]
Alias: fd

  • The search is case insensitive. e.g. junior will match employees in Junior Management

  • Only full words will be matched. e.g. junio will not match Junior Management

  • Filtering of more than one department will list out the employees in the departments.

Examples:

  • filterdepartment junior

Returns a list of employees who are in Junior Management.

FilterDepartmentAfter1
  • filterdepartment junior senior

Returns a list of employees who are in Junior Management and Senior Management.

FilterDepartmentAfter2

3.6. Miscellaneous

3.6.1. Viewing help : help

Format: help

  • Does not require the user to log in before using the command.

User Guide will open in a separate window shown below:

UserGuide

3.6.2. Selecting an employee : select

  • Does not require the user to log in before using the command.

Selects the employee identified by the index number used in the displayed employee list.
Format: select INDEX

  • Selects the employee at the specified INDEX and loads the homepage of BankAB.

  • The index refers to the index number shown in the displayed employee list.

  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • list
    select 2
    Selects the 2nd employee in the address book.

  • find Betsy
    select 1
    Selects the 1st employee in the results of the find command.

3.6.3. Listing entered commands : history

  • Does not require the user to log in before using the command.

Lists all the commands that you have entered in reverse chronological order.
Format: history

Pressing the and arrows will display the previous and next input respectively in the command box.

3.6.4. Check in/out working hours: check

Updates check in/out status for employees.
Format: check m/MODE
Examples:

  • check m/in

User checked in:

checkedInStatus

Checked in shows:

  • Checked in date

  • Checked in time

checkedIn
  • check m/out

User checked out:

checkedOutStatus

Checked out shows:

  • Checked out date

  • Checked out time

  • Hours worked

  • Salary per day according to employees' working rate per hour, both rounded off to 2 decimal places.

checkedOut

3.6.5. Reset the application : reset

This operation requires user to be logged in with a privilege level of I.T. Unit to perform.

Resets the application into a default state, by deleting data/AddressBook.xml and data/leave.xml. The application will also close upon deleting the two files.

Refer to the List of Default Contacts upon app reset on the contacts available.

Format: reset

3.6.6. Exiting the program : exit

Exits the program.
Format: exit

3.7. Saving the data

Address book data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.

4. FAQ

Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Address Book folder.

5. Command Summary

5.1. Personal User Account

5.2. Employee Management Database

5.4. Scheduling

5.5. Filtering/Sorting

6. Appendix A: List of prefixes in the application

Table 2. List of prefixes used for employee
Parameter name Prefix Constraints Example

Name

n/NAME

Name must be alphabetical

n/Lewis Hamilton

NRIC Number

ic/NRIC

NRIC should start with an upper-case character [S, T, F, G], followed by a seven-digit number, and ending with a upper-case alphabet. NRIC for every single individuals must be unique.

ic/S9203948E

Password

pwd/PASSWORD

Password should be alphanumeric and should contain at least five characters

pwd/NeUeR2018

Phone

p/PHONE

Phone numbers should contain only numbers, and should have at least three digits.

p/81667800

Email

e/EMAIL

Emails should be of the format local-part@domain, and also satisfy the following requirements:
1) "local-part" should contain only alphanumeric characters and an underscore '_'
2) "domain" can consist of alphanumeric characters, a period, or hyphen, but should start and end with only alphanumeric characters.

e/jarvin@eltech.com

Department

d/DEPARTMENT

Department should contain alphabetic characters and spaces, and it should not be blank. Department names should start with a name, and ends with 'Management'.

d/Junior Management

Address

a/ADDRESS

N/A

a/Blk 25, Ang Mo Kio Street 23 #04-21, s(630025)

Mode

m/MODE

Mode should only contains "in" or "out".

m/in

Working Rate

wr/WORKING_RATE

Working rate should only contains whole or decimal numbers.

wr/7.5

Priority Level

plvl/PRIORITY_LEVEL

Priority Level should be a number respective to the following classification:
[0] Administrator (HIGHEST)
[1] I.T. Unit
[2] Manager
[3] Basic (LOWEST)

plvl/2

Tag(s)

t/TAG1 t/TAG2 …​

Tag names should be alphanumeric

t/Admin t/Boss t/OweMeMoney

Table 3. List of prefixes used for schedule
Parameter Prefix Constraints Example

Start Time

ts/TIME_START

Start Time should only be in numeric HHMM 24 hour format, and it should not be blank

ts/0900

End Time

te/TIME_END

End Time should only be in numeric HHMM 24 hour format, and it should not be blank

te/1800

Venue

v/VENUE

Venue should only contain alphanumeric characters and spaces, and it should not be blank

v/Level 5

Table 4. List of prefixes used for leave
Parameter Prefix Constraints Example

Date

date/DATE

Date must be in DD/MM/YYYY format

date/20/11/2019

7. Appendix B: Privileges in accordance to priority level

Table 5. Priority level and its' privileges
Priority Level Typical Roles Privileges

BASIC (3)

- Intern
- Security Guard
- Receptionist

- Edit your own particulars
- Apply for leave
- Check in/out to/from work for their own
- Set and view your own schedule

MANAGER (2)

- Head of Departments

- All privileges of a BASIC Priority Level
- Approve/Reject/Delete leave of users with lower priority level

I.T. UNIT (1)

- I.T. Department

- All privileges of a MANAGER Priority level
- Reset the entire AddressBook into the default address book. (exclusive to users holding this priority level)

ADMINISTRATOR (0)

- Branch Manager
- Bank Executive

- All privileges of a MANAGER Priority level
- Add and delete employees from the AddressBook
- Set the priority level of all employees
- Set Department of all employees
- Set and view other employee’s schedules