CSIT314 Final Report Chambers-1

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 250

Project Members and Member Contribution

Members UOW ID Percentage Contribution Rating Signature

Project Manager
Taiga, WorkFlow
Sprint 1 (#12, #19, #29, #38)
Jun En 7573029 100%
Sprint 2 (#5, #10, #115, #116,
#117)
Sprint 3 (#13, #16, #17)
Project Admin
Final Report, Test Cases,
Bentley 7769507 100% Meeting Minutes
Gantt Chart
Sprint 3 (#15, #23, #31)
Designer
Sprint 2 (#3, #8)
Huang Ming 7435381 20% Sprint 3 (#26, #35)
Sprint 4 (#22)
Ethical Issues (Process)
Designer
Sprint 1 (#11, #18, #28, #37)
Sprint 2 (#4, #9)
Ray 7769829 100%
Sprint 3 (#14, #20, #30)
Sprint 4 (#33, #34, #36)
Ethical Issues (Product)
Designer
Sprint 1 (#1, #6)
Sprint 2 (#2, #7)
Justin 7431727 100%
Sprint 3 (#24, #32)
Sprint 4 (#25, #21)
Boundary functions

1
Programmer
Yuanchao 7895598 100% Boundary, DDD, Normal Flow,
UI/Frame,Controller, CD/CI

Programmer
Entity, Database, Controller
Kelvin 7901963 100%
CD/CI, JUnit tests, Functional
test cases, Video

2
Table Of Contents

CONTENT PAGE

Project Summary 4

User Stories 5-7


● System Admin
● Cafe Owner
● Cafe Manager
● Cafe Staff

Sprint 1
● System Admin 8 - 38
● Cafe Owner
● Cafe Manager
● Cafe Staff

Sprint 2 39 - 74
● System Admin

Sprint 3 75 - 112
● Cafe Owner
● Cafe Manager
● Cafe Staff

Sprint 4 113 - 131


● Cafe Owner
● Cafe Manager
● Cafe Staff

Test-driven Development 132- 224

Data Driven Development 225 - 227

JUnit Testing 228

CI/CD 229 - 230

Ethical Considerations 231 - 233

Agile Methodology 234 - 236

Meeting Minutes 237 - 248

3
Project Summary

In this project, we were tasked to design and develop a Café Staff Management System.

The system that we have created will provide:

● User profiles to provide support for different types of users such as system admin, café
owners, café staff and café managers.
● Café owners to be able to view and manage work slots.
● Café staff to bid for the work slots, café role, and the maximum number of work slots
that are available (café staff should be able to see successful or rejected bids). Their roles
will not be changed.
● Café managers to approve or reject café staff’s bid.
● Café managers to view the list of available staff and offer work slots to fully allocate all of
them that are available.

4
User Stories

System Admin

1. As a system admin, I want to be able to create user account to create a user account.

2. As a system admin, I want to view a list of user account to view the list of accounts.

3. As a system admin, I want to be able to update user account to update user account

information.

4. As a system admin, I want to be able to suspend user account to deny access to the account.

5. As a system admin, I want to be able to search user account to search for a user account.

6. As a system admin, I want to be able to create user profile to create a user profile.

7. As a system admin, I want to view a list of user profile to view the list of user profiles.

8. As a system admin, I want to be able to update user profile to update user profile

information.

9. As a system admin, I want to be able to suspend user profile to deny access to the profile.

10. As a system admin, I want to be able to search user profile for a user profile.

11. As a system admin, I can login into the system to login to my account.

12. As a system admin, I can log out of the system to log out of my account.

5
Cafe Owner

13. As a Cafe Owner, I want to be able to create work slots to create work slots for the cafe.

14. As a Cafe Owner, I want to be able to view work slots to list work slots for the cafe.

15. As a Cafe Owner, I want to be able to update work slots to update any work slots.

16. As a Cafe Owner, I want to be able to delete work slots to remove work slots.

17. As a Cafe Owner, I want to be able to search work slots to search for a work slot.

18. As a Cafe Owner, I can login into the system to login to my account.

19. As a Cafe Owner, I can log out of the system to log out of my account.

Cafe Manager

20. As a Cafe Manager, I want to be able to view all the work slots to see all available work slots.

21. As a Cafe Manager, I want to be able to view the bid for the work slot to see who is bidding

for the slot.

22. As a Cafe Manager, I want to be able to search for unbidded slots to assign staff to

non-bidded slots.

23. As a Cafe Manager, I want to be able to view the list of available staff to view the list of

available staff.

24. As a Cafe Manager. I want to be able to assign staff to work slots to ensure that the slots have

staff.

25. As a Cafe Manager, I want to be able to approve and reject bids to approve and reject bids

from the staff.

26. As a Cafe Manager, I want to be able to indicate how many Full-Time and Part-Time staff are

needed for a specific day.

27. -

28. As a Cafe Manager, I can login into the system to login to my account.

6
29. As a Cafe Manager, I can log out of the system to log out of my account.

Cafe Staff

30. As a cafe staff, I want to be able to view available work slots to find available work slots.

31. As a cafe staff, I want to be able to search for a specific day to view the work slot on that day.

32. As a cafe staff, I want to be able to view details for a specific work slot to see what role is

needed for that work slot.

33. As a cafe staff, I want to be able to bid for a work slot to work.

34. As a cafe staff, I want to be able to view my approved or rejected slots to see which days I am

working.

35. As a cafe staff, I want to be able to declare how many days I am available for in a week to let

the manager assign me work slots based on my availability.

36. As a cafe staff, I want to be able to swap my booked shifts with my other colleagues.

37. As a cafe staff, I can login into the system to login to my account.

38. As a cafe staff, I can log out of the system to logout of my account.

UPDATE ACCOUNT TO UPDATE ACCOUNT DETAILS

115. As a Cafe Owner, I want to be able to update my account to update my account details.
116. As a Cafe Manager, I want to be able to update my account to update my account details.
117. As a Cafe Staff, I want to be able to update my account to update my account details.

7
Sprint 1
System Admin

#1 As a system admin, I want to be able to create user account to create a user account.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Create user account ID: 1

Stakeholders and goals: System admin - wants to create new user account

Description: System admin will login and click on the add user tab, and key in the
UserID, name, date of birth, address, default password, User profile and scope.

Actors: System admin

Trigger: The system admin goes to add someone new

Normal flow:
1. System admin goes to the page that add new user accounts
2. System admin key in the relevant details

8
3. System admin submit the form
4. System display successful entry with a summary
5. End.

Sub-flows: None

Alternative/Exceptional flows:
3a. Invalid information provided: If the System Admin provides invalid or incomplete
information, the system displays an error message and prompts for correction.

SEQUENCE DIAGRAM

9
USER INTERFACE

#6 As a system admin, I want to be able to create user profile to create a user profile.

10
USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Create user profile ID: 6

Stakeholders and goals: System admin - wants to create new user profile

Description: System admin will login and click on the add user profile tab, and add the
profile name, description and permissions.

Actors: System admin

Trigger: The system admin goes to add new profile

Normal flow:
1. System admin goes to the page that add new user profile
2. System admin key in the relevant details
3. System admin submit the form
4. System display successful entry with a summary
5. End.

11
Sub-flows: None

Alternative/Exceptional flows:
3a. Invalid information provided: If the System Admin provides invalid or incomplete
information, the system displays an error message and prompts for correction.

SEQUENCE DIAGRAM

12
USER INTERFACE

#11 As a system admin, I can login into the system to login to my account.

USE CASE DIAGRAM

13
USE CASE DESCRIPTION

Name: Login for System Admin ID: 11

Stakeholders and goals: System Admin - wants to log in to the cafe’s Staff
Management System

Description: A system administrator wants to log in to the staff management system


and must provide his credentials.

Actors: System Admin

Trigger: The system admin proceeds to the login page.

Normal flow:
1. The system administrator enters his username and password into the fields of
the login page.
2. The system administrator clicks on the login button.
3. The system checks the credentials in the database.
4. The system directs the system administrator to the home page.
5. End.

Sub-flows: None

14
Alternative/Exceptional flows:
1a. Invalid Username: The Wrong Username use case is performed.
1b. Invalid Password: The Wrong Password use case is performed.

SEQUENCE DIAGRAM

15
USER INTERFACE

16
#12 As a system admin, I can log out of the system to log out of my account.

USE CASE DIAGRAM

Name: Log out for system admin ID: 12

Stakeholders and goals: System admin, log out of their account from the system to
prevent unauthorised access and protect sensitive data.

Description: The system admin wants to log in to the staff management system and
must provide his credentials.

Actors: System Admin

Trigger: The system admin proceeds to the logout page.

Normal flow:
1. System admin will perform the logout process by clicking on the the logout
button in the user interface
2. System confirms the system admin’s session exists and valid
3. System terminate the system admin’s session exist
4. System display a confirm message, indicating the logout was successful
5. End.

17
Sub-flows: None

Alternative/Exceptional flows: None

SEQUENCE DIAGRAM

18
USER INTERFACE

19
Cafe Owner

#18 As a Cafe Owner, I can login into the system to login to my account.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Login for Café Owner ID: 18

Stakeholders and goals: Café Owner - wants to log in to the cafe’s Staff Management
System

Description: The Café Owner wants to log in to the staff management system and must
provide his credentials.

Actors: Café Owner

Trigger: The Café Owner proceeds to the login page.

Normal flow:
1. The Café Owner enters his username and password into the fields of the login
page.

20
2. The Café Owner clicks on the login button.
3. The system checks the credentials in the database.
4. The system directs the Café Owner to the home page.
5. End.

Sub-flows: None

Alternative/Exceptional flows:
18a. Invalid Username: The Wrong Username use case is performed.
18b. Invalid Password: The Wrong Password use case is performed.

SEQUENCE DIAGRAM

21
USER INTERFACE

22
#19 As a Cafe Owner, I can log out of the system to log out of my account.

USE CASE DIAGRAM

Name: Log out for Café Owner ID: 19

Stakeholders and goals: Café Owner, log out of their account from the system to prevent
unauthorised access and protect sensitive data.

Description: The café owner wants to log in to the staff management system and must
provide his credentials.

Actors: Café Owner

Trigger: The café owner proceeds to the logout page.

Normal flow:
1. Café owner will perform the logout process by clicking on the the logout button in
the user interface
2. System confirms the café owner’s session exists and valid
3. System terminate the café owner’s session exist
4. System display a confirm message, indicating the logout was successful
5. End.

23
Sub-flows: None

Alternative/Exceptional flows: None

SEQUENCE DIAGRAM

24
USER INTERFACE

25
Cafe Manager

#28 As a Cafe Manager, I can login into the system to login to my account.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Login for Café Manager ID: 28

Stakeholders and goals: Café Manager - wants to log in to the cafe’s Staff
Management System

Description: The Café Manager wants to log in to the staff management system and
must provide his credentials.

Actors: Café Manager

Trigger: The Café Manager proceeds to the login page.

Normal flow:
1. The Café Manager enters his username and password into the fields of the login

26
page.
2. The Café Manager clicks on the login button.
3. The system checks the credentials in the database.
4. The system directs the Café Manager to the home page.
5. End.

Sub-flows: None

Alternative/Exceptional flows:
28a. Invalid Username: The Wrong Username use case is performed.
28b. Invalid Password: The Wrong Password use case is performed.

SEQUENCE DIAGRAM

27
USER INTERFACE

28
#29 As a Cafe Manager, I can log out of the system to log out of my account.

USE CASE DIAGRAM

Name: Log out for Café Manager ID: 29

Stakeholders and goals: Café Manager, log out of their account from the system to
prevent unauthorised access and protect sensitive data.

Description: The café manager wants to log in to the staff management system and must
provide his credentials.

Actors: Café Manager

Trigger: The café manager proceeds to the logout page.

Normal flow:
1. Café manager will perform the logout process by clicking on the the logout button
in the user interface
2. System confirms the café manager’s session exists and valid
3. System terminate the café manager’s session exist
4. System display a confirm message, indicating the logout was successful
5. End.

Sub-flows: None

29
Alternative/Exceptional flows: None

SEQUENCE DIAGRAM

USER INTERFACE

30
31
Cafe Staff
#37 As a cafe staff, I can login into the system to login to my account.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Login for Café Staff ID: 37

Stakeholders and goals: Café Staff - wants to log in to the cafe’s Staff Management
System

Description: The Café Staff wants to log in to the staff management system and must
provide his credentials.

Actors: Café Staff

Trigger: The Café Staff proceeds to the login page.

Normal flow:
1. The Café Staff enters his username and password into the fields of the login
page.
2. The Café Staff clicks on the login button.

32
3. The system checks the credentials in the database.
4. The system directs the Café Staff to the home page.
5. End.

Sub-flows: None

Alternative/Exceptional flows:
37a. Invalid Username: The Wrong Username use case is performed.
37b. Invalid Password: The Wrong Password use case is performed.

SEQUENCE DIAGRAM

33
USER INTERFACE

#38 As a cafe staff, I can log out of the system to logout of my account.

USE CASE DIAGRAM

34
Name: Log out for Café Staff ID: 38

Stakeholders and goals: Café Staff, log out of their account from the system to prevent
unauthorised access and protect sensitive data.

Description: The café staff wants to log in to the staff management system and must
provide his credentials.

Actors: Café Staff

Trigger: The café staff proceeds to the logout page.

Normal flow:
1. Café staff will perform the logout process by clicking on the the logout button in the
user interface
2. System confirms the café staff’s session exists and valid
3. System terminate the café staff’s session exist
4. System display a confirm message, indicating the logout was successful
5. End.

Sub-flows: None

Alternative/Exceptional flows: None

35
SEQUENCE DIAGRAM

36
USER INTERFACE

DATA PERSISTENCE

37
CLASS DIAGRAM

38
Sprint 2
System Admin
#2 As a system admin, I want to view a list of user account to view the list of accounts.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: View a list of user accounts for system admin ID: 2

Stakeholders and goals: System admin to view a list of user accounts

Description: System admin wants to view from a list of user accounts

Actors: System Admin

Trigger: System admin is on the user account menu

Normal flow:
1. System admin click view user account button
2. System displays all user accounts
3. End.

Sub-flows: None

Alternative/Exceptional flows:

39
2a. There is no user accounts recorded

SEQUENCE DIAGRAM

USER INTERFACE

40
41
#3 As a system admin, I want to be able to update user account to update user account
information.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Update user account for system admin ID: 3

Stakeholders and goals: System admin wants to update user account information

Description: System admin to be able to update information of user accounts

Actors: System Admin

Trigger: System Admin clicks on the modify button and opens the result page.

Normal flow:
1. System admin click on “Search” button under Account Management
2. System admin enters userID that he wants to update.
3. System admin click on “Modify” button
4. System admin changes the field they want to update.
5. System admin clicks on the update button.
6. New updates are saved into the database.

42
7. End.

Sub-flows: None

Alternative/Exceptional flows: None

SEQUENCE DIAGRAM

USER INTERFACE

43
44
#4 As a system admin, I want to be able to suspend user account to deny access to the
account.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Account Suspension for System Admin ID: 4

Stakeholders and goals: System Admin - wants to suspend user’s account

Description: A system administrator wants to be able to suspend a user’s account


using the staff management system.

Actors: System Admin

Trigger: The system admin proceeds to the Account Suspension page.

Normal flow:
1. System Admin click on “Search” button under Account Management
2. System Admin inputs userID he wants.
3. System Admin click on “Modify” button

45
4. The System Admin clicks on the suspend button.
5. The system checks the userID in the database.
6. The system suspends the specified userID account.
7. The system displays a successful message.
8. End.

Sub-flows: None

Alternative/Exceptional flows:
4a. Invalid User ID: The Invalid UserID use case is performed.

SEQUENCE DIAGRAM

46
USER INTERFACE

47
48
#5 As a system admin, I want to be able to search user account to search for a user
account.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Search user account for system admin ID: 5

Stakeholders and goals: System admin - Search for user account

Description: System admin searching for a specific or related user account.

Actors: System Admin

Trigger: System admin clicks on the search button under Account Management.

Normal flow:
1. System Admin clicks on “Search” button under Account Management
2. System Admin searches for a user account by ID.
3. System Admin clicks on “Search” button
4. The system searches the database for the account that matches the search.
5. The system displays the user account according to the search.
6. End.

49
Sub-flows: None.

Alternative/Exceptional flows:
5a. No match found: There is no user account that matches the search.

SEQUENCE DIAGRAM

USER INTERFACE

50
51
#7 As a system admin, I want to view a list of user profile to view the list of user profiles.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: View a list of user profiles for system admin ID: 7

Stakeholders and goals: System admin to view a list of user profiles

Description: System admin wants to view from a list of user profiles

Actors: System Admin

Trigger: System admin is on the user profile menu

Normal flow:
1. System admin clicks on the view user profiles button
2. System display all user profile
3. End.

Sub-flows: None

Alternative/Exceptional flows:
2a. There is no user profile recorded.

52
SEQUENCE DIAGRAM

USER INTERFACE

53
54
#8 As a system admin, I want to be able to update user profile to update user profile
information.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Update user profile for system admin ID: 8

Stakeholders and goals: System admin wants to update user profile information

Description: System admin to be able to update information of user profiles

Actors: System Admin

Trigger: System Admin enters the profile page.

Normal flow:
1. System admin click on “Search” button under Profile Management
2. System admin click on “Modify” button
3. System admin changes details of profile accordingly.
4. System admin clicks on the update button.
5. New updates are saved into the database.
6. End.

Sub-flows: None.

55
Alternative/Exceptional flows: None

SEQUENCE DIAGRAM

USER INTERFACE

56
57
#9 As a system admin, I want to be able to suspend user profile to deny access to the
profile.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Profile Suspension for System Admin ID: 9

Stakeholders and goals: System Admin - wants to suspend user’s account profile

Description: A system administrator wants to be able to suspend a user’s account


profile using the staff management system.

Actors: System Admin

Trigger: The system admin proceeds to the Profile Suspension page.

Normal flow:
1. System Admin click on “Search” button under Profile Management
2. System Admin clicks on “Modify” button
3. System Admin choose a profile from the Profile type ComboBox

58
4. System Admin clicks on “Suspend” button
5. System suspends the specified profile.
6. System displays a successful message.
7. End.

Sub-flows: None

Alternative/Exceptional flows:
4a. Invalid User ID: The Invalid UserID use case is performed.
4b. Invalid User Profile: The Invalid UserProfile use case is performed.

SEQUENCE DIAGRAM

59
USER INTERFACE

60
#10 As a system admin, I want to be able to search user profile for a user profile.

USE CASE DIAGRAM

61
USE CASE DESCRIPTION

Name: Search user profile for system admin ID: 10

Stakeholders and goals: System admin - Search for user profile

Description: System admin searching for a specific or related user profile.

Actors: System Admin

Trigger: System admin clicks on the search bar under user profile.

Normal flow:
1. System Admin click on “Search” button under Profile Management
2. System Admin selects a profile from the ComboBox
3. System Admin click on “Search” button
4. The system searches the database for the profile that matches the search.
5. The system displays the user profile according to the search.
6. End.

Sub-flows: None.

Alternative/Exceptional flows:
6a. No match found: There is no user profile that matches the search.

SEQUENCE DIAGRAM

62
USER INTERFACE

63
64
#115 As a Cafe Owner, I want to be able to update my account to update my account details.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Update account for cafe owner ID: 115

Stakeholders and goals: Cafe owner - Update account details

Description: Cafe owner updating details for his/her own account

Actors: Cafe Owner

Trigger: Cafe owner clicks on the modify button and opens the result page.

Normal flow:
1. Cafe owner click on “Update Account” button
2. Cafe Owner enters the fields thats to be updated
3. Cafe owner clicks on the update button.
4. New updates are saved into the database.
5. End.

Sub-flows: None.

Alternative/Exceptional flows: None.

65
SEQUENCE DIAGRAM

USER INTERFACE

66
67
#116 As a Cafe Manager, I want to be able to update my account to update my account details.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Update account for cafe manager ID: 116

Stakeholders and goals: Cafe manager - Update account details

Description: Cafe manager updating details for his/her own account

Actors: Cafe Manager

Trigger: Cafe manager clicks on the modify button and opens the result page.

Normal flow:
1. Cafe manager clicks on “Update Account” button
2. Cafe manager changes the field they want to update.
3. Cafe manager clicks on the “Update” button.
4. New updates are saved into the database.
5. End.

Sub-flows: None.

Alternative/Exceptional flows: None.

68
SEQUENCE DIAGRAM

USER INTERFACE

69
70
#117 As a Cafe Staff, I want to be able to update my account to update my account details.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Update account for cafe staff ID: 117

Stakeholders and goals: Cafe staff - Update account details

Description: Cafe staff updating details for his/her own account

Actors: Cafe Staff

Trigger: Cafe staff clicks on the modify button and opens the result page.

Normal flow:
1. Cafe staff clicks on “Update profile” button
2. Cafe staff changes the field they want to update.
3. Cafe staff clicks on the “Update” button.
4. New updates are saved into the database.
5. End.

Sub-flows: None.

Alternative/Exceptional flows: None.

71
SEQUENCE DIAGRAM

USER INTERFACE

72
73
DATA PERSISTENCE

CLASS DIAGRAM

74
Sprint 3
Cafe Owner
#13 As a Cafe Owner, I want to be able to create work slots to create work slots for the cafe.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Cafe owner creating work slots ID: 13

Stakeholders and goals: Cafe owner - to create work slots

Description: Cafe owner creating work slots for staff to bid for to work.

Actors: Cafe Owner

Trigger: Cafe owner enters work slot page

Normal flow:
1. Cafe owner clicks on the “Create” button.
2. Cafe owner selects the date.
3. Cafe owner declares how many work slots.
4. Cafe owner click on “Create Slots” button
5. System adds new work slots into the database.
6. End.

Sub-flows: None.

75
Alternative/Exceptional flows:
4a. Matching error: Work slot already exists.

SEQUENCE DIAGRAM

USER INTERFACE

76
77
#14 As a Cafe Owner, I want to be able to view work slots to list work slots for the cafe.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: View Work Slots for Café Owner ID: 14

Stakeholders and goals: Café Owner - wants to view work slots

Description: The Café Owner wants to be able to view work slots using the staff
management system.

Actors: Café Owner

Trigger: The Café Owner proceeds to the Work Slots page.

Normal flow:
1. The Café Owner clicks on the ‘View all” button
2. The system directs the Café Owner to the slot view page.
3. Cafe Owner chooses a day he wants to search

78
4. Cafe Owner clicks on “View Slots” button
5. The system retrieves all the work slots from the database.
6. The system displays all the information on the webpage.
7. End.

Sub-flows: None

Alternative/Exceptional flows: None

SEQUENCE DIAGRAM

USER INTERFACE

79
80
#15 As a Cafe Owner, I want to be able to update work slots to update any work slots.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Cafe Owner updating work slots ID: 15

Stakeholders and goals: Cafe Owner - to update work slots

Description: Cafe Owner updates work slots for staff to make any changes.

Actors: Cafe Owner

Trigger: Cafe Owner enters work slot page

Normal flow:
1. Cafe Owner clicks on the “Update” button.
2. Cafe Owner is brought to the Update Slot Page
3. Cafe Owner fills in any needed changes to the slots.
4. Cafe Owner clicks on “Update Slots” button
5. System updates the new information of the work slots into the database.
6. End.

Sub-flows: None.

81
Alternative/Exceptional flows:
3a. Inputs bad data

SEQUENCE DIAGRAM

USER INTERFACE

82
83
#16 As a Cafe Owner, I want to be able to delete work slots to remove work slots.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Cafe owner deleting work slots ID: 16

Stakeholders and goals: Cafe owner - to delete work slots

Description: Cafe owner being able to delete work slots.

Actors: Cafe Owner

Trigger: Cafe owner enters work slot page

Normal flow:
1. Cafe owner clicks on the “Delete” button.
2. Cafe Owner is brought to the Delete Slot Page
3. Cafe owner choses a date and role he wants to delete
4. Cafe Owner clicks on “Delete Slots” button
5. System removes work slots from the database.
6. End.

Sub-flows: None.

84
Alternative/Exceptional flows:
4a. Error: Work slot does not exist.

SEQUENCE DIAGRAM

USER INTERFACE

85
86
#17 As a Cafe Owner, I want to be able to search work slots to search for a work slot.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Cafe owner searching for work slots ID: 17

Stakeholders and goals: Cafe owner - to search for work slots

Description: Cafe owner being able to search for work slots.

Actors: Cafe Owner

Trigger: Cafe owner enters work slot page

Normal flow:
1. Cafe owner clicks on the “Search” button.
2. Cafe Owner is brought to the Search Slot Page
3. Cafe owner chooses date and role to be searched
4. Cafe Owner clicks on “Search Slots” button
5. System displays relevant work slots from the database.
6. End.

Sub-flows: None.

87
Alternative/Exceptional flows:
4a. Error: Work slot does not exist.

SEQUENCE DIAGRAM

USER INTERFACE

88
89
Cafe Manager

#20 As a Cafe Manager, I want to be able to view all the work slots to see all available work
slots.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: View Work Slots for Café Manager ID: 20

Stakeholders and goals: Café Manager - wants to view work slots

Description: The Café Manager wants to be able to view all the work slots using the
staff management system.

Actors: Café Manager

Trigger: The Café Manager proceeds to the Work Slots page.

Normal flow:
1. The Café Manager clicks on the ‘Works Slots” button
2. The system directs the Café Manager to the Manager Slot View page.

90
3. Cafe Manager chooses a date he wants to search
4. Cafe Manager clicks on “View Slots” button
5. The system retrieves all the work slots from the database.
6. The system displays all the information on the webpage.
7. End.

Sub-flows: None

Alternative/Exceptional flows: None

SEQUENCE DIAGRAM

USER INTERFACE

91
92
#23 As a Cafe Manager, I want to be able to view the list of available staff to view the list of
available staff.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Cafe Manager viewing available staff ID: 23

Stakeholders and goals: Cafe Manager - to view available staff

Description: Cafe Manager views for staff that are currently available

Actors: Cafe Manager

Trigger: Cafe Manager enters the main menu page

Normal flow:
1. Cafe Manager clicks on the “Available Staff” button.
2. Cafe Manager is brought to the Available Staff Page
3. Cafe Manager clicks on “View Available Staff” button
4. The System will display all staff that are currently available.
5. End.

Sub-flows: None.

93
Alternative/Exceptional flows:
3a. No available staff recorded

SEQUENCE DIAGRAM

USER INTERFACE

94
95
#24 As a Cafe Manager. I want to be able to assign staff to work slots to ensure that the
slots have staff.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Cafe Manager assigning work slots ID: 24

Stakeholders and goals: Cafe Manager - assign cafe staff to work slots

Description: Cafe Manager wants to assign cafe staff to work slots

Actors: Cafe Manager

Trigger: Cafe Manager enters work slot page

Normal flow:
1. Cafe manager clicks on “Assign Staff” button
2. Cafe manager is brought to the Assign Staff page

96
3. Cafe manager assigns available cafe staff to work slots.
4. Cafe manager clicks on “Assign Staff” button
5. System checks if the availability is valid.
6. System displays the work slot with assigned staff.
7. End.

Pre-conditions: Viewing of available cafe staff is done beforehand

Alternative/Exceptional flows:
None.

SEQUENCE DIAGRAM

97
USER INTERFACE

Cafe Staff
#30 As a cafe staff, I want to be able to view available work slots to find available work slots.

USE CASE DIAGRAM

98
USE CASE DESCRIPTION

Name: View Work Slots for Café Staff ID: 30

Stakeholders and goals: Café Staff - wants to view work slots

Description: The Café Staff wants to be able to view work slots using the staff
management system.

Actors: Café Staff

Trigger: The Café Staff proceeds to the Work Slots page.

Normal flow:
1. The Café Staff clicks on the ‘View All Slots” button
2. The system directs the Café Staff to the View All Slots page.
3. Cafe Staff clicks on “View All” button
4. The system retrieves all the work slots from the database.
5. The system displays all the information on the TextArea.
6. End.

Sub-flows: None

99
Alternative/Exceptional flows: None

SEQUENCE DIAGRAM

USER INTERFACE

100
101
#31 As a Cafe Staff, I want to be able to search for a specific day to view the work slot on
that day.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Cafe Staff searches specific day ID: 31

Stakeholders and goals: Cafe Staff - to search for a specific day

Description: Cafe Staff searches for a specific day for staff to view the work slot on that
day.

Actors: Cafe Staff

Trigger: Cafe Staff enters work slot page

Normal flow:
1. Cafe Staff clicks on the “Search Day” button.
2. Cafe Staff is brought to the Search Day Page
3. Cafe Staff chooses a day to search for a work slot
4. Cafe Staff clicks on “Search” button
5. The system searches the database for any work slot that matches the search.
6. The system displays the work slot according to the search.
1. End.

102
Sub-flows: None.

Alternative/Exceptional flows:
7a. No match found: There are no work slots that match the search.

SEQUENCE DIAGRAM

USER INTERFACE

103
104
#32 As a cafe staff, I want to be able to view details for a specific work slot to see what role
is needed for that work slot.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Cafe staff viewing work slots details ID: 32

Stakeholders and goals: Cafe staff - view details of specific work slot

Description: A cafe staff wants to view the details of specific work slot to see what are
the available roles

Actors: Cafe Staff

Trigger: Cafe staff enters staff slot view page

Normal flow:
1. Cafe staff click on a “View Slots” button

105
2. Cafe staff is brought to Staff View Slot page
3. Cafe staff chooses a date he wants to see
4. Cafe staff clicks on “View Slots” button
5. System retrieves the details of the work slot.
6. System displays all details of the work slot.
7. End.

Sub-flows: None.

Alternative/Exceptional flows: None.

SEQUENCE DIAGRAM

106
USER INTERFACE

107
#35 As a cafe staff, I want to be able to declare how many days I am available for in a week
to let the manager assign me work slots based on my availability.

USE CASE DIAGRAM

108
USE CASE DESCRIPTION

Name: Declare available work slot ID: 35

Stakeholders and goals: Cafe staff - declare the available work slot

Description: Cafe staff to be able to declare how many days I am available for in a
week to let the manager assign me work slots based on my availability.

Actors: Cafe Staff

Trigger: Cafe Staff proceed to the work slot page

Normal flow:
1. Cafe Staff clicks on “Declare Availability” button
2. Cafe Staff is brought to Staff Declaration page
3. Cafe Staff selects the date free on that week.
4. Cafe Staff clicks on “Submit” button
5. The system update the cafe staff’s work slot availability in the database and
prompted successful message
6. End.

Sub-flows: None

Alternative/Exceptional flows:
None

SEQUENCE DIAGRAM

109
USER INTERFACE

110
DATA PERSISTENCE

111
CLASS DIAGRAM

112
113
Sprint 4
Cafe Manager
#21 As a Cafe Manager, I want to be able to view the bid for the work slot to see who is
bidding for the slot.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Cafe Manager viewing all bids ID: 21

Stakeholders and goals: Cafe Manager - to view all bids

Description: Cafe Manager to view all bids

Actors: Cafe Manager

Trigger: Cafe Manager enter the view bids page

Normal flow:
1. Cafe Manager clicks on “View All” button
2. System displays all bids.
3. End.

114
Pre - condition:

Alternative/Exceptional flows:
2a. No bids

SEQUENCE DIAGRAM

115
USER INTERFACE

116
#22 As a Cafe Manager, I want to be able to search for unbidded slots to assign staff to
non-bidded slots.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Cafe Manager searched and assign unbidded slot to cafe staff ID: 22

Stakeholders and goals: Cafe Manager

Description: Cafe Manager to search and assign unbidded slot to stafff

Actors: Cafe Manager

Trigger: Cafe Manager selected a bid

Normal flow:
1. Cafe Manager clicks on “Search Work Slots” button
2. System populates Combo Box under Work Slot Info with unbidded slots
3. Cafe Manager clicks on “Search Available Staff” button
4. System populates Combo Box under Available Staff with the staff available
5. Cafe Manager chooses the work slot and the staff to be assigned
6. Cafe Manager clicks on “Assign Staff” button
7. System update the unbidded workslot with assigned cafe staff and display a
message

117
8. End

Pre - condition:

Alternative/Exceptional flows:

SEQUENCE DIAGRAM

118
USER INTERFACE

119
#25 As a Cafe Manager, I want to be able to approve and reject bids to approve and reject
bids from the staff.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Cafe Manager updating bids ID: 25

Stakeholders and goals: Cafe Manager - to approve or reject bids

Description: Cafe Manager to approve or reject bids submitted by cafe staff

Actors: Cafe Manager

Trigger: Cafe Manager enters Manager Bid View Page

Normal flow:
1. Cafe Manager clicks on “View All” button
2. System shows all bids and populate them in the combo box individually
3. Cafe Manager selects a bid from combo box
4. Cafe Manager approves or rejects bid

120
5. System updates the bid into the database.
6. Display
7. End.

Pre - condition: The page will view all available bids to be selected.

Alternative/Exceptional flows:

SEQUENCE DIAGRAM

121
USER INTERFACE

122
#33 As a cafe staff, I want to be able to bid for a work slot to work.

USE CASE DIAGRAM

USE CASE DESCRIPTION

Name: Bidding for Work Slots for Café Staff ID: 33

Stakeholders and goals: Café Staff - wants to bid for work slots

Description: The Café Staff wants to be able to bid for work slots using the staff
management system.

Actors: Café Staff

Trigger: The Café Staff proceeds to the Bid for Work Slots page.

Normal flow:
1. Cafe Staff clicks on “VIew Slots” button
2. The system retrieves and display all the available work slots from the database.
3. The Café Staff selects a desired work slot from the combo box
4. The Café Staff clicks on “Apply Bid” button
5. The system submits the bidded slot into the system for approval or rejection.

123
6. System displays message.
7. End.

Sub-flows: None

Alternative/Exceptional flows: None

SEQUENCE DIAGRAM

124
USER INTERFACE

#34 As a cafe staff, I want to be able to view my approved or rejected slots to see which
days I am working.

USE CASE DIAGRAM

125
USE CASE DESCRIPTION

Name: View Status (Approved/Rejected) of Work Slots for Café Staff ID: 34

Stakeholders and goals: Café Staff - wants to view status of bidded work slots

Description: The Café Staff wants to be able to view the status (approved or rejected)
of the work slots they bidded using the staff management system.

Actors: Café Staff

Trigger: The Café Staff proceeds to staff view pending page

Normal flow:
1. Cafe Staff clicks on “View Pending Bids” button
2. The system retrieves all the work slots the staff bidded for from the database.
3. The system displays all the work slots the staff had bidded for, along with its
current status.
4. End.

Sub-flows: None

Alternative/Exceptional flows:
34a. No Work Slots Found: The No Work Slots Found use case is performed.

126
SEQUENCE DIAGRAM

USER INTERFACE

127
#36 As a cafe staff, I want to be able to swap my booked shifts with my other colleagues.

USE CASE DIAGRAM

128
USE CASE DESCRIPTION

Name: Swap Shifts for Café Staff ID: 36

Stakeholders and goals: Café Staff - wants to swap shifts with other colleagues

Description: The Café Staff wants to be able to swap shifts with other colleagues using
the staff management system.

Actors: Café Staff

Trigger: The Café Staff proceeds to the Swap Shift page.

Normal flow:
1. Cafe Staff clicks on “View Approved Bids” button
2. System retrieves approved bids and populates combo box
3. Cafe Staff selects the bid to be swapped
4. Cafe Staff clicks on “Put Bid for Swap” button
5. System displays message
6. End

Sub-flows: None

Alternative/Exceptional flows: None

129
SEQUENCE DIAGRAM

USER INTERFACE

130
DATA PERSISTENCE

CLASS DIAGRAM

131
132
Test Driven Development
Test Cases

No Task Taiga ID Purpose

1 System admin - Create Account #1 To allow system admin to create user


account

Expected Result Actual Result Validation

System admin is able to create System admin is able to Pass


account create account

No Task Taiga ID Purpose

2 System admin - Create Profile #6 To allow system admin to create user


profile

Expected Result Actual Result Validation

System admin is able to create profile System admin is able to Pass


create profile

No Task Taiga ID Purpose

3 System admin - Login #11 To allow system admin to login

Expected Result Actual Result Validation

System admin is able to login System admin is able to login Pass

No Task Taiga ID Purpose

4 System admin - Logout #12 To allow system admin to logout

Expected Result Actual Result Validation

System admin is able to logout System admin is able to Pass


logout

133
No Task Taiga ID Purpose

5 Cafe owner - Login #18 To allow cafe owner to login

Expected Result Actual Result Validation

Cafe owner is able to login Cafe owner is able to login Pass

No Task Taiga ID Purpose

6 Cafe owner - Logout #19 To allow cafe owner to logout

Expected Result Actual Result Validation

Cafe owner is able to logout Cafe owner is able to logout Pass

No Task Taiga ID Purpose

7 Cafe manager - Login #28 To allow cafe manager to login

Expected Result Actual Result Validation

Cafe manager is able to login Cafe manager is able to login Pass

No Task Taiga ID Purpose

8 Cafe manager - Logout #29 To allow cafe manager to logout

Expected Result Actual Result Validation

Cafe manager is able to logout Cafe manager is able to Pass


logout

134
No Task Taiga ID Purpose

9 Cafe staff- Login #37 To allow cafe staff to login

Expected Result Actual Result Validation

Cafe staff is able to login Cafe staff is able to login Pass

No Task Taiga ID Purpose

10 Cafe staff- Logout #38 To allow cafe staff to logout

Expected Result Actual Result Validation

Cafe staff is able to logout Cafe staff is able to logout Pass

No Task Taiga ID Purpose

11 System Admin - View List of all #2 To allow system admin to view all
User Accounts user accounts

Expected Result Actual Result Validation

System Admin is able to view all System Admin is able to view Pass
accounts all accounts

No Task Taiga ID Purpose

12 System Admin - Update User #3 To allow system admin to update


Account user accounts

Expected Result Actual Result Validation

System Admin is able to update user System Admin is able to Pass


account update user account

135
No Task Taiga ID Purpose

13 System Admin - Suspend User #4 To allow system admin to suspend


Account user accounts

Expected Result Actual Result Validation

System Admin is able to suspend System Admin is able to Pass


user accounts suspend user accounts

No Task Taiga ID Purpose

14 System Admin - Search User #5 To allow system admin to search


Account user accounts

Expected Result Actual Result Validation

System Admin is able to search user System Admin is able to Pass


accounts search user accounts

No Task Taiga ID Purpose

15 System Admin - View List of #7 To allow system admin to view the


User Profiles list of all user profiles

Expected Result Actual Result Validation

System Admin is able to view the list System Admin is able to view Pass
of all user profiles the list of all user profiles

No Task Taiga ID Purpose

16 System Admin - Update User #8 To allow system admin to update


Profile user profile information.

Expected Result Actual Result Validation

System Admin is able to update user System Admin is able to Pass


profile information. update user profile
information.

136
No Task Taiga ID Purpose

17 System Admin - Suspend User #9 To allow system admin to suspend


Profile and deny access to the profile

Expected Result Actual Result Validation

System Admin is able to suspend and System Admin is able to Pass


deny access to the profile suspend and deny access to
the profile

No Task Taiga ID Purpose

18 System Admin - Search User #10 To allow system admin to search


Profile user profiles

Expected Result Actual Result Validation

System Admin is able to search user System Admin is able to Pass


profiles search user profiles

No Task Taiga ID Purpose

19 Cafe Owner - Update Account #115 To allow cafe owner to update


Details account details

Expected Result Actual Result Validation

Cafe Owner is able to update account Cafe Owner is able to update Pass
details account details

No Task Taiga ID Purpose

20 Cafe Manager - Update #116 To allow cafe manager to update


Account Details account details

Expected Result Actual Result Validation

Cafe Manager is able to update Cafe Manager is able to Pass


account details update account details

137
No Task Taiga ID Purpose

21 Cafe Staff - Update Account #117 To allow system admin to update


Details account details

Expected Result Actual Result Validation

System Admin is able to update System Admin is able to Pass


account details update account details

No Task Taiga ID Purpose

22 Cafe Owner - Create Work #13 To allow cafe owner to create work
Slots slots

Expected Result Actual Result Validation

Cafe Owner is able to create work Cafe Owner is able to create Pass
slots work slots

No Task Taiga ID Purpose

23 Cafe Owner - View Work Slots #14 To allow cafe owner to view work
slots

Expected Result Actual Result Validation

Cafe Owner is able to view work slots Cafe Owner is view to update Pass
work slots

No Task Taiga ID Purpose

24 Cafe Owner - Update Work #15 To allow cafe owner to update work
Slots slots

Expected Result Actual Result Validation

Cafe Owner is able to update work Cafe Owner is able to update Pass
slots work slots

138
No Task Taiga ID Purpose

25 Cafe Owner - Delete Work #16 To allow cafe owner to delete work
Slots slots

Expected Result Actual Result Validation

Cafe Owner is able to delete work Cafe Owner is able to delete Pass
slots work slots

No Task Taiga ID Purpose

26 Cafe Owner - Search Work #17 To allow cafe owner to search for
Slots work slots

Expected Result Actual Result Validation

Cafe Owner is able to search for work Cafe Owner is able to search Pass
slots for work slots

No Task Taiga ID Purpose

27 Cafe Manager - View List of #23 To allow cafe manager to view the list
Staff of available staff

Expected Result Actual Result Validation

Cafe Manager is able to view the list Cafe Manager is able to view Pass
of available staff the list of available staff

139
No Task Taiga ID Purpose

28 Cafe Manager - Assign Cafe #24 To allow cafe manager to assign staff
Staff to work slots

Expected Result Actual Result Validation

Cafe Manager is able to assign staff Cafe Manager is able to Pass


to work slots assign staff to work slots

No Task Taiga ID Purpose

29 Cafe Manager - Indicate Staff #26 To allow cafe manager to indicate


Needed how many Full-Time and Part-Time
staff are needed for a specific day.

Expected Result Actual Result Validation

Cafe Manager is able to indicate staff Cafe Manager is able to Pass


needed indicate staff needed

No Task Taiga ID Purpose

30 Cafe Staff - View Work Slots #30 To allow cafe staff to view available
work slots to find available work slots

Expected Result Actual Result Validation

Cafe Staff is able to view work slots Cafe Manager is able to view Pass
work slots

No Task Taiga ID Purpose

31 Cafe Staff - Search Specific #31 To allow cafe staff to search for a
Day specific day

Expected Result Actual Result Validation

Cafe Staff is able to search specific Cafe Staff is able to search Pass
day specific day

140
No Task Taiga ID Purpose

32 Cafe Staff - View Work Slot #32 To allow cafe staff to view details for
Details a specific work slot to see what role
is needed for that work slot.

Expected Result Actual Result Validation

Cafe Staff is able to view work slot Cafe Staff is able to view Pass
details work slot details

No Task Taiga ID Purpose

33 Cafe Staff - Declare Work Days #35 To allow cafe staff to declare how
many days available in a week

Expected Result Actual Result Validation

Cafe Staff is able to declare work Cafe Staff is able to declare Pass
days work days

No Task Taiga ID Purpose

34 Cafe Manager - View Bids #21 To allow cafe manager to view bid for
work slot to see who’s bidding for the
slot

Expected Result Actual Result Validation

Cafe Manager is able to view bid for Cafe Manager is able to view Pass
work slot bid for work slot

No Task Taiga ID Purpose

35 Cafe Manager - Search #22 To allow cafe manager to search for


Unbidded Slots unbidded slots to assign staff to
non-bidded slots.

Expected Result Actual Result Validation

Cafe Manager is able to search Cafe Manager is able to Pass


unbidded Slots search unbidded Slots

141
No Task Taiga ID Purpose

36 Cafe Manager - Update Bids #25 To allow cafe manager to

Expected Result Actual Result Validation

Cafe Manager is able to update bids Cafe Manager is able to Pass


update bids

No Task Taiga ID Purpose

37 Cafe Staff - Bid for Work Slots #33 To allow cafe staff to bid for a work
slot to work.

Expected Result Actual Result Validation

Cafe Staff is able to bid for work slots Cafe Staff is able to bid for Pass
work slots

No Task Taiga ID Purpose

38 Cafe Staff - View Status for #34 To allow cafe staff to view my
Work Slots approved or rejected slots to see
which days I am working.

Expected Result Actual Result Validation

Cafe Staff is able to view status for Cafe Staff is able to view Pass
work slots status for work slots

No Task Taiga ID Purpose

39 Cafe Staff - Swap Shifts #36 To allow cafe staff to swap booked
shifts with other colleagues

Expected Result Actual Result Validation

Cafe Staff is able to swap shifts Cafe Staff is able to swap Pass
shifts

142
Test Case 1
#1
Create User Account

143
If Success

If UserID exists in the database already

144
Not created, and returns a message stating that UserID has already exist.

145
Test Case 2
#6
Create User Profile

146
If success

If there are invalid fields (empty etc)

147
Not created, returns an error message

148
Test Case 3
#11
Login Screen

Database for ref

149
Test Case 4
#12
Logged in as Admin

Once Logout is pressed

150
Admin login successfully

If password entered is wrong

151
Test Case 5
#18
Login Screen

Database for ref

Owner login successfully

152
If password entered is wrong

153
Test Case 6
#19
Logged in as Owner

Once Logout is pressed

154
Test Case 7
#28
Login Screen

Database for ref

155
Manager login successfully

If password entered is wrong

156
Test Case 8
#29
Logged in as Manager

Once Logout is pressed

157
Test Case 9
#37
Login Screen

Database for ref

Staff login successfully

If password is entered incorrectly

158
159
Test Case 10
#38
Logged in as Staff

Once Logout is pressed

160
Test Case 11
#2
Logged in as Admin

Clicked View button under Account Management

161
User clicks on View All Accounts

162
Test Case 12
#3
First the system admin needs to search for the account

To update, click modify

163
Change any desired information for that ID, empty spaces will retain the previous data
Before update

After update

164
Test Case 13
#4
First, the system admin search for the user they want to suspend.

165
Then click on the modify button

To suspend, click the Suspend button

166
When user is suspended

167
Test Case 14
#5
To search for a user account, the system admin needs to be logged in

Click the search button under Account Management

168
Type any ID to search for

169
Test Case 15
#7
Logged in as Admin

Clicked view button under Profile Management

170
User clicks on View All

171
Test Case 16
#8
First the system admin needs to search for the profile

172
To update, click modify

Update any information, then click update

Description changed successfully

173
174
Test Case 17
#9
First, the system admin search for the profile they want to suspend.

175
Then click on the modify button

To suspend, click the Suspend button

176
When any user belonging to that role tries to login

177
Test Case 18
#10
To search for a user profile, the system admin needs to be logged in

Click on the search button under Profile Management

178
Using the dropdown box, choose any of the profile and then click search

179
Test Case 19
#115 As a Cafe Owner, I want to be able to update my account to update my account details.

First, the Cafe owner needs to be logged in

180
Click on Change Info

All information can be updated except for ID, profile and scope which is uneditable
Before update

181
After update

182
Test Case 20
#116 As a Cafe Manager, I want to be able to update my account to update my account details.

First, the Cafe manager needs to be logged in

183
Click on Update Account

All information can be updated except for ID, profile and scope which is uneditable
Before update

184
After update

185
Test Case 21
#117
First, the Cafe staff needs to be logged in

186
Click on Update Account

All information can be updated except for ID and profile which is uneditable
Before update

187
After update

188
Test Case 22
#13
The owner would first have to login, go to Slot Management, then Create slots

The user then selects which date and slots to create.


Before update

189
After update

If that specified day has the slot and role created

190
Test Case 23
#14
First the Cafe owner has to login, click on Slot Management, View all

191
Then click on the View Slots button which will populate the text area with the data

192
Test Case 24
#15
The owner would first have to login, go to Slot Management, then Update Slots

193
The user then selects which date and slots to update.
Before update

After update

194
If that specified day does not have any slots with the role listed

195
Test Case 25
#16
The owner would first have to login, go to Slot Management, then Delete Slots

The user then selects which date and slots to update.


Before update

196
After update

If slot doesn’t exist

197
Test Case 26
#17 As a Cafe Owner, I want to be able to search work slots to search for a work slot.

The owner would first have to login, go to Slot Management, then Search Slots

198
The user then selects which date and role to search.
In the database

When there are not slots for that role on the selected day

199
Test Case 27
#23
The Manager will first logged in, and click on the Available Staff

After clicking on View Available Staff, the displaybox will populate

200
Test Case 28
#24
First the Cafe manager has to login and click on Assign Staff

Once the manager has decided on which date to assign on, click Check Slots

Then select which of the scope to assign the staff to. Once decided, click on the Assign
Staff.

201
Before update

After update

202
Test Case 29
#26
ptSlots(int ft, int PT, String date)
return boolean ptSuccess
First, the Cafe manager has to login and click on the FT/PT button

Here, the manager selects the date and how many FT and PT staff they want. Once done,
click the Submit button.
Before update

203
After update

Duplicate submission will just update the existing database entry

204
Test Case 30
#30
First the staff has to login and click on View All Slots button.

Next, press the View All button which will populate the text area with data. Slots that are less
than or equal to 0 will not be shown.

205
Test Case 31
#31

First, the staff needs to be logged in, and click on the Search Day button

206
Here the user will select the date they want to search. Once done, click the Search button

207
Test Case 32
#32
First the Staff will log into the system, then click on View Slots.

The user then selects the date to find, once done click the View Slots button

Note that roles with no slots are not displayed here.

208
Test Case 33
#35
First, the staff has to be logged in and click the Declare Availability button

209
The user then selects which days he or she is free, then click submit.

210
Test Case 34
#21
First, the Cafe manager has to login, click on the Bidding button, then the View Bids button.

211
Once the View All button is clicked, the display text area will be populated with bids not
approved or rejected yet.

In database, 2 of the bids have been approved

212
Test Case 35
#22
First the Cafe manager has to login and then click on the Bidding button, View Open Slots

213
Click on Search Work Slots to get all the available work slots not assigned yet

Then click on Search Available Staff to check for staff that matches the work slot
requirement.

214
Test Case 36
#25
First, login as Cafe Manager, then click on Bidding, View Bids, View All

215
Once the table is populated with the combo box, choose which option to approve or deny.
On approval

Database update

216
On refresh the approved bid disappears from the display box

On reject

217
Database updated the approve to 2, which means reject

On refresh the table is updated

218
Test Case 37
#33
First, the staff has to login and click the Bids button, then Bid Slot, finally View Slots.

219
After choosing the date, click on Apply Bid

Database update

220
Test Case 38
#34
First the staff has to be logged in, then click on Bids, Pending Bids

221
Once the View Pending Bids is pressed, it will show all the approve and rejected bids.

Still has 1 pending bid in the database

222
Test Case 39
#36
First the staff has to be logged in, select the Swap Bids button then View Approved Bids
button

223
Once you selected the slot and then click the Put Bid for Swap button, it would change the
value to be open for others to take

224
Database before and after swap

225
Data Driven Software Development
Model Requirements
With the introduction of Machine Learning being applied into the cafe login application, we
can enhance specific aspects of the application in areas such as,
❖ User Authentication
➢ Machine Learning can be trained to detect anomalies for user authentication
to identify unusual login behaviours. This would strengthen the security and it
can detect unauthorized access.
❖ User Behavior Analysis
➢ Machine Learning algorithms will analyse user behaviour within the
application. It would identify patterns that could indicate future potential
issues, such as irregular working days or unusual bidding of slots.
❖ Shift Scheduling Optimization
➢ The overall shift bidding system can be streamlined with Machine Learning as
it can be trained with past historic data to determine the peak days for
workshift. It can also identify which are the busy periods for work. Prediction
for workload could also be identified. It will then advise the owner to create
sufficient workslots.
❖ Predictive Maintenance
➢ Monitor logs and usage patterns to identify the areas that might need to have
maintenance, this is to make sure that potential issues are removed before
the chance of occurring.
❖ Security Threat Detection
➢ Implement machine learning models to detect security threats. The model
would be trained on the pattern of normal system behavior and use them to
identify anomalies for security breaches.
❖ User Feedback Analysis
➢ With natural language processing techniques, it can be used to analyse user
feedback on areas such as user satisfaction, it will also identify areas for
improvement and this would prioritise future feature development for the
application

Data Collection
❖ Use public dataset to build a dataset for data model training. Can use past data from
other cafes.
❖ Run a pretrain model with public data first, then add in our own data set from current
application to run.

Data Cleaning
❖ The database goes through cleaning once every Quarter of a year. The data cleaning
would get rid of noisy data records and inaccurate data. Such records would consist
of suspended accounts, bids that have not been attended to.
❖ Data cleaning should not only get rid of noisy data, but fill in incomplete data in order
for it to be accurate and robust. Filling in a dataset that has a few elements of data
missing. This would make the dataset competent for data training.

226
Data Labelling
❖ In order to better prepare our data for Model Training in step 6, this is the most
crucial step to better prepare the machine learning model especially for supervised
learning tasks. This process means meaningful labels or annotations to the data
points in our dataset. It would enable the algorithm to learn patterns and make
precise predictions.
❖ We can label our tasks as follows
➢ User Authentication
■ Labels: Successful login, failed login
■ Usage: Training a model that recognise normal login behavior and
identify anomalies or potential security threats.
➢ User Behaviour Analysis
■ Labels: Regular usage pattern, unusual behaviour
■ Usage: Train model that can identify patterns indicative of normal staff
behaviour and detect deviations that might signal potential staff
issues.
➢ Shift Scheduling Optimisation
■ Labels: Efficient scheduling, suboptimal scheduling
■ Usage: For the training model to flag out shift optimisation based on
owner preferences and past historic data. With a trained dataset, it
can advise the owner to make automatic decisions on workslot
creation.
➢ Security Threat Detection
■ Labels: Secure activity, potential suspicious activity
■ Usage: To train models that can detect normal behaviour and unusual
or malicious behaviour such as flooding of work slot creation or
overbidding of slots.
➢ User Feedback Analysis
■ Labels: Positive feedback, negative feedback
■ Usage: For training sentient analysis model to understand user
sentiment from feedback comments and user experience
Feature Engineering
❖ Feature Extration from Data Model Training
➢ User Authentication
■ Failed Login Attempts: Count of unsuccessful login attempts within a
specified time frame.
■ Login Time: Time of day or the day of the week that the user typically
logs in
➢ User Behaviour Analysis
■ Session Duration: Duration of a user’s session within the application.
■ Feature Usage: Counts or frequencies of using specific features within
the application
➢ Shift Scheduling Optimisation
■ Shift Preferences: User preferences for specific shifts (weekdays,
weekends)

227

Shift Overlaps: Analysis of overlapping shifts to identify optimal
scheduling.
➢ User Feedback Analysis
■ Sentiment Analysis: Extract sentiment scores from user feedback.
■ Feedback length: Length of user comments in characters or words.
Model Training

❖ Data preparation (basically step 2 - 4)


➢ Split training
■ Divide the dataset into a training and testing set. The training set is
used to train the model, while the testing set is reserved for evaluating
performance.
➢ Handle Missing Data
■ Deal with missing values in a way that is appropriate for the dataset
(removal, append)
➢ Feature Scaling and Normalisation
■ Numerical features that are on a similar scale. Can use technique like
Min-Max scaling
❖ Choosing Decision Tree as a training algorithm as it is versatile and intuitive.
➢ Model will learn to map the input features to the corresponding output labels.
➢ Training process involves adjusting the model's parameters to minimise the
difference between predictions and the actual labels in the training data.
❖ Hyperparameter tuning
➢ Use grid search to adjust hyperparameters to optimise model performance.

Model Evaluation
❖ Access performance of model training in the previous step.
➢ Classification Tasks: Analyse the difference in accuracy, precision, recall and
F1 score.
❖ Evaluate whether the training model generalises well to new and unseen data.

Model Deployment
❖ Once satisfied with a model's performance in the model evaluation step, the model
can be deployed to a production environment where it can be used to make
predictions on new and unseen data.
Model Monitoring
❖ Regularly monitor the model’s performance in the production environment. If the
application or data distribution has drastic changes, retrain or update the model as
required.

228
JUnit Testing
Note that there is no JUnit test cases for logout since it interacts with boundary itself only,
and doesn’t touch the controller and entity.

UserProfile test

testCreateUserProfileC calls the method createUserProfileC and creates a test profile to


determine if the function is working.

UserAccount test

Code for UserAccount testing


testLoginUserAccountAdmin calls the method loginUserAccountC and logs in with an
existing admin credentials.
testLoginUserAccountOwner calls the method loginUserAccountC and logs in with an
existing owner credentials.
testLoginUserAccountStaff calls the method loginUserAccountC and logs in with an existing
staff credentials.
testLoginUserAccountManager calls the method loginUserAccountC and logs in with an
existing manager credentials.
testCreateUserAccountC calls the method createUserAccountC and creates a test account
to determine if the function is working.

229
CI/CD
For our project, we have deployed the use of Github to manage our code especially when
we have 2 programmers working on it at the same time. Using github, we can easily update
our code in real time and ensure our code remains synchronized throughout the project
duration. In addition, we can use this as a hub to share our research on program
functionality, which can allow easy access to the test programs. This accessibility also
facilitates collaboration and knowledge exchange within our team.

230
231
Ethical Considerations
2 Ethical Issues in terms of Process
1. Transparency
As we adhere to the principle of transparency as we develop our cafe management
application. During the development progress, we highlight the need for
transparency as this is critical towards creating a trustworthy environment among
stakeholders. Software development without transparency has numerous ethics
concerns.
Our team adopted Taiga and Scrum approaches to schedule the tasks in sprints right
from when the project was initiated. These strategies help us enhance efficiency in
development as well as align our mission of promoting transparency and
cooperation. Update and proper flow of information amongst various stakeholders on
a regular basis so that they all are aware of what is happening in the project
implementation process and decisions made. Our aim is to achieve a code of
morality, built on trust, within our team in order to ensure that the Scrum and Taiga
powers of transparency are utilised effectively in the development process while
establishing the basis for the creation of a cafe management system.

2. Reliability & Safety:


The reliability and safety issue is one more factor that has been considered when
creating the cafe management system; it plays an important role because users
need to be sure that their data will not leak. On the other hand, an ethics’ problem
may result if quality checking and intensive testing have not been carried out.The
presence of bugs and risks associated with the development can be prevented by
screening potential flaws in the attributes’ functions.
The other requirement is to address any weaknesses that may be discovered.Failure
to immediately take appropriate and effective action to counter the threat to security
and obligations to users may lead to breaches of safety and moral duties.Among
others,proactive measures include speedy responses and quick mitigation options
aimed.
In addition, it is morally imperative to address all the discovered vulnerabilities
promptly. The failure to provide an immediate and adequate solution to known

232
deficiencies is not only against the duty of care for users’ safety but also puts the
users’ safety at stake. The ethical standard can be maintained by responding quickly
and having a good mitigation strategy. Developers show an ethical code by putting
into consideration reliability and safety concerns during the development process so
customers can have faith that they use secure and trustworthy systems for managing
our café.

2 Ethical Issues in terms of Product

1. Data Privacy and Security


The system may collect sensitive personal data about cafe staff, such as their
names, contact information, home address, and work schedules. This data
must be protected from unauthorised access, use, and disclosure.

In a real-world application, the system should have clear and transparent data
handling policies that explain to staff how their data is being collected, used,
and shared. Staff should also have the right to access, correct, and delete
their own data.

All these sensitive data, such as names, addresses, and contact information,
should be encrypted both at rest and in transit. This will help to protect the
data from unauthorised access, even if the system is compromised.

Access to these data should be restricted to authorised personnel only. This


can be done through the use of, access tokens, and other security measures,
such as role-based access control (RBAC).

When data breaches do happen, the system should also have a clear plan for
reporting in a timely manner. This will help to minimise the harm caused by a
breach and give affected staff the opportunity to take steps to protect
themselves.

233
2. Algorithmic Biasness
The system may use algorithms to make some decisions about staff, or even
assign work slots and/or evaluate staff performance in the future. These
algorithms must be designed and implemented in a way that is fair and
unbiased, which means that it should not take into account any personal
characteristics that are not relevant to the task at hand.

The system should be regularly tested for algorithmic bias to identify and
mitigate any potential problems. This can be done by comparing the
algorithm's decisions to those made by human experts, or by using statistical
methods to detect bias.

234
Agile Methodology

Our team adopted an agile methodology by using scrum and Taiga to assist us by
developing our cafe system by sprints and testing the system along the way.
https://tree.taiga.io/project/junen99-csit314-chambers/timeline

235
236
237
Meeting Minutes
Group Meeting 1
Meeting Date: 10th Oct 2023
Meeting Time: 1:00pm
Attendance:

● Jimmy (Project Manager)


● Bentley (Project Admin)
● Ray (Design Team)
● Leon (Design Team)
● Justin (Design Team)
● Yuanchao (Programming Team)
● Kelvin (Programming Team)

Agenda: Sprint Organization, Roles Clarification, Prioritize and Assign User Stories

Discussion:

● Create User Stories into Sprint


● Assign Tasks to a User Story
● Determine the objectives for each team

Progress Report:
- Work completion:
- Remaining work items:
- Challenges:
- Creating scrum and assigning tasks to different teams.
- No knowledge on how to pass data from HTML to Java.
- No knowledge on how to pass data from Java to MySQL.
- Overcoming challenges:
- Learn and use Taiga to conduct scrums and to assist with sprint meetings.

Review:
- Design layout is introduced
- 10 user stories created for the first sprint
- 38 user stories in total has been created
- Storyless tasks has been introduced for programmers and currently in progress
- Set the date for next sprint meeting

238
Tracking (sample of snapshots):

239
Action Plans:
● Implementing Github into the project
● Research on HTML to Java connection
● Research on Java to SQL database connection
● Create SQL database
● Prepare all 3 BCE components
● Drafting UML design for Creating Accounts
● Drafting UML design for Login
● Drafting UML design for Logout

240
Group Meeting 2
Meeting Date: 16th Oct 2023
Meeting Time: 1:30pm
Attendance:

● Jimmy (Project Manager)


● Bentley (Project Admin)
● Ray (Designer)
● Leon (Designer)
● Justin (Designer)
● Kelvin (Programmer)

Agenda: Check for progress for Sprint 1, proceed to next user stories for current sprint, schedule for
the next meeting.

Discussion:
● Connecting Entity to SQL database
● Sprint 1 Design
● Designing ER diagrams
● Flow and alternative flow for test cases an the handling of test cases

Progress Report:
- Work completion:
- Database
- Entity to SQL connection
- Remaining work items:
- Controller to Entity class
- Entity classes for different SQL statements
- Connecting from boundary to entity
- Challenges:
- Need to coordinate how the controller class works since it needs to convert data from
HTML to another form that can convert into SQL statements the entity class has to
handle
- No experience on User Interface(wireframe) and ER diagrams
- Programmer and designer test cases do not match
- Overcoming challenges:
- Researching how User Interface and ER diagrams are used
- Discussion among programmer and designer for test case scenarios

Review:
- Entity is able to connect to the SQL Database.

241
Tracking (sample of snapshots):
Created database and tables

Variables for useraccount and userprofile tables

242
Data stored in the respective tables

Java program with SQL statements being run using SQL Driver to the mySQL server

Action Plans:
● Construct relative classes to perform different SQL functions (CRUDS)
● Ensure properly connection from Entity and Controller classes

243
Group Meeting 3
Meeting Date: 23th Oct 2023 (Online)
Meeting Time: 2.30pm
Attendance:
● Jimmy (Project Manager)
● Bentley (Project Admin)
● Ray (Designer)
● Leon (Designer)
● Justin (Designer)
● Kelvin (Programmer)
● Yuanchao (Programmer)

Agenda: Connecting the Boundary together in the BCE framework


Progress Report:
● JUnit testing
● Unfinished tasks from Sprint 1 will shift to Sprint 2
● Added User Stories to Sprint 2 so design team can work on it
● Base for boundary and entity is completed, need to connect both to controller

Review:
Functions created at Entity for the controller class to run.
Boundary created, using JFrame to send functions over to controller

Tracking (sample of snapshots):

244
Action Plans:
● Create a Login Controller
● Create a User Story where a person wants to update the account to reset the password
● Create Authentic User with username and password
● Create Sequence Diagram with Authentic User
● Create Login Frame for staff, manager and owner
● Ensure that BCE works

245
Group Meeting 4
Meeting Date: 30th October 2023 (Online) (Stand-up meeting)
Meeting Time: 7:00pm
Attendance:
● Jimmy (Project Manager)
● Bentley (Project Admin)
● Ray (Designer)
● Justin (Designer)
● Kelvin (Programmer)
● Yuanchao (Programmer)

Discussion Report: Check on the progress on Sprint 2


Review:
● Sprint 1 finished
● Plan to finish the Sprint 2 by Friday
● Sprint 3 is the workslot phase
● Create account is working
● Connect Boundary to the DB, able to establish connection
Tracking (sample of snapshots):

Action Plans:
● Create an object controller

246
● Create a user profile class from the Boundary to Entity via controller (sending information,
might be denied)

Group Meeting 5
Meeting Date: 6th November 2023
Meeting Time: 12:30pm
Attendance:
● Jimmy (Project Manager)
● Bentley (Project Admin)
● Ray (Designer)
● Leon (Designer)
● Justin (Designer) (Discord)
● Kelvin (Programmer)
● Yuanchao (Programmer)

Discussion Report:
● Starting Sprint 3 with 13 new tasks
● Start on design for remaining tasks for Sprint 4 next week
● Re-coding the controller
Review:
● Almost finished Sprint 2 on design
● Boundary now have local object to send to entity without directly referencing
● Able to get list of user profiles from entity, but not using SQL
● Moved some controller functions to their own individual classes
Tracking (sample of snapshots):

Action Plans:
● Sending the objects from boundary to entity without boundary directly accessing the entity

247
Group Meeting 6
Meeting Date: 13th November 2023
Meeting Time: 2:00pm
Attendance:
● Jimmy (Project Manager)
● Bentley (Project Admin)
● Ray (Designer)
● Justin (Designer)
● Kelvin (Programmer)

Discussion Report:
● Finalize BCE Sequence Diagram
● Finishing up the layout of the final report
● Starting up the final sprint 4

Review:
● Discuss what we done since Sprint 5
● Necessary changes to UML diagrams such such as removing update password to update
account
● Changing incorrect data persistence diagrams

Tracking (sample of snapshots):

248
Action Plans:
● Finishing up UML design and check consistency
● Making the demonstration video
● Finishing up the code
● Complete the Gaant chart
● Adding in ethical considerations
● Data driven development

Product Owner’s feedback: no need for alternative use case, sub-flow for exception handling

249

You might also like