Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 19 Next »

WCAG Compliance Report

Technical Concept

Chat Concept

Project Introduction

Implementing Chat App on web and mobile APP

Terminology

Word

Meaning

Realtime API

Room

Subscriptions

Message

Direct message

Features

The main chat feature are:

  1. Text message

  2. File attachment

  3. Video call

Technology Stack

  • Rocket Chat

  • Jisit

  • Keycloak

  • Laravel

  • React JS

  • React Native

  • MySQL

  • Hosting

Architecture Overview

Diagrams

Purpose of this section is to include any additional diagrams that would clarify complex parts of the product.

User Stories

Web App

#

User Story Tile

User Story Description

Priory

Notes

1

Setup Rocket Chat and Jisi

As developer, I want a chat server setup on local/production environment, so we can integrate them into App

2

Create user automatically

As developer, I want to create a chat user after registered/created (from system)

3

Login automatically

As developer, I want the rocker user login after user login on Web app

4

Text Message

  • Total number of unread messages

  • Search box

  • Message list

  • Message box

refs.

5

Video Call

refs.

Mobile App

#

User Story Tile

User Story Description

Priory

Notes

1

Create user automatically

2

Login automatically

3

Text Message

4

Video Call

Current status

Purpose of this section is to discuss open issues / bugs, risks, and share any specific conclusions that the reader should walk away with

ERD

Mobile OTP

ref. https://developers.google.com/identity/sms-retriever

SMS API Service

Questionnaire Concept

Questionnaire list

Add Questionnaire

Rocket Chat Configuration for OpenRehab

Installation

It is already setup through docker-compose.yml of the project distribution package, the service named rocketchat and its dependencies mongo and mongo-init-replica.

After you start your docker containers, you should be able to access rocket chat through this URL: http://localhost:3000/

Admin registration / first startup

  • Open this URL: http://localhost:3000/ in your browser, you will see the form step wizard with 4 steps

  • In step #1: please make sure to use the real email account for Organization Email because Rocket Chat will do background verification. If you use fake email, your registration will failed. This email can be changed afterward.

  • In step #3: please select "No" for Auto opt in new users for Two Factor via email. This option can be changed afterwards as well.

Configuration for OpenRehab

  1. Allow user to have edit messages and delete private chat room. Search for edit-message and delete-p make sure its check under group: user

  2. Enable Rest API security CORS. Go to General (search in Settings) → expand accordion REST Api → Enable CORS

Admin personal access token for Therapist and Patient service

You can find sample environment variables for both Therapist and Patient service from file .env.example. To generate access token click on admin profile thumbnail → My Account → Personal Access tokens

  • Fill in the name of your access token for example: Admin Access Tokens for OpenRehab → click Add

  • You might need to enter admin password for security verification

  • There will be a popup with userId and token, please copy those values for ROCKET_CHAT_ADMIN_USER_ID and ROCKET_CHAT_ADMIN_AUTH_TOKEN of your .env file

ROCKET_CHAT_URL=http://rocketchat:3000
ROCKET_CHAT_ADMIN_USER_ID=
ROCKET_CHAT_ADMIN_AUTH_TOKEN=
ROCKET_CHAT_ADMIN_PASSWORD=H1V-CHAT@ADM1N

Admin Permission to Delete ChatRooms

You can find the screenshot below of how to configure the permission

Translation Module

Label localization

The Web/Mobile App would be possible updated by Backend admin, and they are fetched localize api (json) into local app storage, it would be updated again if there new localize changed.

Dynamic content

It is created a new separated record which is related the original record and sysLang. It would be applied for:

  • Exercise

  • Education Material

  • Questionnaire

  • Category

Static content

For static content (Language of the app itself), we will store each language in a separate file,
Translator will provide a new file with all translated text inside to the developer to manually add
it to the app

Use Cases

Use Cases of Back-end Admin

The figure below shows logical relationship of the components in Back-end Admin Web App

Use Cases of Therapist

The figure below shows logical relationship of the components in Therapist Web App

Use Cases of Patient

The figure below shows logical relationship of the components in Patient Mobile App

User Roles

Role Name

Description

Super Admin

Organization Admin

Country Admin

Clinic Admin

Therapist

Patient

manage_organization

Able to manage the organizational

  •  
  •  
  •  
  •  
  •  
  •  

manage_organization_admin

Able to CRUD the organization admin user

  •  
  •  
  •  
  •  
  •  
  •  

manage_global_admin

Able to CRUD the global admin user

  •  
  •  
  •  
  •  
  •  
  •  

manage_country_admin

Able to CRUD the country admin user

  •  
  •  
  •  
  •  
  •  
  •  

manage_clinic_admin

Able to CRUD the clinic admin user

  •  
  •  
  •  
  •  
  •  
  •  

manage_therapist

Able to CRUD the therapist user

  •  
  •  
  •  
  •  
  •  
  •  

manage_patient

Able to CRUD the patient

  •  
  •  
  •  
  •  
  •  
  •  

setup_category

  •  
  •  
  •  
  •  
  •  
  •  

setup_exercise

Able to CRUD the exercise

  •  
  •  
  •  
  •  
  •  
  •  

setup_educational_material

Able to CRUD the educational material

  •  
  •  
  •  
  •  
  •  
  •  

setup_questionnaire

Able to CRUD the educational questionnaire

  •  
  •  
  •  
  •  
  •  
  •  

view_report

  •  
  •  
  •  
  •  
  •  
  •  

view_treatment_detail

  •  
  •  
  •  
  •  
  •  
  •  

view_appointment

  •  
  •  
  •  
  •  
  •  
  •  

arrange_appointment

  •  
  •  
  •  
  •  
  •  
  •  

create_treatment_plan_for_patient

view, select and arrange content

  •  
  •  
  •  
  •  
  •  
  •  

view_exercise

  •  
  •  
  •  
  •  
  •  
  •  

view_educational_material

  •  
  •  
  •  
  •  
  •  
  •  

view_questionnaire

  •  
  •  
  •  
  •  
  •  
  •  

submit_exercise_result

  •  
  •  
  •  
  •  
  •  
  •  

submit_questionnaire_answer

  •  
  •  
  •  
  •  
  •  
  •  

view_goal_progress

  •  
  •  
  •  
  •  
  •  
  •  

input_goal_progress

  •  
  •  
  •  
  •  
  •  
  •  

message_call_between_therapist_patient

  •  
  •  
  •  
  •  
  •  
  •  

view_edit_own_profile

  •  
  •  
  •  
  •  
  •  
  •  

manage_country

  •  
  •  
  •  
  •  
  •  
  •  

manage_language

  •  
  •  
  •  
  •  
  •  
  •  

manage_translation

  •  

 HI ONLY

  •  
  •  
  •  
  •  

manage_system_limit

  •  
  •  
  •  
  •  
  •  
  •  

manage_clinic

  •  
  •  
  •  
  •  
  •  
  •  

manage_profession

  •  
  •  
  •  
  •  
  •  
  •  

manage_term_condition

  •  
  •  
  •  
  •  
  •  
  •  

manage_privacy_policy

  •  
  •  
  •  
  •  
  •  
  •  

manage_guidance_page

  •  
  •  
  •  
  •  
  •  
  •  

manage_static_page

  •  
  •  
  •  
  •  
  •  
  •  

manage_disease

  •  
  •  
  •  
  •  
  •  
  •  

manage_color_scheme

  •  
  •  
  •  
  •  
  •  
  •  

view_term_condition

  •  
  •  
  •  
  •  
  •  
  •  

view_privacy_policy

  •  
  •  
  •  
  •  
  •  
  •  

WCAG

ref. https://www.w3.org/WAI/standards-guidelines/wcag/

Third Parties

A list of third party libraries, services and products used.

Internal

Name

Version

Responsible

Information Channel

Lessons learned

Boxmodel for TYPO3 CMS 6.2

1.0

 

 

 

 

 

 

 

 

External

Name

Version

Account

Information Channel

Lessons learned

Google Maps API

 

Client's Gmail account

 

 

TypeKit

 

Client's TypeKit account

 

 

  • No labels