1 – introduction/overview – document informationemile.ohan/prj566/resources/... · web view–...
TRANSCRIPT
Page 1
PRJ566 –2018
PRJ566 – Group No: 05
Name of Project: WeHearYou
Project Leader:
Last updated: May, 2018
Group Members:
Page 2
able of Contents1 – Introduction/Overview – Document Information.....................................................................................6
1.01 – Document Authors...........................................................................................................................6
1.02 – Revision History................................................................................................................................7
1.03 – Document Conventions....................................................................................................................9
1.04 – Document Purpose.........................................................................................................................10
1.05 – Intended Audience.........................................................................................................................11
1.06 – Acronyms & References.................................................................................................................12
1.07 – Group Agreement...........................................................................................................................13
2 – Project Overview.....................................................................................................................................14
2.01 – Project Proposal.............................................................................................................................14
2.02 – Project detailed scope & functionality...........................................................................................18
2.03 – Stakeholders and Users..................................................................................................................24
2.04 – Business Opportunity.....................................................................................................................25
2.05 – Risks................................................................................................................................................26
2.06 – Constraints.....................................................................................................................................27
2.07 – Operating Environment..................................................................................................................28
2.08 – Operational, Performance & Security Requirements.....................................................................29
3 – Implementation Schedule for PRJ566.....................................................................................................30
3.01 – Schedule (Make sure to include names, dependencies, start and finish dates and hours)............30
4. – Process/Activity & Data Modeling..........................................................................................................34
4.01 – Data Flow Diagrams........................................................................................................................34
User Connect to Agent..........................................................................................................................34
User & Agent Web Chat Session............................................................................................................35
Use & Agent Mobile Chat Session.........................................................................................................36
Agent Review Information....................................................................................................................37
Agent/Admin Request Password Reset.................................................................................................38
Agent/Admin Reset Password...............................................................................................................39
User Search Hotlines.............................................................................................................................40
User View Statistics...............................................................................................................................41
Admin Review Requests........................................................................................................................42
Agents Sign Up......................................................................................................................................43
Agent/Admin Sign In.............................................................................................................................44
Page 3
Admin Inspect Agent.............................................................................................................................45
User Feedback.......................................................................................................................................46
Agent Form Submission Post Session....................................................................................................47
Agent Candidate Confirmation..............................................................................................................48
5. – Project/System Design...........................................................................................................................49
5.01 – Business Rules................................................................................................................................49
5.02 – Use Case Diagram...........................................................................................................................51
5.03 – Use Case Specifications..................................................................................................................52
UC01: Communication Session (User)...................................................................................................52
UC02: Communication Session (Agent).................................................................................................55
UC03: Request Becoming Agent............................................................................................................57
UC04: Review the Requests..................................................................................................................59
UC05: Sign in.........................................................................................................................................61
UC06: Sign Out......................................................................................................................................63
UC07: Reset Password...........................................................................................................................65
UC08: Change Password........................................................................................................................67
UC09: Contact hotline...........................................................................................................................69
UC10: Review Activity Log.....................................................................................................................71
UC11: Review Signed On Profile............................................................................................................73
UC12: View Statistics.............................................................................................................................75
UC13: View Feedback............................................................................................................................76
UC14: Review Other Employee Profile..................................................................................................77
UC15: Add Certification.........................................................................................................................79
UC16: Add Experience...........................................................................................................................81
UC17: Agent Reconnection...................................................................................................................83
UC18: Admin/Agent Name Change.......................................................................................................85
UC19: Add Education.......................................................................................................................87
UC20: Change Email...........................................................................................................................88
5.04 – Domain Class Diagram....................................................................................................................91
6. – Interface Mock-ups................................................................................................................................92
6.01 – Android Templates.........................................................................................................................92
Android – Home Page...........................................................................................................................92
Android – Chat Page..............................................................................................................................93
Android – Video Chat Page....................................................................................................................94
Page 4
Android – Voice Chat Page....................................................................................................................94
Android – Prompt Feedback Page.........................................................................................................95
Android – About us page.......................................................................................................................96
6.02 - iOS Templates.................................................................................................................................97
iOS – Home Page...................................................................................................................................97
iOS –Chat Page......................................................................................................................................98
iOS – Video Call Page.............................................................................................................................98
iOS – About Page...................................................................................................................................99
iOS – Prompt Feedback Page.................................................................................................................99
6.03 - Web Templates.............................................................................................................................100
Web – About/Statistics page...............................................................................................................100
Web – Admin Profile Page...................................................................................................................100
Web – Agent Chat Page.......................................................................................................................101
Web – Agent Chat Post-Session..........................................................................................................101
Web – Agent Chat Reconnection........................................................................................................102
Web – Agent Profile Page....................................................................................................................102
Web – Agent Sign up Page..................................................................................................................103
Web – Change Password.....................................................................................................................103
Web – Forgot Password......................................................................................................................104
Web – Forgot Password Confirmation (overall Dialog sample)...........................................................104
Web – Home Page...............................................................................................................................105
Web – Chat Request Dialog.................................................................................................................105
Web – Hotlines Page...........................................................................................................................106
Web – Detailed Profile Page................................................................................................................106
Web – Review the Requests................................................................................................................107
Web – Sign in page..............................................................................................................................107
Web – User Chat.................................................................................................................................108
Web – User Chat – Feedback..............................................................................................................108
Web – View Agents.............................................................................................................................109
Web – View Feedback.........................................................................................................................109
7. – Database..............................................................................................................................................110
7.01 – Scripts to create tables.................................................................................................................110
7.02 – Scripts to populate tables (meaningful data)...............................................................................115
Categories table..................................................................................................................................115
Statistics table.....................................................................................................................................115
Page 5
Security Questions table.....................................................................................................................115
Hotlines table......................................................................................................................................116
Employees table..................................................................................................................................116
AgentCategory table...........................................................................................................................117
ActivityLog table..................................................................................................................................117
Certificate table...................................................................................................................................118
Education table...................................................................................................................................118
Experience table..................................................................................................................................118
Feedback table....................................................................................................................................119
PasswordRecovery table.....................................................................................................................119
TempAgent table.................................................................................................................................119
VerifiedTempAgent table....................................................................................................................119
7.03 – Scripts to delete tables.................................................................................................................120
7.03.01 Drop table scripts...................................................................................................................120
7.03.02 Delete existing records in a table...........................................................................................120
7.04 – Data Dictionary.............................................................................................................................122
8. – Implementation Schedule for PRJ666 (week 12)..................................................................................126
8.01 – Schedule (Make sure to include names, dependencies, start and finish dates and hours)..........126
9 – Measurable deliverables.......................................................................................................................128
10 – Acceptance Criteria.............................................................................................................................129
11 – Client / Faculty Sign-off.......................................................................................................................130
12 - PRJ666 Virtual Machine (VM) Requirements.......................................................................................131
Page 7
1.02 – Revision History
Week 03 Started and completed Project Initiation sections:o 1.01 – Document Authors o 1.02 – Revision History (ongoing)o 1.03 – Document Conventions o 1.04 – Document Purpose o 1.05 – Intended Audience o 1.06 – Acronyms & References (ongoing) o 1.07 – Group Agreement o 2.01 – Project Proposal o 2.02 – Project detailed Scope & functionality
Week 04 Edited and improved the following:o 1.07 – updated the group agreement with information about co-op o 2.01 – replaced the “Agent rating” with “User feedback” o 1.02 – added links to the respective document parts
Completed the following sections:o 2.03 – Stakeholders and Users o 2.05 – Risks o 2.06 – Constraints o 2.07 – Operating Environment o 2.08 – Operational, Performance and Security Requirements
Week 05 Edited and improved the following:o 3.01 – updated the screenshots of the implementation schedule o 2.02 – added the email confirmation functionality to Sign Up feature
Completed the following sections:o 5.01 – Business Rules o 4.01 – Data Flow Diagrams
Week 06 Modified the following sections:o 2.02 – updated user chat form to include agent name text field and removed age
text field, added the language preference fields for user and agento 5.01 – added business rule to force HTML5 web browsers for Web and Audio call
sessionsComplete the following section:
o 5.03 – First use case done: Start Chat for Users o 6.01 – Android templates o 6.02 – iOS templates
Week 07 Modified the following sections:o 3.01 – Use Case Specifications o 5.03 – Redid Start Chat Use Case Specification and renamed to Communication
Session (User)Completed the following sections:
o 5.02 – Use Case Diagram o 5.04 – Domain Class Diagram
Week 08 Modified the following sections:o 5.03 – Added Use Case Specifications (UC04, UC05, UC08, UC09, UC12, UC15, UC16,
UC17, UC18)
Page 8
o 5.04 – Added the new VerifiedTempAgent class o 4.01 – modified Agent Candidate Confirmation , Admin Review Requests to include
class mentioned aboveo 5.01 – matched use cases and business rules
Week 09 Updated the following sections:o 5.03 – added the View Feedback use case (UC13), as well as refined other use cases
Week 10 Updated the following sections:o 7.01 – added database table creation scriptso 6.03 – added Web – Signup and Admin page mockups
Week 11 Updated the following sections:o 7.01 – added missing columnso 6.02 – added iOS – About mockupo 6.03 – added Web – Chat (User) mockup
Completed the following sections:o 7.02 – database population scripts
Week 12 Updated the following sections:o 5.01 – matched the values in database with the categories and security questions
listedo 2.05 – added the multiple platforms risko 7.02 – updated the scripts to reflect the business rules for categories and security
questionso 8.01 – Added PRJ666 Implementation Schedule
Week 13 Completed the following sections:o 9 – Measurable Deliverableso 10 – Acceptance criteriao 11 – Faculty sign off
Updated the following sections:o 7.01 – added Status columns for the Employees tableso 7.02 – updated the screenshots for the Employees scripto 12 – removed unnecessary OS requirements, added NodeJS requiremento 8.01 – Modified implementation schedule to include predecessors and other
important information about the tasksFinal
Page 9
1.03 – Document Conventions
Any text highlighted in red indicates an exception or error
Anything highlighted in blue is in-progress
Any text highlighted in yellow is an important point.
Any text italicized represents definitions.
Page 10
1.04 – Document Purpose
The purpose of this document is to provide the documentation related to the Suicide Prevention & Mental Illness Aid chat application. The documentation will include the technical specifications of the project as well as the functionalities available for all the platforms.
Page 11
1.05 – Intended Audience
The intended audience for this application would be those who are contemplating suicide or merely wanting talk to someone, who is not an acquaintance, about issues that could be negatively affecting their daily life. This application will also be useful for those who choose to have anonymity while seeking help because of the stigma surrounding mental illness.
Page 12
1.06 – Acronyms & ReferencesThe following sources have been used to reference the material for the proposal and the overall justification for the project.
1. “It is hard to talk about suicide, but employers must.”https://www.ft.com/content/358985be-3fa7-11e7-82b6-896b95f30f58
2. “Teen Suicide: Why Is It So Hard To Talk About It?”https://www.psychologytoday.com/us/blog/promoting-hope-preventing-suicide/201403/teen-suicide-why-is-it-so-hard-talk-about-it
3. “Why we need to talk about suicide.”https://www.time-to-change.org.uk/blog/why-we-need-talk-about-suicide
4. https://www.statcan.gc.ca/pub/82-624-x/2012001/article/11696-eng.htm
5. Java LTS isn’t free anymore, plus Java roadmap needed to figure out the maintenance:a. https://medium.com/codefx-weekly/no-free-java-lts-version-b850192745fb b. https://jaxenter.com/end-life-comes-early-jdk-8-140824.html
6. Top suicide reasonsa. https://mentalhealthdaily.com/2014/07/23/15-common-causes-of-suicide-why-do-
people-kill-themselves/7. WebRTC udemy courses
a. https://www.udemy.com/topic/webrtc/
Page 13
1.07 – Group AgreementThe group members must:
Update each other on the progress of the task assigned to them in a timely fashion Contact the leader of the group if the issues arise Do their best to complete the assigned tasks by Saturday night Members who are applying to co-op placements will be taking PRJ666 next semester along with
their co-op placement should they have one
Page 14
2 – Project Overview2.01 – Project ProposalGroup 5 _________ MEMO
To: Emile Ohan, PRJ566 professor
Background
Mental illnesses and suicides have a major impact on today’s society as they impact not only the lives of the victims but also the lives of the family and friends of the victims. Additionally, these problems tend to have a stigma around them making it harder to raise awareness and to help those in need. According to Statistics Canada, there were 3890 suicides in Canada in 2009. These figures are much higher in other parts of the world where mental illness and suicide victims are outcasts from society. Society needs to solve this problem and put various solutions in place to help those in need, to raise awareness, and educate those who have little knowledge on the topic.
Executive Summary
To solve these problems, we propose an application that will target those who are contemplating suicide, having mental issues, or only are looking to talk to someone about issues going on in their life that seem to be affecting their well-being. The users will have an option to be anonymous or provide a screen name and also to provide details about their issues. Should they choose not to give details, they will get connected to an agent that will thoroughly analyze the problem and connect them to the most suited agent available. Either way, the user receives the best help as they will be talking to the most suited agent available. After a talk session, the user will have the option to rate the communication as this will affect the evaluation of the agent. The foundation of this application consists of five main features listed below:
Texting: A way to connect the user and the agent through a texting session. It will require a telephone device with the capabilities for texting services.
Phone Call: A way to connect the user and the agent through the available hotline numbers. It will require a telephone device capable of making phone calls.
Live Chat: A way to connect the user and the agent through a live chat session that will require internet usage.
Voice/Video Call: A way to connect the user and the agent either through a Voice call or a Video chat session. The Voice Call is a subset feature of the Video Call, and both require internet usage.
Reconnection: A way to re-connect the user based on the agent’s evaluation should the agent be not the best-suited one for the user’s specific issues.
Project Description
The project’s goal is to help the targeted audience by connecting them with a certified professional to get the best counseling possible in the most convenient way. The service will be available on multiple platforms: web, iOS, and Android application which will provide flexibility for the user. After careful
Page 15
consideration of the available time, the group decided the primary aim is to implement all the baseline features of the applications listed in italics below.
Features to be included:
User DescriptionThe user will be able to elaborate on the issue by selecting a category and provide the name or nickname before getting connected to the agent. If the user decides to remain anonymous, the user will get connected to the first agent available who will then analyze the issue and possibly reconnect the user to the most suited agent available.
Agent RegistrationThe agents will have to be the licensed professionals, therefore, having to be added to the system manually by the administrators. Additionally, the project will allow a person to fill out a form to become an agent; the applications will have to be evaluated by the administrator before the person can become an agent. The information about the agent includes, but not limited to: the name, experience, and qualifications based on the categories provided to the front-end user. They will receive the username and password for logging in to the application.
TextingThis feature will connect the user and the agent through a texting session should the user choose to type rather than call. This feature will also require a mobile device with capabilities for texting and will be available as part of our Hotline Search feature.
Live ChatThis feature will connect the user and the agent for when the user would prefer typing over calling. Unlike texting, this feature will require an internet connection and will be available on every supported platform.
Phone CallThis feature will connect the user and the agent through a phone call session should the user choose to talk rather than type about what’s troubling them. It will also be useful for the agents to evaluate the situation by hearing the voice of the user and calm them down should the need be. This feature will require a mobile device capable of making phone calls and will be available within our Hotline Search feature.
Voice/Video Call Video calling is the best option for our agents so that they have a visual of the location, current situation, facial expressions, etc. The Voice call feature is a subset of the Video Call and will have the same function/purpose of the Phone Call feature. This feature will be available through directly starting a video call session or enable the camera during a voice call session.
ReconnectionThis feature will be useful for when people choose to be anonymous, and after the agent has analyzed the situation, they can reconnect with another agent who is best suited for the case.
Page 16
Hotline SearchThis feature allows the user to search for hotline numbers in their local region should they choose to contact another one or in the case when the user does not have the Internet connection on the device. It will use a preset list of the available hotlines. Therefore, the user will be able to use the feature always. This feature will also allow the users to text or call another hotline if they don't have the Internet connection on the device, what means they cannot use live chat or voice/video call.
StatisticsSince privacy is a big concern for the users, the only statistics the application will provide is the overall information about the categories of the issues motivating people to use the services. This information will be provided by the agent after a session through a form that will enable the agent to select categories that best describe the user’s reasons for the conducting a talk session. After analyzing this data, the analysts will be able to recognize the hotspots and provide better counseling. This feature is also intended to give the users an understanding that no one is alone in their struggle which may help them feel better. The statistics will be available both as charts and tables depending on the needs of the user or the analyst.
User FeedbackThe user will be able to provide feedback after the end of the conversation. The feedback will include no more than 3 questions since we wouldn’t want to discourage the user from sharing his experience. In addition, the questions will not ask for any personal information since we want to respect the right for privacy since the subject of the project is a very delicate matter. The gathered feedback will be used to improve the services provided so the users can receive the best help possible and shape the future of this service.
Future features:
Voice RecordingsThis feature will allow the user to send voice recordings to an agent instead of typing. Voice recordings will be useful when it is too much information to type or the user does not want to use the Voice Call feature to communicate with the agent.
Supporting Materials and Team Credentials
Our application’s purpose is to connect those in need to the people who can help them. Therefore, the group will discuss this with the suicide prevention hotlines and suicide prevention organizations to have highly skilled professionals as agents to talk to the users. This way we will ensure that the users get professional and appropriate help. The group will allocate enough time for each task as well as distribute the functions respecting the members’ commitments outside of school to ensure the quality of the final product.
The group consists of four 5th semester students who have different skill sets that can contribute to the project. Based on the courses we took previously; the group members have strong analytical and problem-
Page 17
solving skills accompanying strong programming skills. Some of us already had co-op and worked on different kinds of tasks, and the real-world experience will let us manage the team, and the project appropriately as well as develop the application more efficiently. In addition to the skills mentioned above, every group member has excellent researching skills that will allow us to research the topics and technologies we need to implement the project.
Authorization
In conclusion, we would like to have the permission to initiate the project. There is a need for the project like ours since there’re not many chat applications regarding the suicide prevention & mental illness aid, and people are not comfortable talking out loud about their troubles. All the team members firmly believe in the project and are committed to creating a sustainable and useful application. Please contact us if you have any questions, concerns or improvement suggestions.
Page 18
2.02 – Project detailed scope & functionalityWe will deliver a Suicide Prevention & Mental Illness Aid application that will be available on: Web, Android, and iOS. The application will contain many helpful features and function for the intended audience. Some of features or functions may need revision or more in-depth discussion during the development process but this is the basis that we have planned to complete for deployment.
In our application, we will have the functions and features listed below:
Intro page
The initial screen will contain links to “Sign-up/Sign-in for Agents”, “Hotlines search”, “View statistics” and “Chat Now”.
The Sign-up link is for anyone who is wanting to become an agent for the application. The Sign-in link is for existing agents and admins to sign-in to the application. The Hotline Search link will lead them to the Hotline Search page enabling the users to see a list of
available hotline numbers for texting and calling. The View Statistics link is for anyone who wants to view more information about mental health
and suicide. The Chat Now link will lead the users to the Chat Now page giving them access to all the other
functionalities of the application.
Sign up page
This page will be available for anyone who wishes to sign-up as an agent for the application. Upon submission of the form, the applicant will receive an email with an expiring link to confirm the address. If the link expired and the applicant did not confirm the information, the application will be deleted. Making the applicant review the email before the final submission will make sure that the database is not flooded with useless information, and it will also lessen the load on the administrator since it would lessen the number of the legitimate requests. Afterwards, an admin will review the information and have the ability to approve or reject the request which will send the user an email and allow them to sign-in to the application should their request be approved.
Form elements:
Username textbox – the user can input alphabetical characters, and there will be a constraint on how many characters the user can input. (Maximum 25 characters)
Password textbox – the user can input alphanumeric characters, and there will be a constraint on how many characters the user can provide. (Maximum 25 characters)
Security Question select-list – the user can select from a list of security questions Security Answer textbox – the user can input alphabetical characters, and there will be a constraint
on how many characters the text box can contain. (Maximum 100 characters) Date of birth – the user can select their date of birth. Field of Study select-list – the user can select from a list of relevant fields of studies with a
maximum character limit of 50 characters.
Page 19
Institution textbox – the user can provide the name of the institution of where they studied (Maximum 100 characters)
Preferred language select-list – the user can select from a list of languages Self-introduction textbox – the user can input alphabetical characters, and there will be a
constraint on how many characters the textbox can contain. They introduce themselves as well as how are they qualified to do this job. (Maximum 300 words)
Email textbox – the user can input alphabetical characters, and there will be a constraint on how many characters the textbox can contain and check if it is a valid email format.
Certification – the agent should provide the relevant accreditation or qualification to show professional training in psychological counseling.
Certification Institution – the agent can provide the name of the institution of where they got their certification (Max 100 chars)
Psychological counseling experience – the agent can provide the volunteering or counseling experience.
Experience Organization – the agent can provide the name of the organization for their experience Experience Dates – the agent can provide the range of dates for the relevant experiences Sign-up button – when the user clicks this, the system will check if every field is correctly filled out.
Then it will query the database to see if the username already exists and will display an error and ask for a different username. Otherwise it will submit the request and display a success message.
Sign in page
This page will be for the agents to sign-in to access all the chat related resources. It will also include “Forgot Password” link in case the user forgot their passwords.
Form elements:
Username textbox – the user can input alphabetical characters or numeric, and there will be a constraint on how many characters the user can provide. (Maximum 25 characters)
Password textbox – the user can input alphabetical characters or numeric, and there will be a constraint on how many characters the textbox can contain. (Maximum 25 characters)
Sign-in button – when the user clicks this button the system will check the database to see if the inputs are existed and matched. Then after verified the correct information, it will redirect users to their profile page.
Forgot password link – when the user clicks this button, they will be redirected to the “Forgot password page.”
Forgot Password page
This page is for the agent to utilize should they forget their password or want to reset it. Upon the submission of the form, an email will be sent to the agent’s email to reset the password.
Form elements:
This page will display only a textbox where they can write their usernames or email, and then a submit button to get their current password through their email.
Page 20
Username textbox - the user can input alphabetical characters or numeric, and there will be a constraint on how many characters the user can provide. (Maximum 25 characters)
Email textbox – the user can input alphabetical characters, and there will be a constraint on how many characters the textbox can contain. And check if it is a valid email format.
Submit button – when the user clicks this button, it will check the database to see if that username exists. If it does not exist, there will be an error message. If it does exist, the system will send an email to the user’s email.
Hotline Search page
This page will display a textbox for users to enter their region and be able to search for the hotlines available in their areas.
Form elements:
Region search textbox – the user can input their city to find out the hotline numbers for the city. (Maximum 30 characters)
Search button – When the user clicked search, the system will take whatever the user's input in the “Region search textbox” and compare to the preset list of hotlines to find the number that belongs to that specific regions.
Hotlines Table – This table will display every single hotline and region it serves along with the contact number, so the user can click on it to call or send a text message. After users click search to filter the specific area, the table will only show hotlines belong to that region.
Chat Now page
This page will first display a form asking for user’s name and the issues they are facing. All the fields are optional and if the user does not provide any issues, the connected agent will analyze the issue and may reconnect with someone more experienced with the scenario.
Form elements:
Agent Name textbox – the user can input alphabetical characters and there will be a constraint on how many characters the textbox can contain (max 25 characters)
Name textbox – the user can input alphabetical characters, and there will be a constraint on how many characters the textbox can contain. (Maximum 25 characters)
Issue dropdown – the user can select an issue category from the available list. Language dropdown – the user can select a preferred language of communication Anonymous button – When the user clicks this button, the user will be connected and placed in
queue with an “anonymous” flag. No form details would be provided to the agents to view. Connect button – When the user clicks this button, the user will be connected and placed in queue
with their screen name. All form details would be provided to the agents to view.
Page 21
Chat Page
This page will be for when the chat session has started and will be identical to the agent and the user
Voice call button – When the user clicks this button, it allows the user and the agent to have a voice call. During the voice call, there are “Mute” button and “Hang up button” as well.
Mute button – When user/agent clicks this, the other end will not be able to hear the user. Hang up button – When user/agent clicks this, it will disconnect both ends from the voice call. Video call button – When the user clicks this button, it allows the user and the agent to have a
voice and video call. During the video call, there are “Mute,” “Hang up” and “Off camera” buttons as well.
Mute button – When user/agent clicks this, the other end will not be able to hear the other person.
Off Camera button – When user/agent clicks this, the other end will not be able to see the other person.
Hang up button – When user/agent clicks this, it will disconnect both ends from the video call.
Admin Profile Page
This page appeared when the admin successfully logged in. The default page will have the admin’s profile details which are: name, age, date of birth, role. This page will also have some links to other pages which are as follows: “Change password page,” “Agent request page”. Lastly, this page will have a “Modify information button,” “Submit changes” and “Log out button.”
Agent request link – when admin clicks this link, the system will redirect admin to “Agent request page.”
Modify information button – when admin clicks this button, the admin can change all the fields of his/her personal information except the “ROLE.”
Submit changes button – when admin clicks this, the changed of his/her personal information will be updated in the database.
Log out button – when admin clicks this button, it will sign off the user.
Agent Request Page
This page displays a table of requests and the name of the people who requested. The admin can see the full application form after click on the “view request button.” The admin can also Approve or Decline the request as well.
Refresh button – When the admin clicks this button, it will reload the page to see if there are any new request(s).
Display request button – When the admin clicks this button, it will display the request form which people filled out during the sign-up process.
Approve request button – when admin clicks this button, the system will save the person as well as his/her information into the database, and the role will be AGENT. Also, the agents will receive an email saying their requests were approved.
Page 22
Decline button – when admin clicks this button, the system will send an email to the person that the administrator declined the request. And then the application will be deleted.
Agent Profile page
This page appeared when the agent successfully logged in. The default page will have the agent’s profile details which are: Name, age, date of birth, role. This page will also have some links to other pages such as: “Change password page,” “Chat Available page,” “Activity log page.” Lastly, this page will have “Modify information button,” “Submit changes” and “Log out button.”
Change password link – when the agent clicks this button, it will redirect to “Change password page.”
Chat Available link – when the agent clicks this button; it will redirect to “Chat Available page.” Modify information button – when the agent clicks this button, the agent can change every field
with personal information except the “Role.” Submit changes button – when the agent clicks this, the updated of his/her personal information
will be updated to the database. Log out button – when the agent clicks this button, it will sign off the agent.
Chat Available page
This page displays all the people currently online, so the agent can connect and start to have a conversation with them. In the form of a table, the agent can see the name as well as the reason of the person. On the other hand, if some of the users decided to stay anonymous, they will be marked as anonymous.
Chat button – when the agent clicks this button, it will connect the agent and the other user to start a conversation.
Activity Log page
This page shows the agent his/her activities such as chat with another user, change of information, etc. as well as the time that event occurred.
Change password page
This page will have three textboxes where they can write their current password, new password, and a submit button.
Current password textbox - the user can input alphabetical characters or numeric, and there will be a constraint on the number of characters in the textbox. (Maximum 25 characters)
New password textbox - the user can input alphabetical characters or numeric, and there will be a constraint on how many characters the user can provide. (Maximum 25 characters)
Verify new password textbox - the user can input alphabetical characters or numeric, and there will be a constraint on how many characters the textbox can contain. (Maximum 25 characters)
Page 23
Submit button – when the user clicks this, the system will check the database to see if the current password match with the “current password textbox.” If it doesn’t match the error will be displayed. If it matched, the system would continue to compare if the “new password textbox” match with the “Verify new password textbox.” If it doesn’t match, an error will be displayed and if it matched. The system will update new password to the database and present the success message.
User Give Feedback Page
This page will allow the users to give a feedback about the chat session after they are finished with the chat session. All fields are optional
Radio Button – Options: Yes, No. The radio button would describe if the user felt that agent helped the user or not.
Feedback – The user can input alphanumeric characters with a constraint on the maximum number. (Maximum 250 characters)
Agent Post Session Page
This page will come up after a session on the agent’s side and will be used to record details about the chat session and the reason for contact
Radio Button – Options: Yes, No. The radio button would describe if the agent felt that they helped the user or not.
Reason for contact – This select box would contain the categories applicable for the reason of contact.
Page 24
2.03 – Stakeholders and UsersThe application’s main goal is to have human interaction therefore making anyone who use it a user. The stakeholders would consist of: the development team, the agents, the admins, sponsors, and the people who are utilizing the application.
Page 25
2.04 – Business OpportunityToday, there is more of a need for organizations and businesses that want to find a solution to the ongoing problem of mental illness and suicide. This application will benefit those who need to talk to someone about their mental illness problem and/or need help in battling the suicidal thoughts that are occurring in their mind convincing them to take their own life. As with all problems, they all have a source and this application will also benefit those who would like to talk about the thoughts that make them feel uneasy which impact their daily life.
This application will also benefit other businesses by advertising the application so that more people seek help and find comfort in knowing that they are not alone in their time of need.
Page 26
2.05 – Risks Risk Response
Small amount of awareness of the service resulting in lack of users
Work with local organizations supporting the same cause to raise awareness of the service.
Group members dropping out resulting in more work for existing members therefore not being able to complete the project within the given time
The group members should share the same understanding about the tasks and the project and keep each other updated on the work they’re doing, so the other group members can finish the document.
Difficulty meeting outside of class resulting in poor communication and quality of the final product
Group members will provide their available hours and we will create a meeting based on those.
If there is no suitable time for everybody, we will use Discord Voice and Video calls for the meetings.
Group member(s) not being able to complete the assigned task due to a force-major situation
The affected group member should notify everybody in the group and the professor, so the group can reschedule and reassign the tasks and professor can keep that in mind as well.
Not completing tasks by the deadline resulting in delayed deployment of the product within the given time
The affected group member should let everybody know about the delay. The group members who have the capacity to cover up, will help to finish the task on time.
Unequal participation leading to overwhelmed state of the overworking group members and poor quality of the product
During the meeting, the group will separate the tasks equally between the members
Should a person feel overwhelmed and having too much on the plate, the member should notify the group, so the group separates the tasks differently
Supporting multiple platforms The group came up with two ways of tackling the issue: Try using the native technologies to support all
the platforms If the first method is found undoable, use the
hybrid mode for mobile platforms, so all the platforms utilize the same technology and algorithms
2.06 – Constraints Due to time limitation, our application will be available in English only. The users will need to have internet connection to perform Live chat, Voice Call or Video Call, otherwise they will have to communicate
Page 27
through the hotlines we provided in the Hotline Search page. Since we do not persist the contents of the conversation, all contents will be cleared out once the talk session finishes.
Page 28
2.07 – Operating EnvironmentThe application will perform on a Linux or Windows OS, which has Tomcat, relational database such as MySQL or similar, and the Java Runtime Environment. Users can access the web application on any browser along with from the Android or iOS app stores.
The application will be tested on a local XAMPP server that supports tomcat and MySQL, and on emulators and physical devices for mobile platform. The application may be deployed on cloud servers such as Heroku, Amazon AWS, Microsoft Azure, IBM Cloud or a local server running on a Virtual-Machine.
Page 29
2.08 – Operational, Performance & Security RequirementsThe application will be available on every widely-used platform: web, iOS, Android. Most of the features of the application will require the internet connection. However, if the user doesn’t have an internet connection on the device, they will be able to access the Hotline Search page and contact the services working offline as well as review the general information about the issue.
Since the user privacy is a major concern of the application, we will not store any private user data except generic information such as the category of the issue and feedback (if the user provided it), the activity log (will include the agent name, type of communication and time) in addition to user and admin accounts. To keep the data safe, only the admin will have the access to the database as well as the visual representation of the activity logs and agent accounts.
All information transfer between the client and server will be done through SSL encryption to ensure the integrity of the data. The passwords will also be enforced with a strict password policy and stored as a hashed string in the database. Should the agent or admin forget the password, they will have to fill out the form. If the information is correct they will get emailed an expiring link to reset the password. If it is the admin who forgot the password, they will have to answer the security question in order to reset it.
The group will thoroughly test the application to ensure the performance and reliability of the application on every supported platform. We will also conduct the stress-test of the server to ensure the reliable communication between the agent and the user. We will test the application thoroughly to ensure all test use cases have been passed and any bugs/glitches have been dealt with. In addition to testing in the test environment, the application will also be tested in the production environment to ensure the application passes all the test use cases with production data. We will also release updates and upgrade our software to ensure the application runs with the most efficiency and reliability.
Page 30
3 – Implementation Schedule for PRJ566 3.01 – Schedule (Make sure to include names, dependencies, start and finish dates and hours)
Page 49
5. – Project/System Design 5.01 – Business Rules
Business Rule
Number
Business Rule Description Related UC
BR01 A person must fill out the request form to become an agent. This request must be approved by an admin.
UC04
BR02 An agent can communicate with only one user at a time. UC01, UC17BR03 All requested information from the user is optional. UC01BR04 Any chat related data gets deleted if user disconnects or chat
session ends.UC01
BR05 The password must be between 8 and 25 characters long with at least 1 uppercase letter, 1 lowercase, 1 number and 1 special character.
UC07, UC08, UC20
BR06 Username can contain only alphabetical characters and no more than 25 characters.
UC07
BR07 Date of birth should be formatted YYYY-MM-DDBR08 Each education text field can contain no more than 100
alphabetical characters including periods, hyphens, and apostrophes.
UC19
BR09 Field of study can be no more than 50 alphabetical characters.
UC19
BR10 Self-introduction can contain no more than 300 characters.BR11 Email must be a valid email address format and be no longer
than 25 characters.UC07, UC20
BR12 Certification can be no more than 100 alphabetical characters.
UC15
BR13 Psychological counselling experience can be no more than 100 alphabetical characters.
BR14 Region search can be no more than 30 characters. UC09BR15 Name can be no more than 25 alphabetical characters. UC01,
UC18,UC24BR16 Age of Agent must be greater or equal to 18. UC01BR17 A request must be submitted by the agent for name change
which has to be approved by an admin.UC24
BR19 The admin/agent has to setup security questions and answers for password recovery.
BR20 Volunteers can only do 4 hour shifts per day.BR21 All connections made to the website must be through HTTPS. UC01BR22 All cookies created must have “secure” and “httponly” flags
set to true.BR23 All web forms must implement CSRF protection tokens. UC01, UC08,
UC18, UC19, UC20
BR24 Website must be pen-tested monthly and before deployment of any new webpages.
Page 50
BR25 Contents from table ‘Temp Agent’ must be deleted every 5 days to remove obsolete applications.
BR26 All web Video/Audio calls must only be available on Google Chrome, Firefox, and Opera
BR27 Security answers can be no more than 100 characters UC08 BR28 Security questions must be picked from the following:
What is your favorite book? What street did you grow up on? What is your mother’s maiden name? What was the name of your first pet? What was the first company that you worked for? Where did you meet your spouse? What high school did you attend? What is your favourite food? Where were you born? Where is your favorite place to vacation? Who is your favorite actor, musician, or artist? What was your first car? What is your favorite web browser? What is your favorite movie? What is the name of your first grade teacher?
UC08
BR29 Issue specific category must include the following: Bullying Traumatic experience Mental disorders Stress Drug addiction Relationship issues Loneliness Fear Regret Unemployment
UC01
BR30 Institution names can be no more than 100 characters UC15, UC16, UC19
BR31 There can be only 5 incorrect login attempts. After that the account is locked and employee needs to request to reset the password
UC05
BR32 Blank END_DATE field in Experience table represents that the person is still working at the occupation
Page 52
5.03 – Use Case SpecificationsUC01: Communication Session (User)Identifier: UC01
Brief Description: This use case enables the user to start a talk session with an agent through either instant chat or live voice/video call.
Section 1: Business Rule(s):
BR02 BR03 BR04 BR15 BR16 BR21 BR23
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow: Start Chat (User)
Preconditions:
The user is on the Chat Now page and the system is ready.
Step # Actor: User System Data Used
1 Clicks on Chat Now button
Displays a pre-session form and prompts to continue
2 Fills out the whole form and clicks Connect button (*1)
Succeeds in sanitizing submitted fields, connects through specified category and/or agent name (agent name takes priority), opens the Chat Window, and prompts for a message to send
Name,
Category,
Agent name
3 Types in a message and clicks Send button (*2)
Succeeds in sanitizing message and sends message to agent
Message
4 Repeats above until Exit button is clicked or Chat window is closed
5 Clicks on Exit button Closes the connection and displays feedback form
Page 53
Step # Actor: User System Data Used
6 Fill’s out feedback form
Sanitizes fields, and persists them to the database
Feedback
Alternative Flow
Alternative Flow Description
1 Connect user to the first agent available Connects the user to the first available agent if one of the following applies:
If the name and category be empty
If the agent is busy If the Anonymous
Connect button is clicked
2 Start a Video/Audio chat session with agent Start a live video/audio chat session should the actor choose to click on the “Video” or “Audio” Call button
3 User provide feedbacks After the session, user can fill out the form to give us feedback on their experiences.
Section 3: Classes/Attributes identified:
Class Attribute of class
Agent Username, category, status
Feedback Feedback_ID, feedback, dateAdded
Section 4: Exceptions identified:
Page 54
UC02:
Communication Session (Agent)Identifier: UC02
Brief Description: This use case enables the agent to start a talk session with a user through either instant chat or live voice/video call.
Section 1: Business Rule(s):
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow: Start Chat (Agent)
Preconditions:
The agent is logged in and the system is ready.
Step # Actor: Agent System Data Used
1 Automatically connect agent to user after user chose to connect to an agent. Update agent status in table to ‘BUSY’
Agent name
2 Types in a message and clicks Send button (*2)
Succeeds in sanitizing message and sends message to agent
Message
3 Repeats above until Exit button is clicked or Chat window is closed
4 Clicks on Exit button or Window is closed
Closes the connection and Chat Window if not closed already. Update agent status in table to ‘AVAILABLE’
Alternative Flow
Alternative Flow Description
1 Agent summarize session. After finished the conversation
Exception How it will be handled
Data sanitization failure Display message on why sanitization was failed for the data
Connection failure Display message on why connection to agent was failed
Message sent failure Display message on message failed to send
Page 55
with the user, agent will fill out a statistic form which summarize the issues.
2 Start a Video/Audio chat session with user
Start a live video/audio chat session should the actor choose to click on the “Video” or “Audio” Call button
Section 3: Classes/Attributes identified:
Class Attribute of class
Agent Username, category, status
Statistic StatisticID, categoryName, dateAdded
Section 4: Exceptions identified:
Exception How it will be handled
Data sanitization failure
Display message on why sanitization was failed for the data
Connection failure Display message on why connection to agent was failed
Message sent failure Display message on message failed to send
Page 56
UC03: Request Becoming Agent
Identifier: UC03
Brief Description: This use case enables people who want to become an agent to submit their applications.
Section 1: Business Rule(s):
BR01
BR05
BR06
BR07
BR08
BR09
BR10
BR11
BR12
BR13
BR15
BR16
BR17
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow: Request Becoming Agent
Preconditions:
The candidate is on the Sign-Up page.
The system is up and running.
Step # Actor: User System Data Used
1 Clicks "Sign up" button
Prompt the Sign-up screen
Page 57
2 Fill out all the information that required on the form and submit it
Validate all inputs from user and save the request to database.
Username, firstName, lastName, dateOfBirth, password, email, education, certificate, category, preferredLanguage, role, phoneNumber
Alternative Flow
Alternative Flow Description
1 Incorrect input such as (same username, empty fields)
System will display error message and ask the user to reenter that field(s) again.
Section 3: Classes/Attributes identified:
Class Attribute of class
Employees Username, firstName, lastName, dateOfBirth, password, email, education, certificate, category, preferredLanguage, role, phoneNumber
Section 4: Exceptions identified:
Exception How it will be handled
Data update failure Display message on why update was failed.
Form Submission failure
Display message on application failed to send
Page 58
UC04: Review the Requests
Use Case Specification for: Review the Requests
Identifier: UC04
Brief Description: This use case enables the admin to review the agent applications.
Section 1: Business Rule(s):
BR01
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow
Preconditions:
The admin is on the profile page and the system is ready.
Step # Actor: Admin System Data Used
1 Clicks on “Agent Requests” button Displays the table of the names of applicants along with the “View Request” button
Name
2 Clicks the “View Request” button for any applicant
Displays the information about the applicant that applicant provided when filling out the form
3 Reviews the information and clicks the “Approve request” button (*1)
Saves the applicant’s information in the Employees table and assigns the AGENT role. Sends an acceptance email to the new agent. Deletes the entry from the VerifiedTempAgent table and displays the confirmation message
Email, Role
4 Clicks the “OK” button in the confirmation message
Displays the list of the remaining requests
Repeat the steps 2-4 until all the required requests are approved
5 Clicks on “Profile Page” button Displays the Profile Page
Alternative Flow
Alternative Flow Description
1 The admin clicks on the “Decline request” button
System deletes the applicant’s information from the VerifiedTempAgent and sends the rejection email to the applicant.
Page 59
Section 3: Classes/Attributes identified:
Class Attribute of class
Agent Email, Role
TempAgent First name, Last name, Email
Section 4: Exceptions identified:
Exception How it will be handled
The request was already reviewed
Message stating that is displayed
Page 60
UC05: Sign in
Use Case Specification for: Sign in
Identifier: UC05
Brief Description: This use case enables an employee to sign into the application.
Section 1: Business Rule(s):
BR31
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow:
Preconditions:
The employee is on the Home page and the system is ready
Step # Actor: Employee System Data Used
1 Clicks the “Sign in” button Prompts for username and password
2 Enters the username and password, clicks on the “Sign in” button
Validates the username and password. Displays the profile page suitable for the employee role (*1). Updates employee status to ‘ONLINE’ in table
Username, password, role
Alternative Flow
Alternative Flow Description
1 The credential validation fails System displays an error message saying that username/password are incorrect. Prompts for credentials again.
Section 3: Classes/Attributes identified:
Class Attribute of class
Employee Username, password, role
Page 61
Section 4: Exceptions identified:
Exception How it will be handled
Too many login attempts Blocks the account and prompts to go through password reset password (Forgot Password action)
Page 62
UC06: Sign Out
Use Case Specification for: Sign out
Identifier: UC06
Brief Description: This use case enables an employee to sign out of the application.
Section 1: Business Rule(s):
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow:
Preconditions:
The employee is signed in.
Step # Actor: Employee System Data Used
1 Clicks the “Sign out” button Prompts for confirmation to sign out
2 Clicks the “Confirm” button(*1) Sign out the current user. Updates employee status to OFFFLINE in database
role
Alternative Flow
Alternative Flow Description
1 Clicks the “Cancel” button System keep the user remain sign in.
Section 3: Classes/Attributes identified:
Class Attribute of class
Employee role
Section 4: Exceptions identified:
Page 64
UC07: Reset PasswordIdentifier: UC07
Brief Description:
This use case enables the agent or admin to reset their password
Section 1: Business Rule(s):
BR05 BR06 BR11
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow:
Preconditions:
The agent/admin is in the log in page.
Step # Actor: Agent/Admin System Data Used
1 Click “Reset Password” button
Display the reset password request form
2 Types in the username (*1) or the email address (*2), and click “submit” button
Succeeds in validating and matching the username or email address in database (*3), generate (hashes the username with a unique generated salt) and email the reset link to the user’s email address
Username
Email address
3 Click the reset link Succeeds in validating the link and displays the set new password form (*4)
New password
4 Types in the new password, confirm new password, and presses submit
Succeeds in validating and matching the passwords, hashes the password with a unique generated salt, updates the database with the new password and salt (*5)
password
Alternative Flow
Page 65
Alternative Flow Description
1 System fails to validate the username displays an error message
This is for when the user enters the more than 25 characters in username filed
2 System fails to validate email address and displays an error message
This is for when the email address is not in a valid email format
3 System fails to validate the username or email address and displays an error message
This is for when the user enters does not exists in the database
4 System fails to validate the link and displays an error message
This is for when the link is used
5 System fails to validate or match the two passwords and displays an error message
This is for when the password doesn’t match the password policy or the new password field didn’t match the confirm password field
Section 3: Classes/Attributes identified:
Class Attribute of class
Employees Username, email address, password
Section 4: Exceptions identified:
Exception How it will be handled
Internal server error Display user-friendly 500 page
Page 66
UC08: Change PasswordIdentifier: UC08
Brief Description:
This use case enables the agent or admin to change their password
Section 1: Business Rule(s):
BR05 BR23 BR27 BR28
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow:
Preconditions:
The agent/admin is logged on to the web portal and is on the Change Password page and the system is displaying the security question and textbox for the security answer
Step # Actor: Agent/Admin System Data Used
1 Types in the security answer and presses submit
Succeeds in validating the answer and displays the password change form (*1)
Security question
Security answer
New password
2 Types in the new password, confirm new password, and presses submit
Succeeds in validating and matching the passwords, hashes the password with a unique generated salt, updates the database with the new password and salt (*2)
Password
Alternative Flow
Alternative Flow Description
1 System fails to validate the security answer with the question and displays an error message
This is for when the user enters the wrong security answer
Page 67
Alternative Flow Description
2 System fails to validate or match the two passwords and displays an error message
This is for when the password doesn’t match the password policy or the new password field didn’t match the confirm password field
Section 3: Classes/Attributes identified:
Class Attribute of class
Employees Security question, security answer, password
Section 4: Exceptions identified:
Exception How it will be handled
Internal server error Display user-friendly 500 page
Page 68
UC09: Contact hotlineIdentifier: UC09
Brief Description:
This use case enables the User to search, optionally by region, and contact a Suicide prevention hotline.
Section 1: Business Rule(s):
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow:
Preconditions:
The User is on the application and the system is ready
Step # Actor: User System Data Used
1 Clicks on the Contact Hotline tab from the menu bar
Displays a modal, shows all available hotlines and formatted numbers to allow calls directly, and displays a textbox to type in region
Hotline Name
Hotline Description
Hotline Phone Number
Hotline Region
(*1)
2 Clicks on a hotline number
Open’s the device’s local phone calling app.
Hotline Phone Number
Alternative Flow
Alternative Flow Description
1 User enters the region and the system filters through all the hotlines showing those that match the region
This is for when the user wants to filter through all the hotlines with a specific region
Section 3: Classes/Attributes identified:
Class Attribute of class
Hotline Name, Description, Phone Number, Region
Page 69
Section 4: Exceptions identified:
Exception How it will be handled
Internal Server Error Display user-friendly 500 error page
Page 70
UC10: Review Activity Log Identifier: UC10
Brief Description: This use case enables the admins to see the activity logs of different agents.
Section 1: Business Rule(s):
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow: Review Activity logs
Preconditions:
The admin is logged in and on an employee’s profile page
The System is up and running.
Step # Actor: Admin System Data Used
1 Click on "View Activity Log" button
Prompt Activity Log Page Username
2 Click on a specific agent's name to show activity log
Take the activity log that belongs to this specific user and display it.
Activity log
Alternative Flow
Alternative Flow Description
1 View agent’s activity logs View the agent's activity log to see their actions such as: Login, logout, modification information, or have a chat with users with a timeline.
Section 3: Classes/Attributes identified:
Class Attribute of class
Employees Username, firstName, lastName, dateOfBirth, email, education, certificate, category, preferredLanguage, role, phoneNumber
Activity Username, timeStart, timeEnd
Section 4: Exceptions identified:
Exception How it will be handled
Unable to display activity Display message on that failure.
Page 72
UC11: Review Signed On ProfileUse Case Specification for: Review the Profiles
Identifier: UC11
Brief Description: This use case enables the agents to review the profile of themselves.
Section 1: Business Rule(s):
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow: Review Profile
Preconditions:
The admin is logged in.
The System is up and running.
Step # Actor: Admin System Data Used
1 Click on "View My Profile" button
Prompt Profile Page Username
2 Take all the information about that agent from the database and then display it.
Username, firstName, lastName, dateOfBirth, email, education, certificate, category, preferredLanguage, role, phoneNumber
Alternative Flow
Alternative Flow Description
1 View agent’s profile View the agent's profile and allows them to change ONLY educations and certificate.
Section 3: Classes/Attributes identified:
Class Attribute of class
Employees Username, firstName, lastName, dateOfBirth, email, education, certificate, category, preferredLanguage, role, phoneNumber
Page 73
Section 4: Exceptions identified:
Exception How it will be handled
Unable to display form
Display message on that failure.
Page 74
UC12: View StatisticsUse Case Specification for: View Statistics
Identifier: UC12
Brief Description: This use case enables anyone to view the statistics and extra information about mental health and suicide.
Section 1: Business Rule(s):
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow:
Preconditions:
The user is on the Home Page and the system is ready.
Step # Actor: Anyone System Data Used
1 Clicks on the “View Statistics” button
Displays the overall information about issues as well as a graph containing the date filter on top, the issue categories on the x-axis, and the count of the chats regarding the issue on y-axis.
Issue category, chat date (not including the chat count since it is computed at run time based on filter)
2 Filters by the dates Recalculates the graph values based on the filter, displays new graph
Section 3: Classes/Attributes identified:
Class Attribute of class
Statistics Issue category, chat date
Section 4: Exceptions identified:
Exception How it will be handled
No data available “No data available” message instead of the graph area
Page 75
UC13: View FeedbackUse Case Specification for: View Feedback
Identifier: UC13
Brief Description: This use case enables the admin to view the feedback users leave after the chat session ends
Section 1: Business Rule(s):
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow: Name of Scenario
Preconditions: The admin is on the Profile Page and the system is ready
Step # Actor: Admin System Data Used
1 Clicks on View Feedback button
Displays the table containing feedback message, agent username and the date of the chat
Agent username, message, chat date
2 Clicks on the column to sort the table
Displays sorted result
3 Inputs value in the search box to refine results
Displays the filtered result (*1)
4 Clicks on Profile Page button
Displays Profile page
Section 3: Classes/Attributes identified:
Class Attribute of class
Feedback Agent username, message, chat date
Section 4: Exceptions identified:
Exception How it will be handled
No data available System displays the message “No data available”
Page 76
UC14: Review Other Employee ProfileIdentifier: UC14
Brief Description: This use case enables the admin to review the profile of the agents.
Section 1: Business Rule(s):
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow: Review ProfilePreconditions:The admin logged in.The System is up and running.
Step # Actor: Admin System Data Used1 Click on "All
Employees" button
Display table of all employees Username, firstName, lastName, UserID
2 Click on a specific agent
Take all the information about that agent from the database and then display it.
Username, firstName, lastName, dateOfBirth, email, education, certificate, category, preferredLanguage, role, phoneNumber, timeStarted, timeEnded
Alternative FlowAlternative Flow Description
1 View a specific agent’s profile Views all the information that the agent provided while signing up as well as the activity log. It also allows admin to change any information as the agents requested them to.
Section 3: Classes/Attributes identified:Class Attribute of classEmployees Username, firstName, lastName, dateOfBirth, email,
education, certificate, category, preferredLanguage, role,
Page 77
phoneNumberActivity Username, timeStarted, timeEnded
Section 4: Exceptions identified:Exception How it will be handledUnable to display all employees
Display message on that failure.
Unable to display form
Display message on that failure.
Page 78
UC15: Add CertificationIdentifier: UC15
Brief Description:
This use case enables the agent to add new certifications to their profile
Section 1: Business Rule(s):
BR12 BR23 BR30
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow:
Preconditions:
The agent is on the Profile Page and the system is ready.
Step # Actor: User System Data Used1 Clicks on Add
Certification button
Displays the add certification form and prompts to continue
2 Types in the certification and institution name
Displays the added certification on the page
CertificationInstitution Name
3 Repeat steps #1 and #2 until certifications have been added
4 Clicks the submit button
Succeeds in validating all certifications added, updates the database, and sends a notification email to all admins (*1)
Certifications
Alternative Flow
Page 79
Alternative Flow Description1 Fails in validating the certifications
and displays an error messageThis is for when the certifications added by the agent fails the validation rules
Section 3: Classes/Attributes identified:
Class Attribute of class
Certification Certification, Institution Name
Section 4: Exceptions identified:
Exception How it will be handled
Internal Server Error
Display user-friendly 500 error page
Page 80
UC16: Add ExperienceIdentifier: UC16
Brief Description:
This use case enables the agent to add new experiences to their profile
Section 1: Business Rule(s):
BR13 BR23 BR30
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow:
Preconditions:
The agent is on the Profile Page and the system is ready.
Step # Actor: User System Data Used1 Clicks on Add
Experience button
Displays the add experience form and prompts to continue
2 Types in the experience, organization name, and start/end dates
Displays the added experience on the page
ExperienceStart DateEnd DateOrganization Name
3 Repeat steps #1 and #2 until experiences have been added
4 Clicks the submit button
Succeeds in validating all experiences added, updates the database, and sends a notification email to all admins (*1)
ExperienceStart DateEnd DateOrganization Name
Alternative Flow
Page 81
Alternative Flow Description1 Fails in validating the experiences
and displays an error messageThis is for when the experiences added by the agent fails the validation rules
Section 3: Classes/Attributes identified:
Class Attribute of class
Experience Organization, date range, experience
Section 4: Exceptions identified:
Exception How it will be handled
Internal Server Error
Display user-friendly 500 error page
Page 82
UC17: Agent ReconnectionUse Case Specification for: Agent Reconnection
Identifier: UC17
Brief Description: This use case enables the agent to reconnect the user to another agent if the first agent thinks his skills and knowledge are not enough to assist the user properly.
Section 1: Business Rule(s):
BR01
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow:
Preconditions:
The agent is in an active Chat with the user and the system is ready.
Step # Actor: Agent System Data Used
1 Clicks on the “Reconnect” button Displays a dialog listing every agent currently available
Agent status
2 Types the search criteria (agent username or the issue category). Clicks “Search” button
Displays the agents that are currently available and satisfy the search requirement
Agent category, agent status
3 Clicks on the agent to reconnect the user to (*1)
Ends the current chat session both for current agent and a user. Connects user to a new agent
Alternative Flow
Alternative Flow Description
1 The selected agent status changed, and he is not available
Prompts the current agent to make a different selection
Section 3: Classes/Attributes identified:
Class Attribute of class
Agent Category, Status
Page 83
Section 4: Exceptions identified:
Exception How it will be handled
Connection error Displays an error message, ends the session
Page 84
UC18: Admin/Agent Name ChangeIdentifier: UC18
Brief Description:
This use case enables the admin to change the name of the of the current employee
Section 1: Business Rule(s):
BR23 BR15
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow:
Preconditions:
The admin is on the Profile page and the system is ready.
Step # Actor: Admin System Data Used1 Clicks on Name
Change buttonDisplays the name change form and prompts to continue
2 Types in the new name and clicks submit
Succeeds in validating the form, updates the database, and shows success message (*1)
First NameLast Name
Alternative Flow
Alternative Flow Description1 Fails in validating the name and
displays an error messageThis is for when the name fields fail the validation rules
Section 3: Classes/Attributes identified:
Class Attribute of class
Employee First Name, Last Name
Page 85
Section 4: Exceptions identified:
Exception How it will be handled
Internal Server Error
Display user-friendly 500 error page
Page 86
UC19: Add EducationIdentifier: UC19
Brief Description:
This use case enables the agent to add his/her education.
Section 1: Business Rule(s):
BR08 BR09 BR23 BR30
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow:
Preconditions:
The agent is login, in the Agent Profile page and the system is ready.
Step # Actor: Agent/Admin
System Data Used
1 Clicks on Add Education button
Displays the add education form and prompts to continue
2 Types in the Education institution name(*1), program name, and choose the start/end dates from the selection box (*2), field of study (*3), a summary text field (*4)
Displays the added experience on the page
Education Start DateEnd Dateinstitution Namefield of studysummaryprogram name
3 Repeat steps #1 and #2 until experiences have been added
Page 87
Step # Actor: Agent/Admin
System Data Used
4 Clicks the submit button
Succeeds in validating all field added, updates the database, and sends a notification email to all admins
Education Start DateEnd Dateinstitution Nameprogram name
Alternative Flow
Alternative Flow Description1 System fails to validate the institution
name and displays an error messageThis is for when the user enters more than 100 characters in the institution name
2 System fails to validate the start/end dates displays an error message
This is for when the user enters the end date is before the start date in the dates filed
3 System fails to validate the field of study and displays an error message
This is for when the user enters more than 50 characters in the field of study
4 System fails to validate the summary text field and displays an error message
This is for when the user enters more than 100 characters in the summary text filed
Section 3: Classes/Attributes identified:
Class Attribute of class
Education Start Date, End Date, institution Name, program name, summary, field of study
Section 4: Exceptions identified:
Exception How it will be handled
Page 88
Internal server error Display user-friendly 500 page
UC20: Change EmailIdentifier: UC20
Brief Description:
This use case enables the agent or admin to change their email.
Section 1: Business Rule(s):
BR05 BR11 BR23
Section 2: Main Scenario with Alternative Flows (HD):
Main Flow:
Preconditions:
The agent/admin is login, in the Profile page and the system is ready.
Step # Actor: Agent/Admin
System Data Used
1 Click “Change Email” button
Display the password enter page and request the user to enter password
Usernamepassword
2 Types in the password and submit
Succeeds in validating password database (*1), display the email change form
3 Types in the new email (*2), confirm new email (*3), and submit
Succeeds in validating and matching the new email, updates the database with the new email
Alternative Flow
Page 89
Alternative Flow Description1 System fails to validate the
username and password, displays an error message
This is for when the user enters the unmatched username and password
2 System fails to validate email address and displays an error message
This is for when the email address is not in a valid email format
3 System fails to validate or match the two emails and displays an error message
This is for when the email doesn’t match the email policy or the new email field didn’t match the confirm email field
Section 3: Classes/Attributes identified:
Class Attribute of class
Employees Username, email address, password
Section 4: Exceptions identified:
Exception How it will be handled
Internal server error Display user-friendly 500 page
Page 105
Web – Hotlines Page
Web – Detailed Profile PageWhen Admin is Reviewing the other Employee’s profile, it will look the same but without editing abilities
Page 109
7. – Database7.01 – Scripts to create tablesCREATE TABLE IF NOT EXISTS `ActivityLog` (
`USERNAME` varchar(25) NOT NULL,
`TIME_STARTED` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`TIME_ENDED` timestamp NOT NULL default '0000-00-00 00:00:00',
FOREIGN KEY (`USERNAME`) REFERENCES `Employee` (`USERNAME`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `AgentCategory` (
`USERNAME` varchar(25) NOT NULL,
`CATEGORY_ID` int(11) NOT NULL,
FOREIGN KEY (`CATEGORY_ID`) REFERENCES `Category` (`ID`),
FOREIGN KEY (`USERNAME`) REFERENCES `Employee` (`USERNAME`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `Category` (
`ID` int(11) NOT NULL auto_increment,
`CATEGORY_DESCRIPTION` varchar(40) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `Certificate` (
`USERNAME` varchar(25) NOT NULL,
`CERTIFICATION` varchar(100) NOT NULL,
`INSTITUTION` varchar(100) NOT NULL,
FOREIGN KEY (`USERNAME`) REFERENCES `Employee` (`USERNAME`)
Page 110
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `Education` (
`USERNAME` varchar(25) NOT NULL,
`FIELD_OF_STUDY` varchar(50) NOT NULL,
`INSTITUTION` varchar(100) NOT NULL,
FOREIGN KEY (`USERNAME`) REFERENCES `Employee` (`USERNAME`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `Employee` (
`USERNAME` varchar(25) NOT NULL,
`PASSWORD` varchar(32) NOT NULL,
`SALT` varchar(8) NOT NULL,
`FIRST_NAME` varchar(25) NOT NULL,
`LAST_NAME` varchar(25) NOT NULL,
`ROLE` text NOT NULL,
`SECURITY_QUESTION_ID` int(11) NOT NULL,
`SECURITY_ANSWER` varchar(100) NOT NULL,
`DATE_OF_BIRTH` date NOT NULL,
`PREFERRED_LANGUAGE` varchar(2) NOT NULL,
`EMAIL` varchar(75) NOT NULL,
`STATUS` varchar(10) NOT NULL DEFAULT ‘OFFLINE’,
PRIMARY KEY (`USERNAME`),
FOREIGN KEY (`SECURITY_QUESTION_ID`) REFERENCES `SecurityQuestion` (`SECURITY_QUESTION_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `Experience` (
Page 111
`USERNAME` varchar(25) NOT NULL,
`EXPERIENCE_DESCRIPTION` varchar(100) NOT NULL,
`INSTITUTION` varchar(100) NOT NULL,
`START_DATE` date NOT NULL,
`END_DATE` date,
FOREIGN KEY (`USERNAME`) REFERENCES `Employee` (`USERNAME`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `Feedback` (
`ID` int(11) NOT NULL auto_increment,
`FEEDBACK` varchar(250) NOT NULL,
`DATE_ADDED` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`HELPFULLNESS` varchar(3) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `Hotline` (
`ID` int(11) NOT NULL auto_increment,
`NAME` varchar(50) NOT NULL,
`PHONE_NUMBER` varchar(14) NOT NULL,
`PROVINCE` varchar(2),
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `PasswordRecovery` (
`ID` int(11) NOT NULL auto_increment,
`TIMESTAMP` datetime NOT NULL,
Page 112
`RECOVERY_HASH_ID` text NOT NULL,
`EMAIL` varchar(75) NOT NULL,
FOREIGN KEY (`EMAIL`) REFERENCES `Employee` (`EMAIL`)
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE `prj566_182a05`.`SecurityQuestion` (
`ID` INT NOT NULL AUTO_INCREMENT ,
`QUESTION` VARCHAR( 60 ) NOT NULL ,
PRIMARY KEY ( `ID` )
) ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS `Statistics` (
`ID` int(11) NOT NULL auto_increment,
`CATEGORY_ID` int(11) NOT NULL,
`DATE_ADDED` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`),
FOREIGN KEY (`CATEGORY_ID`) REFERENCES `Category` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `TempAgent` (
`ID` int(11) NOT NULL auto_increment,
`SELF_INTRODUCTION` longtext NOT NULL,
`EMPLOYEE_SERIALIZED` longblob NOT NULL,
`VERIFICATION_HASH` varchar(32) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Page 113
CREATE TABLE IF NOT EXISTS `VerifiedTempAgent` (
`ID` int(11) NOT NULL auto_increment,
`SELF_INTRODUCTION` longtext NOT NULL,
`EMPLOYEE_SERIALIZED` longblob NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Page 114
7.02 – Scripts to populate tables (meaningful data)Categories tableINSERT INTO INTO `prj566_182a05`.`Category` (`ID`, `CATEGORY_DESCRIPTION`) VALUES (NULL, 'Hopelessness'),(NULL, 'Fear'),(NULL, 'Regret'),(NULL, 'Traumatic experience'),(NULL, 'Stress'),(NULL, 'Bullying'),(NULL, 'Unemployment'),(NULL, 'Relationship issues'),(NULL, 'Mental disorders'),(NULL, 'Drug addiction');
Statistics tableINSERT INTO `prj566_182a05`.`Statistics` (`ID`, `CATEGORY_ID`, `DATE_ADDED`) VALUES (NULL, '1', '2018-07-26 12:37:50'), (NULL, '3', '2018-07-27 12:38:06'), (NULL, '5', '2018-07-25 11:00:00'), (NULL, '5', '2018-07-25 11:20:00'), (NULL, '8', '2018-07-25 11:00:03'), (NULL, '6', '2018-07-28 13:05:11'), (NULL, '7', '2018-07-26 15:00:35'), (NULL, '3', '2018-07-26 13:22:15'), (NULL, '7', '2018-07-27 17:15:02'), (NULL, '8', '2018-07-24 18:13:00');
Security Questions tableINSERT INTO `prj566_182a05`.`SecurityQuestion` (`ID`, `QUESTION`) VALUES (NULL, 'Who is your favorite actor, musician, or artist?'),(NULL, 'What is the name of your first pet?'),(NULL, 'Where were you born?'),(NULL, 'What high school did you attend?'),(NULL, 'What is your mother’s maiden name?'),(NULL, 'What street did you grow up on?'),(NULL, 'What was your first car?'),(NULL, 'What is the name of your first grade teacher?'),(NULL, 'What is your favorite web browser?'),(NULL, 'What is your favorite movie?'),(NULL, 'What is your favorite book?'),(NULL, 'What
Page 115
was the first company you worked for?'),(NULL, 'Where did you meet your spouse?'),(NULL, 'What is your favorite food?'),(NULL, 'Where is your favorite place to vacation?');
Hotlines tableINSERT INTO `prj566_182a05`.`Hotline` (`ID`, `NAME`, `PHONE_NUMBER`, `PROVINCE`) VALUES (NULL, 'St. Paul & District Crisis Centre', '1-800-263-3045', 'AB'), (NULL, 'Province-Wide British Columbia', '1-800-784-2433', 'BC'), (NULL, 'Manitoba Suicide Line', '1-877-435-7170', 'MB'), (NULL, 'Chimo Helpline', '1-800-667-5005', 'NB'), (NULL, 'Mental Health Crisis Line', '1-888-737-4668', 'NL'), (NULL, 'Mental Health Mobile Crisis Team', '1-888-429-8167', 'NS'), (NULL, 'Awareness Centre', '1-867-982-0123', 'NT'), (NULL, 'Distress Centre of Toronto', '1-416-408-4357', 'ON'), (NULL, 'Island Helpline', '1-800-218-2885', 'PE'), (NULL, 'Quebec National Crisis Line', '1-866-277-3553', 'QC'), (NULL, 'Mobile Crisis Service (Saskatoon)', '1-306-933-6200, 'SK');
Employees tableINSERT INTO `Employee` (`USERNAME`, `PASSWORD`, `SALT`, `FIRST_NAME`, `LAST_NAME`, `ROLE`, `SECURITY_QUESTION_ID`, `SECURITY_ANSWER`, `DATE_OF_BIRTH`, `PREFERRED_LANGUAGE`, `EMAIL`) VALUES ('ezaytseva', '346cda8b977b94a7ee2e5a36f798b0fa', 't8yuRTe4', 'Ekaterina', 'Zaytseva', 'Agent', 2, 'Becky', '1998-01-31', 'ru', '[email protected]'), ('ghuang', '6eacf492121646784eb0042bfc0b1715', 'yu4b5et3', 'Guodong', 'Huang', 'Agent', 9, 'Firefox', '1978-07-03', 'en', '[email protected]'), ('mbuchner', '38f7158ab7ff623d7319be4595c1ccfe', 'yr45Te67', 'Mark', 'Buchner', 'Admin', 3, 'Canada', '1978-07-29', 'en',
Page 116
'[email protected]'), ('myasir', '9ad135f42555361046007546a8fef56b', 's0mRIdlK', 'Mohammad', 'Yasir', 'Admin', 7, 'Nissan', '1997-01-01', 'en', '[email protected]'), ('nhptrinh', 'ce0ecf0ccd6ff5c346c6e2cf309e0bd3', '4rEt67Cv', 'Nguyen', 'Trinh', 'Agent', 4, 'BC', '1997-04-02', 'en', '[email protected]'), ('eohan', '8b30feaa6dce46cf68acd7f7d283d41d', 'e25o6im1', 'Emile', 'Ohan', 'Admin', '9', 'Firefox', '1978-03-15', 'en', '[email protected]');
AgentCategory tableINSERT INTO `prj566_182a05`.`AgentCategory` (`USERNAME`, `CATEGORY_ID`) VALUES ('eohan', '1'), ('eohan', '2'), ('ezaytseva', '3'), ('ezaytseva', '4'), ('ghuang', '5'), ('ghuang', '6'), ('mbuchner', '7'), ('mbuchner', '8'), ('myasir', '2'), ('myasir', '4'), ('nhptrinh', '2'), ('nhptrinh', '8');
ActivityLog tableINSERT INTO `prj566_182a05`.`ActivityLog` (`USERNAME`, `TIME_STARTED`, `TIME_ENDED`) VALUES ('ezaytseva', '2018-07-26 11:32:38', '2018-07-26 12:37:45'), ('ghuang', '2018-07-27 12:22:15', '2018-07-27 12:37:56'), ('nhptrinh', '2018-07-25 10:45:37', '2018-07-25 11:00:00'), ('ezaytseva', '2018-07-25 11:10:48', '2018-07-25 11:19:45'), ('ghuang', '2018-07-25 10:43:12', '2018-07-25 11:00:00'), ('nhptrinh', '2018-07-28 12:54:42', '2018-07-28 13:05:09'), ('nhptrinh', '2018-07-26 14:05:01', '2018-07-26 15:00:10'), ('ghuang', '2018-07-26 12:25:54', '2018-07-26 13:22:10'), ('nhptrinh', '2018-07-27 16:45:01', '2018-07-27 17:14:50'), ('ghuang', '2018-07-24 17:52:14', '2018-07-24 18:12:43');
Page 117
Certificate tableINSERT INTO `Certificate` (`USERNAME`, `CERTIFICATION`, `INSTITUTION`) VALUES ('ghuang', 'Pre-Community Services Certificate', 'Lambton College'), ('ezaytseva', 'Specialized Certificate in Applied Counselling Studies', 'Kelowna College of Professional Counselling'), ('nhptrinh', 'Counselling Fundamentals Certificate', 'George Brown College'), ('myasir', 'Advanced Counselling Certificate', 'George Brown College'), ('mbuchner', 'CCPA Certification', 'Canadian Counselling and Psychotherapy Association');
Education tableINSERT INTO `prj566_182a05`.`Education` (`USERNAME`, `FIELD_OF_STUDY`, `INSTITUTION`) VALUES ('eohan', 'Community Services', 'Algonquin College'), ('ezaytseva', 'Community Services', 'Fanshawe College'), ('ghuang', 'Community Services', 'Humber College'), ('mbuchner', 'Community Services', 'Lambton College'), ('myasir', 'Community Services', 'Loyalist College'), ('nhptrinh ', 'Community Services', 'Niagara College');
Experience tableINSERT INTO `prj566_182a05`.`Experience` (`USERNAME`, `EXPERIENCE_DESCRIPTION`, `INSTITUTION`, `START_DATE`, `END_DATE`) VALUES ('ezaytseva', 'Counsellor', '', '2017-07-03', NULL), ('ghuang', 'Counsellor', '', '2016-02-01', '2018-06-29'), ('nhptrinh', 'Counsellor', '', '2017-03-01', NULL), ('myasir', 'Counsellor', '', '2017-02-01', '2018-03-30');
Page 118
Feedback tableINSERT INTO `prj566_182a05`.`Feedback` (`ID`, `FEEDBACK`, `DATE_ADDED`, `HELPFULNESS`) VALUES (NULL, 'Great service, I felt relieved', '2018-07-26 12:37:52', 'yes'), (NULL, 'Connection issues', '2018-07-27 12:39:04', 'no'), (NULL, '', '2018-07-25 11:20:20', 'yes'), (NULL, '', '2018-07-26 13:22:38', 'yes'), (NULL, '', '2018-07-24 18:32:15', 'yes');
PasswordRecovery tableINSERT INTO `prj566_182a05`.`PasswordRecovery` (`ID`, `TIMESTAMP`, `RECOVERY_HASH_ID`, `EMAIL`) VALUES (NULL, '2018-07-29 20:40:42', 'ddbc0d9a0e2a3bb5624391e516881986553d39b15dfd3426', '[email protected]'), (NULL, '2018-07-05 15:22:15', 'f2f67edff492851df383c7eb25627e7f20be46e2b05c9d32', '[email protected]'), (NULL, '2018-07-14 18:41:25','1e897f927b4448545ee1689288df1febd9ffc0097920ab0c7bd59752f6345e23', '[email protected]'), (NULL, '2018-07-15 10:19:43', '58e7f91f49a5e860da5c3450bd73924e7bd0ade71c1e48fe', '[email protected]'), (NULL, '2018-07-20 22:11:37', 'f857d545e5a59f0ef383c7eb25627e7f20be46e2b05c9d32', '[email protected]');
TempAgent tablenot possible to generate test data for this as it requires binary data to be inputted
VerifiedTempAgent tablenot possible to generate test data for this as it requires binary data to be inputted
Page 119
7.03 – Scripts to delete tables
7.03.01 Drop table scriptsDROP TABLE ActivityLog;
DROP TABLE AgentCategory;
DROP TABLE Category;
DROP TABLE Certificate;
DROP TABLE Education;
DROP TABLE Employee;
DROP TABLE Experience;
DROP TABLE Feedback;
DROP TABLE Hotline;
DROP TABLE PasswordRecovery;
DROP TABLE SecurityQuestion;
DROP TABLE VerifiedTempAgent;
7.03.02 Delete existing records in a tableDELETE FROM ActivityLog WHERE condition;
DELETE FROM AgentCategory WHERE condition;
DELETE FROM Category WHERE condition;
DELETE FROM Certificate WHERE condition;
DELETE FROM Education WHERE condition;
DELETE FROM Employee WHERE condition;
DELETE FROM Experience WHERE condition;
DELETE FROM Feedback WHERE condition;
DELETE FROM Hotline WHERE condition;
DELETE FROM PasswordRecovery WHERE condition;
Page 120
DELETE FROM SecurityQuestion WHERE condition;
DELETE FROM Statistics WHERE condition;
DELETE FROM TempAgent WHERE condition;
DELETE FROM VerifiedTempAgent WHERE condition;
Page 121
7.04 – Data DictionaryField Name Table Data
TypeLength Read
Only?NULL Required Description
USERNAME ActivityLog VARCHAR 25 No No Yes Display the username of an agent to that belong to which timestamp.
IME_STARTED ActivityLog TIMESTAMP
Yes No Yes Display the time that the agent started to log on.
TIME_ENDED ActivityLog TIMESTAMP
Yes No Yes Display the time that the agent Logged off.
USERNAME AgentCategory
VARCHAR 25 No No Yes Display the username of the agent who specialize in a specific category.
CATEGORY_ID AgentCategory
INT 11 No No Yes Display the ID of the category.
CATEGORY_ID Category INT 11 No No Yes Display the ID of the category
CATEGORY_DESCRIPTION
Category VARCHAR 40 No No Yes Description of the category
USERNAME Certificate VARCHAR 25 No No Yes Display the Username of an agent who owns a certificate
CERTIFICATION Certificate VARCHAR 100 No No Yes Name of the certificate
INSTITUTION Certificate VARCHAR 100 No No Yes The institution that certify the certificate
USERNAME Education VARCHAR 25 No No Yes Display the Username of an agent with their educational level
FIELD_OF_STUDY Education VARCHAR 50 No No Yes Display the field of the agent specialized on
INSTITUTION Education VARCHAR 100 No No Yes Display the institution where the agent study
Page 122
USERNAME Employee VARCHAR 25 No No Yes Display the username of an employee
PASSWORD Employee VARCHAR 32 No No Yes Display the password of an account belong to an employee
SALT Employee VARCHAR 8 No No Yes The SALT code is to encrypt the data such as passwords
FIRST_NAME Employee VARCHAR 25 No No Yes The first name of the employee
LAST_NAME Employee VARCHAR 25 No No Yes The last name of the employee
ROLE Employee TEXT No No Yes The role of the employee
SECURITY_QUESTION_ID
Employee INT 11 No No Yes The ID of the security question
SECURITY_ANSWER Employee VARCHAR 100 No No Yes The answer of the employee about the security question
DATE_OF_BIRTH Employee DATE No No Yes The date of birth of the employee
PREFERRED_LANGUAGE
Employee VARCHAR 2 No No Yes The language that the agent prefer to use
EMAIL Employee VARCHAR 75 No No Yes The email of the employee
USERNAME Experience VARCHAR 25 No No Yes The username of the employee
EXPERIENCE_DESCRIPTION
Experience VARCHAR 100 No No Yes The description of the employee about his/her experiences
INSTITUTION Experience VARCHAR 100 No No Yes The institute where the employee had experiences with
START_DATE Experience DATE No No Yes The date that the employee started his/her working experience
END_DATE Experience DATE No No Yes The date that the employee ended his/her working experience
FEEDBACK_ID Feedback INT 11 No No Yes The ID of the
Page 123
feedback FEEDBACK Feedback VARCHAR 250 No No Yes The feedback of
the userDATE_ADDED Feedback TIMESTA
MPNo No Yes The date that the
User gave feedbackHELPFULLNESS Feedback VARCHAR 3 No No Yes The User response
to the communication session whether it helps or not
HOTLINE_ID Hotline INT 11 No No Yes The ID of a hotlineHOTLINE_NAME Hotline VARCHAR 50 No No Yes The
name/organization of the hotline
PHONE_NUMBER Hotline VARCHAR 14 No No Yes The phone number of the hotline
PROVINCE Hotline VARCHAR 2 No No Yes The province which the hotline belongs to
PASSWORD_RECOVERY_ID
PasswordRecovery
INT 11 No No Yes The ID of the password recovery
TIMESTAMP PasswordRecovery
DATETIME
No No Yes The timestamp when the agent/admin want to recover their passwords.
RECOVERY_HASH_ID PasswordRecovery
TEXT No No Yes The HASH CODE for the agent/admin to recover their passwords
EMAIL PasswordRecovery
VARCHAR 75 No No Yes The email of the agent/admin which will receive the HASH CODE to recover their password
SECURITY_QUESTION_ID
SecurityQuestion
INT 11 No No Yes The ID of the security question
QUESTION SecurityQuestion
VARCHAR 60 No No Yes The security question contents
STATISTICS_ID Statistics INT 11 No No Yes The ID of the Statistic
CATEGORY_ID Statistics INT 11 No No Yes The ID of the Category
DATE_ADDED Statistics TIMESTA No No Yes The date that the
Page 124
MP Statistic being added
TEMP_AGENT_ID TempAgent INT 11 No No Yes The ID of the temporary agent
SELF_INTRODUCTION TempAgent LONGTEXT
No No Yes The self-introduction of the person who wants to become an agent
EMPLOYEE_SERIALIZED
TempAgent LONGBLOB
No No Yes Employee Serialized Object
VERIFICATION_HASH TempAgent VARCHAR 32 No No Yes The HASH CODE that verify the temporary agent
VERIFIED_TEMP_AGENT_ID
VerifiedTempAgent
INT 11 No No Yes The ID of the verified temporary agent
SELF_INTRODUCTION VerifiedTempAgent
LONGTEXT
No No Yes The self-introduction of the person who wants to become an agent
EMPLOYEE_SERIALIZED
VerifiedTempAgent
LONGBLOB
No No Yes Employee Serialized Object
Page 125
8. – Implementation Schedule for PRJ666 (week 12)
8.01 – Schedule (Make sure to include names, dependencies, start and finish dates and hours)
Page 126
Please refer to the actual Microsoft Project Document to view the important notes on some of the tasks.
Page 127
9 – Measurable deliverables1. User Functionality
a. Navigate and interact with the applicationb. Start live text chat with agentc. Start live video/voice chat with agentd. Fill out pre-session forme. Fill out post-session formf. View Statisticsg. Search Hotlinesh. Have the ability to register as an agenti. Connect to agent specified in the pre-session form
2. Agent Functionalitya. Navigate and interact with the applicationb. Start live text chat with userc. Start live video/voice chat with userd. Be able to sign-in/sign-out of the applicatione. Reconnect user to another agentf. Fill out post-session formg. View Statisticsh. Search Hotlinesi. View and modify own profile elements:
i. Experienceii. Education
iii. Certificationiv. Emailv. Password
vi. Security Questions/Answersj. Be able to reset password through forgot passwordk. View activity log
3. Admina. Has all agent functionalityb. View and modify all employee profile elements
i. Experienceii. Education
iii. Certificationiv. Namev. Categories
c. View Feedbackd. Approve/Reject new agent requestse. View all employee activity log
4. Platforma. Web platform can communicate with Mobile platforms with RESTful API
Page 128
10 – Acceptance Criteria1. Test chat functionality with different categorial agents on all three platforms2. Test reconnection to different agents while chatting3. View and filter through hotlines4. Test registration process 5. Test profile modification6. Test pre-session and post-session forms submission7. Test reset and forgot password functionality8. Test Admin employee modification functionality9. Test new agent request approval process10. Test activity log modification and revision11. Test agent availability12. Test feedback review13. Test API functionality to ensure data is being received and sent to/from Web platform to/from Mobile
Platform
14.
Page 130
12 - PRJ666 Virtual Machine (VM) Requirements Make sure to include all services – port numbers required to run any service must be assigned by ITS
Group: WeHearYou Group Number: 05
Operating System: 1. Linux Ubuntu Server ☒
2. Windows Server ☐
3. Windows 10 ☐
4. Other (specify) ☐ Check & Complete on page two
Database: 1. MySQL ☐
2. MSSQL ☐
3. MongoDB ☐
4. AZURE ☐
5. Other (specify) ☒ Check & Complete on page two
Services: 1. http ☐
2. https ☒
3. ssh ☒
4. RDS (Remote Desk) ☒
5. Phpmyadmin ☒
6. NodeJS ☒
7. Other (specify) ☒ Check & Complete on page two