Independent University, Bangladesh
Department of Computer Science & Engineering
CSE 307: System Analysis and Design
Spring 2022
Term Project
HealthyMind
A Peer Counselling Platform
Fahim Ahmed
2022409
Suhaila
1910496
Mir Shafayat Ahmed
1910456
Table of Contents
2. History leading to project request 5
Problems and Solutions 6 Introduction Opportunities 6
4. Project goal and objectives 7
7. Hardware detail (Include Rich Picture) 9
8. Key Technical Features of Software 9
9. Information Gathering methods (At least three methods) 10
Interviews: 10
Samples 11
10. Major functionalities offered by the system 14
Chat System 16
12. Normal and Alternate Scenarios 18
User signup 18
13. Functional Requirements 24
Chat System 24
14. Non-Functional Requirements 25
Privacy 25
Security: 25
Cost: 25
Usability: 25
Misc. 25
15. Entity Relationship Diagram 26
16. Logical Data Flow diagram 27
Diagram 0 27
Chat System 30
17. Physical Data Flow diagram 34
Chat System 35
Activity: User Initiation System 36
Activity: Volunteer signup System 37
Activity: Report Notification System 38
User sign up 43
Chat System 44
User sign up 46
Chat System 46
Client class 49
Chat class 50
Report class 50
Chat System 52
24. Structure English pseudo code for the system 54
25. Prototype the user interface 60
User Signup 60
User Login 61
Chat 61
Chat Client List (visible to volunteers only) 62
Add Custom Questionnaire (visible to volunteers only) 63
Report Chat 64
Section 1:
HealthyMind is a non-profit organisation aimed at providing peer-support services to people of all ages. It is run by a group of mental health professionals, supervising a team of volunteers who counsel clients over an internet messaging service. Clients register for the service and are assigned a volunteer. Both parties remain anonymous to one another. Once connected, they can have conversations and receive counselling and support. At present their operations are small in scale; employing only a dozen or so volunteers, each connected to around five clients.
The organisation uses Facebook Messenger to provide their services. All operations are conducted manually. Volunteer applications, client registration, assigning volunteer to client are all done by knocking the organisation on their Facebook page and requesting to answer the appropriate questionnaire on Google Forms. Both requests and responses have to be checked and approved periodically - leading to long wait times and tedium for all parties involved. This manual and fragmented nature of the existing system is hampering their vision of expanding their operations.
Also of note is that the organisation has recently had to deal with a breach of confidentiality between a client and their assigned volunteer - the cause of which was determined to be a limitation of their operating procedures and the messaging platform being used. Supervision is difficult and a robust system for reporting (and dealing with reports of) inappropriate behaviour is unfortunately absent in that platform since it was never designed for such a task.
Hence HealthyMind approached us with their problems - asking for a dedicated, all-in-one software solution automating their day-to-day activities.
| Problem | Solution | |
|---|---|---|
| Manual, tedious registration process that involves going to another site. May discourage signing up. | User initiation will be handled within the application in a guided manner. Users will not be taken to another site. | |
| Anonymity difficult to maintain due to Facebook being used | User details will only be visible to supervisors in the new system. | |
| Confidentiality cannot be maintained as one volunteer’s messages are not kept isolated from another’s | Each volunteer will have completely separate accounts so this limitation of the previous messaging platform will not apply. Only supervisors will have access to chat logs, and only after a report has been filed by the user. | |
| Supervising a large number of chats unfeasible | AI will be employed to moderate chats. Alerts will be sent to supervisors if inappropriate activity is detected. | |
| Reporting conversations is done manually via google forms | Reporting can be done within the chat application window. | |
| Pending reports have to be periodically by supervisors. | Urgent alerts will be sent to the supervisor whenever a conversation is reported. All pending reports can be seen in the supervisor’s dashboard. | |
| Reports have to dealt with manually | List of possible actions can be seen in the dashboard and handing can be done directly from there | |
| Various mental health assessment questionnaires have to be taken off-site | Editable questionnaires will be integrated into the application so users can have a seamless experience. | |
| Questionnaires have to be manually handed out. | Questionnaires can be scheduled and set by supervisors and volunteers. These are to be automatically distributed to clients and the responses can be accessed in a convenient manner from their dashboards. | |
| Conversations have to be manually scheduled/agreed upon by parties | Scheduling and notification system will be integrated in the chat application itself. |
-
No similar all-in-one platform currently exists.
-
User convenience will be unparalleled.
-
AI-based supervision would ensure confidentiality.
-
Automation will reduce supervisor workloads and will allow them to
work more efficiently.
-
Volunteer management (leaves, signup, assigning) can be done via
this application.
-
Chat application will be purpose-designed for this organisation’s
needs so it can better guarantee confidentiality.
-
Due to questionnaires etc. being integrated into the chat
application, the new system can give a much more cohesive and unified experience.
-
Confidentiality and convenience will attract a large number of
users.
-
Automation will allow the organisation to scale up their operations.
HealthyMind aims to provide cost free service to the users ranging from all ages. This website is designed to provide a safe space and learning environment for people without fear of judgement, misunderstanding, harassment or abuse. It carves out a way for promotion of mental health through service, advocacy, and education. It offers a very efficient , smooth, and comfortable website to use (from home) as well as an excellent platform that is accessible for all people (including disability).
One of the advantages is that the users can easily navigate through the platform with minimum effort where the service can be available 24/7. In addition, the platform is structured in a way ensuring confidentiality of both client and volunteer through high monitoring by the employees to ensure a safe and secure environment for both the parties.
Section 2:
- Product summary
It is a platform in which people from all around Bangladesh can connect and share their inner thoughts while being anonymous to a peer support volunteer. The volunteers can also apply with just a few steps by signing up and uploading their resume. The administration is updated from time to time of the ongoing activities on the website. Moreover, they can maintain and have an overview of all the users at any preferable time they want.
Furthermore, after the volunteers and clients have successfully registered and are part of HealthyMind, they can start communicating with each other with proper security and privacy ensured on both ends and also set up schedules if they wish. On the other hand, The volunteer has an option to even reject a request for chat and clients can also wish to reassign the volunteer. To maintain security and privacy, an AI chat moderator is incorporated in the system which will detect any inappropriate images or messages sent in the chat log and immediately notify the supervisor.
To summarise, the platform will help increase awareness of mental health and people will be more willing to share their problems.
- Product Stakeholders
-
Client
-
Admin
-
Supervisor
-
Volunteer
Frontend:
-
Smartphone, PC or Laptop
-
Internet connection capable of smooth browsing experience
-
A Web Browser or an Android or iOS app.
Backend:
-
Servers capable of handling 1000 users concurrently hosted by a
cloud service provider.
-
At least 100MB of storage allocated per user.
-
A relational database - MySQL.
-
A language like Python that is capable of handling thousands of
requests every second.
-
JavaScript will be the main frontend language as it allows for
making Web Apps that can easily be made into Native apps for Android and iOS. Ensuring compatibility.
-
Compute-Heavy tasks like Image Manipulation and Natural Language
Processing are offloaded to powerful servers, hence allowing for older smartphones to use the service.
-
AI model inappropriate content detection is incorporated in the
system to detect inappropriate chat messages.
-
Backend uses Django/Python for ease of maintainability.
-
End-to-end encryption of all chat messages using SHA256 to ensure
privacy.
-
User authentication code system to ensure sensitive data is not
revealed.
-
OTP 2FA used for signup/login
Section 3:
Upon a cursory examination of the organisation, we settled for several interactive data gathering messages for this project. Due to the small size of the organisation, sampling a large pool of members was not an option. The decentralised/virtual nature of the organisation, plus the need for maintaining strict confidentiality did not permit us the ability to sit down and observe organisation members carrying out their day to day tasks in their own environment. Information gathering was carried out in phases:
To gather preliminary information about their requirements, questionnaires were emailed to all the volunteers and supervisors working under the organisation, plus a few willing clients of the organisation. The questionnaire had a small description of the new system to give them some context. Responses were submitted via Google Forms.
Our interviewer carried out background research by taking notes of the facebook page of the organisation, their blog and their press releases detailing the policies, values and vision of the organisation.
We decided to individually interview the vice president (who is also a former supervisor), a peer support volunteer and two willing clients. Interview questions were mailed out a week in advance to prepare the interviewees. The interview was conducted virtually as each individual was situated at different places. Each session lasted approximately an hour.
The objective of the interview was to find out how they worked, their software requirements, what they wish to achieve with the new system, the resource budget etc. Beside the specific interview questions, interviewees were encouraged to elaborate on their questionnaire answers, tell us stories about their time with the organisation, voice their personal concerns with the old and new system and their opinions on certain policies and requirements of the organisation.
At a later date following the conclusion of the interviews, we sat down together with all the interviewees for four consecutive days to discuss the functionalities and UI of the system.
After an hour-long orientation session, led jointly by our senior analyst and the organisation’s vice president, we first wrote down the user stories of the existing system, and decided upon the logical workflow. We raised concerns about some of their requirements (namely, the extent of the AI moderator’s abilities) - the cost, workability and practicality made certain requirements unfeasible with their budgetary constraints and our limited expertise. They were understanding and we settled upon a scalable system that would allow easy integration with the components that they may wish to add in the future.
Once the workflow and requirements were tweaked to satisfaction, the new user stories were written up and the entirety of the last day was spent drawing up the user interface. Here the clients of the organisation had particular inputs about its ease of use, which was incorporated into the final prototype.
Samples for the questions and the user stories generated are attached below.
|
|---|
|
|
|
|
|
|
|
|
|
|
* only questions shown here, no instructions etc.
| Supervisor/Vice President Interview Questions (arranged in a funnel to extract maximum information) |
|---|
| A short rundown of how the current system works. |
| Why is there a need for a new system? |
| What are your biggest concerns regarding the current system? |
| What improvements/changes are required to the current system? |
| How well is the coordination within the organisation? |
| What challenges do you face maintaining client confidentiality? How do you currently mitigate them? |
| How do the supervisors currently take action after receiving reported contents? |
| What are your thoughts on employing an AI to moderate chats? |
| What are the organisation’s future plans regarding scalability? |
| How much can the organisation spend for this software acquisition? |
| How much is the maintenance budget? |
| How many people can the organisation dedicate towards keeping this system running day-to-day? |
| Volunteer Interview Questions (arranged in a pyramid to ease them into opening up) |
|---|
| How often do you counsel the clients? |
| How many clients do you regularly take on per month? |
| How is the overall experience while interacting with the clients? |
| How efficient is it to use the current system? |
| What are the drawbacks of the current system |
| What can be done to bring improvement to the current system? |
| What issues have arised in the organisation - tell stories. |
| How well are the privacy and security maintained of the clients? |
| What are the concerns about the system voiced by the clients and volunteers? |
| What things should remain unchanged in the current system? |
| What issues did they face with the supervisor and client |
| Client Interview Questions |
|---|
| Why did you choose this organisation? |
| What is the best part of the current system in your opinion? |
| Are there any new features you want to see added? |
| How easy is it to navigate through the system? |
| How can the current system be made much easier? |
| Are you comfortable with the current system’s privacy and security system? Explain. |
| Have you experienced any inappropriate situations? If yes, what did you do about it? |
| What would make you feel more comfortable using this service? |
Welcome new user
Show users a short welcome message and tell them about the service, how it works, who it’s for, and how to get started.
Sign up new user
Users sign up by entering their name, email and optionally other personal details. To maintain confidentiality, personal details can only be accessed by Supervisors under special circumstances.
Serve mental health questionnaire
Immediately after signing up, all users are served a short questionnaire to assess their current mental health, what they are expecting and their preferences (if any).
Request conversation
A new user requests an anonymous conversation with a trained peer support specialist after filling out the questionnaire.
Poll peer support specialists
Questionnaire responses are used to automatically rank available specialist best fit for the requesting user. The system sends notifications to the top 3 best fit specialists. If none respond within a given period, notifications are sent to the next 3 and so on.
Accept/Reject conversation request
A peer support volunteer receives notification for a conversation request. They examine the user's questionnaire responses and can choose to accept or pass the request.
Connect user and specialist
Upon accepting the request, a chat thread is created where the user can anonymously converse with the specialist. Both parties are given pseudonyms by the system to ensure neither identity is revealed.
Chat
Users can only be connected to one volunteer at a time with whom they can exchange messages (texts, images) at any time. Users get new message notifications.
AI moderated chat
AI checks every image and link sent for inappropriate content. If found to be inappropriate, the message is censored until the user gives consent to view. Censorship events are logged (visible to supervisor of this chat) and if a threshold number of these events occur, the chat is automatically reported to the supervisor.
Report conversation
If a user is made to feel uncomfortable, they may choose to report the conversation to have it checked by a Supervisor. User fills in a form detailing their reasons for reporting
Schedule chat
Users in a chat can set schedules and the other party can agree/disagree on the timing. If agreed, the application sends an alert reminding of the scheduled chat. If disagreed, the user can offer a different time and the other party can agree/disagree to that,
Serve checkup questionnaires
Bi-monthly questionnaires are served to all connected users to assess the change in their mental health. Users can also express their satisfaction/dissatisfaction with the specialist here. Periodically examined by supervisors.
Create/Answer custom questionnaire
Volunteers can create customised questionnaires in chat for users to answer.
Peer support specialist dashboard
Peer support specialists volunteering at the organisation are given their own accounts. Log in to view conversations, questionnaire responses and available requests.
Supervisor dashboard
Supervisors can view which users are connected to the volunteers under them, along with the time spent active in each conversation. Questionnaire responses of each connected user can be monitored from here.
View reported conversations
Supervisors can check the entire chat history of reported conversations. They may write responses to the reporting user in a special chat thread that can be archived by the supervisor once resolved.
View reported conversation chat
Supervisors may view the entire chat log of conversations reported manually. For AI-flagged chats, they must first request permission from users and can only view if given by client.
Reassign volunteer
Supervisors may reassign a different volunteer to a user manually. They may also reassign volunteers after a report.
Ban client
If reported for inappropriate behaviour or breach of terms, supervisors may ban a client for a period of time. The client will be unable to send messages in this period.
Set questionnaire
Administrator of the service can create/set the various questionnaires served to users through the questionnaire creation wizard in their dashboard
-
Send and Receive chat messages (Chatting).
-
AI Chat moderator detects inappropriate contents.
-
Accepting volunteers.
-
View user related graphs and profiles.
-
Request to chat with a Volunteer.
-
Manually report chats.
-
Signup, Login, Ban/Removing Users.
-
Create and edit questionnaires.
-
Leave Application for Volunteers.
-
Report handling for Supervisors.
-
Edit user profiles and questionnaire responses.
Use Case Name : |
UniqueID: INIT01 | |
|---|---|---|
| Area: User Signup page | ||
| Actors(s): Client | ||
| Stakeholder : Supervisor, volunteer | ||
| Description : Users are able to register into the system. | ||
| Triggering Event: Click on Signup button on the website | ||
| Trigger Type : External | ||
| Steps Performed (Main Path) | Information for steps | |
|
Sign up form | |
|
Sign up form and personal details | |
|
Questionnaire form, responses, preferences | |
|
Response and sign up form | |
|
Request | |
|
||
|
||
Preconditions :
|
||
Postconditions:
|
||
Assumptions:
|
||
Success Guarantee :
|
||
Minimum Guarantee :
|
||
Requirements Met:
|
||
Outstanding Issues :
|
||
Use Case Name : |
UniqueID: NOTIF01 | |
|---|---|---|
| Area : Notification System | ||
| Actors(s) : Supervisor | ||
| Stakeholder : Client and Volunteer | ||
| Description : The notifications received by the supervisor when malicious content is detected. | ||
| Triggering Event : Malicious text or images detected by AI chat moderator | ||
| Trigger Type : Temporal | ||
| Steps Performed (Main Path) | Information for steps | |
|
User ID and password | |
|
||
|
||
|
Report page | |
|
Report page | |
|
||
|
||
Preconditions
|
||
Postconditions:
|
||
Assumptions:
|
||
Success Guarantee:
|
||
Minimum Guarantee
|
||
Requirements Met :
|
||
Outstanding Issues :
|
||
Use Case Name: |
UniqueID: CHA 01 | |
|---|---|---|
| Area: Chat system | ||
| Actors(s): Client, Volunteer, AI moderator | ||
| Stakeholder: Supervisor | ||
| Description: Clients and volunteers can have conversations over chat which is moderated by an AI moderator. | ||
| Triggering Event: Client or volunteer sends a text or image in the chat window. | ||
| Trigger Type: External | ||
| Steps Performed (Main Path) | Information for steps | |
|
messages anonymised sender information message text |
|
| Extensions or Alternative Scenarios | ||
Sending Images
Unblur Censored Image
|
||
Preconditions:
|
||
Postconditions:
|
||
Assumptions:
|
||
Success Guarantee:
|
||
Minimum Guarantee:
|
||
Requirements Met:
|
||
Outstanding Issues:
|
||
Use Case Name: |
UniqueID: REP 01 | |
|---|---|---|
| Area: Report Handling | ||
| Actors(s): Supervisor | ||
| Stakeholder: Client, Volunteer | ||
| Description: Supervisor sees the user or AI generated chat report details and decides what to do. | ||
| Triggering Event: Supervisor receives “Conversation Reported” notification. | ||
| Trigger Type: External | ||
| Steps Performed (Main Path) | Information for steps | |
|
list of reported conversations moderation events log Report Conversation form responses |
|
| Extensions or Alternative Scenarios | ||
View Entire Chat-log
Request Permission to View Chat-log
|
chat logs | |
Preconditions:
|
||
Postconditions:
|
||
Assumptions:
|
||
Success Guarantee:
|
||
Minimum Guarantee:
|
||
Requirements Met:
|
||
Outstanding Issues:
|
||
Use Case Name : |
UniqueID: QUT01 | |
|---|---|---|
| Area: Admin Dashboard | ||
| Actors(s): Admin and Supervisor | ||
| Stakeholder : Volunteer and client | ||
| Description : User is able to create a new questionnaire or edit the previous one | ||
| Triggering Event: Click on the questionnaire form | ||
| Trigger Type : External | ||
| Steps Performed (Main Path) | Information for steps | |
|
Admin page | |
|
Questionnaire template | |
|
Questionnaire form | |
|
Admin page | |
|
||
|
||
Preconditions :
|
||
Postconditions:
|
||
Assumptions:
|
||
Success Guarantee :
|
||
Minimum Guarantee :
|
||
Requirements Met:
|
||
Outstanding Issues :
|
||
Use Case Name : |
UniqueID: UM01 | |
|---|---|---|
| Area: Volunteer profile page | ||
| Actors(s): Volunteer | ||
| Stakeholder : Supervisor, Client,Admin | ||
| Description : Users can view their own profile details and edit | ||
| Triggering Event: Click on Profile button | ||
| Trigger Type : External | ||
| Steps Performed (Main Path) | Information for steps | |
|
Profile page | |
|
User data | |
|
Profile page | |
|
Questionnaire form | |
|
Request | |
|
Profile form | |
|
||
|
||
|
||
Preconditions :
|
||
Postconditions:
|
||
Assumptions:
|
||
Success Guarantee :
|
||
Minimum Guarantee :
|
||
Requirements Met:
|
||
Outstanding Issues :
|
||
-
Client inputs personal information, completes a questionnaire to be
a registered member.
-
Login with email and password.
-
Clients can request for volunteer
-
Interested people can apply for volunteer positions by uploading the
required documents and signing up.
-
The chosen volunteer will be sent an email regarding the
confirmation of their selection.
-
Selected volunteers will have to activate their account (which will
be created by the administrator) using email
-
Volunteers can be able to accept/reject requests of clients.
-
System sends notification/request to the best fit Volunteer.
-
Clients get notified about the selection of new volunteer after
request
-
Volunteers and clients receive notification of unread chat messages
while they are away.
-
System sends notification to both volunteers and clients of their
scheduled session ahead of time.
-
Supervisor receives notification for any AI flagged chats
-
System notifies the supervisor of a new reported chat made by a
client or volunteer.
-
Admin receives notification of a new submitted request for leave
application made by employees
-
Volunteers receive notification of the decision to leave.
-
Exchange texts and images in chat. Volunteers and clients are kept
anonymous to each other.
-
Set chat schedules..
-
AI censors images and links deemed inappropriate, logs censorship
events.
-
Give permission to unblur censored images/links by the chat
moderator AI.
-
Manually report inappropriate behaviour in chat.
-
AI automatically reports chat if the threshold number of
inappropriate images sent.
-
View manual and AI-generated reports of inappropriate behaviour.
-
View chat logs and questionnaire responses of reported chats.
-
View logs of censorship events, along with censored images. Report
false positives.
-
Send a message to reporting and reported users to explain how the
report has been dealt with.
-
Ban a user for an amount of time following inappropriate behaviour.
-
Reassign a volunteer in a chat.
-
Create a new questionnaire.
-
Edit previous questionnaire.
-
Can view questionnaire responses.
-
Users can insert responses to the questionnaires.
-
Both responses and questionnaires can be stored.
-
Create a new newsletter and publish.
-
Users can edit questionnaire responses.
-
View Volunteer-Client Statistics.
-
Users can view and edit profile information.
-
Clients can delete their account.
-
Supervisors can ban or remove volunteer accounts.
-
Admin can view system statistics.
-
Volunteers can view their statistics.
-
Volunteers can apply for leave applications.
-
Supervisors can approve/reject leave applications.
-
-
Identifying information of clients should only be visible to
authorised personnel of the organisation and only under special circumstances.
-
Volunteers and clients should be anonymous to one another.
-
Screenshot-prevention feature in chat window.
-
Chat logs accessible to supervisors only in case of reports.
-
-
-
End to end encryption of chats.
-
Encrypted storage of all user data in servers.
-
Store only the bare minimum user data in servers.
-
-
-
Compress all images on the user end to minimise server
bandwidth/storage requirements.
-
Should not contain proprietary components that may incur
expensive licensing fees.
-
Back-end must run on a cloud server provider’s budget-tier plan.
-
-
-
Mobile app with simple, intuitive UI with the bare minimum of
features to prevent confusion.
-
Tooltips for every interactive UI element.
-
Always-accessible tutorial/overview of the service built into
the app - informs clients of how to use it and how the service works, along with simple and clear explanations of the privacy policies they can expect.
-
Cheerful UI design with soothing colours.
-
Darkmode support.
-
UI must accommodate for users with visual (including colour
blindness) or auditory impairments.
-
Supports both English and Bangla.
-
Chatting must be instantaneous; minimal lag.
-
-
-
Must be fully open source for the sake of transparency.
-
Must be easily auditable to ensure confidentiality of user data
is being maintained.
-
Apps must respect user privacy - no ads, no data gathering or
unnecessary device permissions.
-
Maintainable by a small team.
-
Not dependent on third party developer’s components, as
long-term support may not be guaranteed with those.
-
Section 4:
style="width:9.44291in;height:4.09722in" />
style="width:8.29514in;height:4.75576in" />
| Activity | Client | Volunteer | Admin | Supervisor | AI Chat Moderator |
|---|---|---|---|---|---|
| Enter Client Personal Details | U | ||||
| Create Client Account | C | ||||
| Complete signup questionnaire | U | ||||
| User log in | R | R | R | R | |
| Upload Volunteer Documents | U | ||||
| Enter Volunteer Application Details | U | ||||
| View New Volunteer Application | R | R | |||
| Accept/Reject Volunteer | U | U | |||
| Create Applicant Account | C | C | |||
| Send Notification | C | CU | CU | ||
| Deliver Notification | RU | R | |||
| Volunteer request | C |
| Activity | Chats | UserRecords | Reports | CensorLogs |
|---|---|---|---|---|
| Report Conversation | R | R | C | R |
| View Report Details | R | R | ||
| Write Report-Handling Message | RU | |||
| Request Chat-log Access | U | R | RU | |
| Grant Chat-log Access | U | RU | ||
| View Chat-log | R | |||
| Ban/Reassign | RU | RU |
| Activity | Chats | CensorLogs | Notifications |
|---|---|---|---|
| Send Message | CRU | ||
| Load Messages | R | ||
| Censor Message | R | CR | |
| Schedule Chat | C | ||
| Unblur Message | U |
| Activity | Questionnaire |
|---|---|
| Create questionnaire | C |
| View questionnaire | R |
| Edit questionnaire responses | RU |
| Edit questionnaire | U |
| Publish questionnaire | CU |
Section 5:






































































