Professional Documents
Culture Documents
CSIT314 Final Report Chambers-1
CSIT314 Final Report Chambers-1
CSIT314 Final Report Chambers-1
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
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
3
Project Summary
In this project, we were tasked to design and develop a Café Staff Management System.
● 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
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
26. As a Cafe Manager, I want to be able to indicate how many Full-Time and Part-Time staff are
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
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
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.
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.
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.
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
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.
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.
13
USE CASE DESCRIPTION
Stakeholders and goals: System Admin - wants to log in to the cafe’s Staff
Management System
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.
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.
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
SEQUENCE DIAGRAM
18
USER INTERFACE
19
Cafe Owner
#18 As a Cafe Owner, I can login into the system to login to my account.
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.
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.
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.
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
SEQUENCE DIAGRAM
24
USER INTERFACE
25
Cafe Manager
#28 As a Cafe Manager, I can login into the system to login to my account.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
Stakeholders and goals: System admin wants to update user account information
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
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.
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.
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.
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.
Stakeholders and goals: System admin wants to update user profile information
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.
Stakeholders and goals: System Admin - wants to suspend user’s account profile
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.
61
USE CASE DESCRIPTION
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.
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.
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.
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.
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.
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.
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.
Description: Cafe owner creating work slots for staff to bid for to work.
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.
Description: The Café Owner wants to be able to view work slots using the staff
management system.
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
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.
Description: Cafe Owner updates work slots for staff to make any changes.
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.
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.
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.
Description: The Café Manager wants to be able to view all the work slots using the
staff management system.
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
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.
Description: Cafe Manager views for staff that are currently available
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.
Stakeholders and goals: Cafe Manager - assign cafe staff to work slots
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.
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.
98
USE CASE DESCRIPTION
Description: The Café Staff wants to be able to view work slots using the staff
management system.
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.
Description: Cafe Staff searches for a specific day for staff to view the work slot on that
day.
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.
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
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.
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.
108
USE CASE DESCRIPTION
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.
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.
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.
Name: Cafe Manager searched and assign unbidded slot to cafe staff ID: 22
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.
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.
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.
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
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.
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.
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.
128
USE CASE DESCRIPTION
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.
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
129
SEQUENCE DIAGRAM
USER INTERFACE
130
DATA PERSISTENCE
CLASS DIAGRAM
131
132
Test Driven Development
Test Cases
133
No Task Taiga ID Purpose
134
No Task Taiga ID Purpose
11 System Admin - View List of all #2 To allow system admin to view all
User Accounts user accounts
System Admin is able to view all System Admin is able to view Pass
accounts all accounts
135
No Task Taiga ID Purpose
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
136
No Task Taiga ID Purpose
Cafe Owner is able to update account Cafe Owner is able to update Pass
details account details
137
No Task Taiga ID Purpose
22 Cafe Owner - Create Work #13 To allow cafe owner to create work
Slots slots
Cafe Owner is able to create work Cafe Owner is able to create Pass
slots work slots
23 Cafe Owner - View Work Slots #14 To allow cafe owner to view work
slots
Cafe Owner is able to view work slots Cafe Owner is view to update Pass
work slots
24 Cafe Owner - Update Work #15 To allow cafe owner to update work
Slots slots
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
Cafe Owner is able to delete work Cafe Owner is able to delete Pass
slots work slots
26 Cafe Owner - Search Work #17 To allow cafe owner to search for
Slots work slots
Cafe Owner is able to search for work Cafe Owner is able to search Pass
slots for work slots
27 Cafe Manager - View List of #23 To allow cafe manager to view the list
Staff of available staff
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
30 Cafe Staff - View Work Slots #30 To allow cafe staff to view available
work slots to find available work slots
Cafe Staff is able to view work slots Cafe Manager is able to view Pass
work slots
31 Cafe Staff - Search Specific #31 To allow cafe staff to search for a
Day specific day
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.
Cafe Staff is able to view work slot Cafe Staff is able to view Pass
details work slot details
33 Cafe Staff - Declare Work Days #35 To allow cafe staff to declare how
many days available in a week
Cafe Staff is able to declare work Cafe Staff is able to declare Pass
days work days
34 Cafe Manager - View Bids #21 To allow cafe manager to view bid for
work slot to see who’s bidding for the
slot
Cafe Manager is able to view bid for Cafe Manager is able to view Pass
work slot bid for work slot
141
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.
Cafe Staff is able to bid for work slots Cafe Staff is able to bid for Pass
work slots
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.
Cafe Staff is able to view status for Cafe Staff is able to view Pass
work slots status for work slots
39 Cafe Staff - Swap Shifts #36 To allow cafe staff to swap booked
shifts with other colleagues
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
144
Not created, and returns a message stating that UserID has already exist.
145
Test Case 2
#6
Create User Profile
146
If success
147
Not created, returns an error message
148
Test Case 3
#11
Login Screen
149
Test Case 4
#12
Logged in as Admin
150
Admin login successfully
151
Test Case 5
#18
Login Screen
152
If password entered is wrong
153
Test Case 6
#19
Logged in as Owner
154
Test Case 7
#28
Login Screen
155
Manager login successfully
156
Test Case 8
#29
Logged in as Manager
157
Test Case 9
#37
Login Screen
158
159
Test Case 10
#38
Logged in as Staff
160
Test Case 11
#2
Logged in as Admin
161
User clicks on View All Accounts
162
Test Case 12
#3
First the system admin needs to search for the account
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
166
When user is suspended
167
Test Case 14
#5
To search for a user account, the system admin needs to be logged in
168
Type any ID to search for
169
Test Case 15
#7
Logged in as Admin
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
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
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
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.
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.
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
189
After update
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
196
After update
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
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
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
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.
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
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.
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
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
UserAccount test
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.
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é.
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.
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:
Agenda: Sprint Organization, Roles Clarification, Prioritize and Assign User Stories
Discussion:
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:
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
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)
Review:
Functions created at Entity for the controller class to run.
Boundary created, using JFrame to send functions over to controller
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)
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
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