1 – introduction/overview – document informationemile.ohan/prj566/resources/... · web view–...

152
Page 1 PRJ566 –2018 PRJ566 – Group No: 05 Name of Project: WeHearYou Project Leader: Last updated: May, 2018 Group Members:

Upload: trinhlien

Post on 28-Jul-2019

216 views

Category:

Documents


0 download

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 6

1 – Introduction/Overview – Document Information

1.01 – Document Authors1. 2. 3. 4.

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 31

Page 32

Page 33

Page 34

4. – Process/Activity & Data Modeling 4.01 – Data Flow DiagramsUser Connect to Agent

Page 35

User & Agent Web Chat Session

Page 36

Use & Agent Mobile Chat Session

Page 37

Agent Review Information

Page 38

Agent/A dmin

Request Password Reset

Page 39

Agent/Admin Reset Password

Page 40

User Search Hotlines

Page 41

User View Statistics

Page 42

Admin Review Requests

Page 43

Agents Sign Up

Page 44

Agent/Admin Sign In

Page 45

Admin Inspect Agent

Page 46

User Feedback

Page 47

Agent Form Submission Post Session

Page 48

Agent Candidate Confirmation

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 51

5.02 – Use Case Diagram

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 63

Exception How it will be handled

Internal server error Display user-friendly 500 page

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 71

logs

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

email

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

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 90

Page 91

5.04 – Domain Class Diagram

Page 92

6. – Interface Mock-ups

6.01 – Android Templates

Android – Home Page

Page 93

Android – Chat Page

Page 94

Android – Video Chat Page

Android – Voice Chat Page

Page 95

Android – Prompt Feedback Page

Page 96

Android – About us page

6.02 - iOS TemplatesiOS – Home Page

Page 97

iOS –Chat Page

iOS – Video Call Page

Page 98

iOS – About Page

iOS – Prompt Feedback Page

Page 99

6.03 - Web TemplatesWeb – About/Statistics page

Web – Admin Profile Page

Page 100

Web – Agent Chat Page

Web – Agent Chat Post-Session

Page 101

Web – Agent Chat Reconnection

Web – Agent Profile Page

Page 102

Web – Agent Sign up Page

Web – Change Password

Page 103

Web – Forgot Password

Web – Forgot Password Confirmation (overall Dialog sample)

Page 104

Web – Home Page

Web – Chat Request Dialog

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 106

Web – Review the Requests

Web – Sign in page

Page 107

Web – User Chat

Web – User Chat – Feedback

Page 108

Web – View Agents

Web – View Feedback

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` (

Ekaterina Zaytseva, 07/26/18, RESOLVED
Missing the Education level (diploma, bachelor’s, so on)
Mohammad Yasir, 07/28/18, RESOLVED
Mohammad Yasir, 07/28/18, RESOLVED
Fixed
Ekaterina Zaytseva, 07/26/18, RESOLVED
References itself?
Ekaterina Zaytseva, 07/26/18, RESOLVED
This string size restriction is weird, since email can have [email protected], and we expect the full name to be 50 chars
Ekaterina Zaytseva, 07/26/18, RESOLVED
I suggest removing the “NOT NULL” here and date of birth since Admin doesn’t require these fields

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,

Ekaterina Zaytseva, 07/26/18, RESOLVED
Misses the region column
Mohammad Yasir, 07/28/18, RESOLVED
Mohammad Yasir, 07/28/18, RESOLVED
No foreign keys are used hence no need for an engine that supports relationships. Make’s it a tad bit faster
Ekaterina Zaytseva, 07/26/18, RESOLVED
Why did the engine change?

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 ;

Ekaterina Zaytseva, 07/26/18, RESOLVED
Needs a reference to the Employee so we can change the password for that specific user.

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 129

11 – Client / Faculty Sign-off

XEmile OhanPRJ566 Professor

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

Page 131

Other information

Operating System:

Data Base: MariaDB

Services: Tomcat

___________________________________

___________________________________

___________________________________

___________________________________

___________________________________

___________________________________