1 of 102

Correspondence Management System

Email Workflow Tracking, and Real-time Chatting Channels

2 of 102

What is a Correspondence?

3 of 102

What is Correspondence?

  • Correspondence is a written form of communication between a sender and a recipient
  • Correspondence is the letters, emails, reports, invitations, and any other type of technical writing used within an organization as a way of communication between its employees.

4 of 102

Abstract

The idea of developing a Correspondence Management System (CMS) was first inspired by discovering our university's HRM "Human Resources Management System".

5 of 102

Abstract

  • By questioning the head of the department, Dr. Mohammad Khalil, and some of our lecturers on how the communication process runs among these lecturers themselves, and among the lecturers and their heads of departments and deans for example, we concluded that the process of workflow communications and messaging inside our university is almost automated and pretty much comfortable.

6 of 102

Abstract

  • Hence, we began thinking of why not trying to adopt a new similar software system that offers the same essential functions and modules which the PTUK HRM system offers,
  • but with an attempt to generalize the system by making it flexible to fit the needs of any organization, not only a university, since most of the establishments share a nearly similar workflow communication and messaging process, with some additional custom differences.

7 of 102

Problem Statement

8 of 102

  • According to International Data Center, the average worker spends about 2.5 hours per day or roughly 30% of the workday writing emails.

9 of 102

Problem Statement

  • When a company grows up with its employees, the process of storing, processing, and tracking all the emails exchanged among employees becomes a real challenge.

10 of 102

Problem Statement

  • Tracking and responding to these daily correspondences timely could become an annoying task if it is not managed correctly.

11 of 102

Objectives & Solution

12 of 102

Objective

We aim to develop a software solution to be used to store, process, manage, maintain, and deliver the content of a Correspondence across the organization.

13 of 102

Objectives & Solution

  • The system should be customizable to satisfy the organization’s policy and vision.
  • Determining messaging policy for users (Who can send to whom) is fully controlled by the organization itself.
  • Making the system dynamic as much as possible.

14 of 102

Related Works

(Literature Review)

15 of 102

1. PTUK HRMS

The process of workflow communication and messaging among our university's staff is almost automated and pretty much comfortable. This facilitation was made possible by dint of the PTUK HRM software system which have been used recently.

16 of 102

PTUK – HRM

17 of 102

2. Microsoft Outlook

18 of 102

19 of 102

3.

Slack is an instant messaging platfotm which provides a new way to communicate with your team. It's faster, better organized, and more secure than email.

20 of 102

21 of 102

22 of 102

System Requirements

(Features)

23 of 102

Functional Features

24 of 102

1. Build the Organizational Structure

25 of 102

26 of 102

27 of 102

ID

Position Name

ParentPositionID

1

President

رئيس مؤسسة

0

2

Vice president

نائب رئيس

1

3

Dean

عميد

1

4

Head of Unit

رئيس وحدة

1

5

Director of Department

مدير دائرة

1

6

Head of Department

رئيس قسم (إداري أو أكاديمي)

1

7

Head of Division

رئيس شعبة

1

8

Deanship of Engineering

عمادة الهندسة

3

9

Deanship of Science

عمادة العلوم

3

10

Deanship of Economy

عمادة الاقتصاد

3

11

Deanship of Arts

عمادة الآداب والفنون

3

12

Department of Computer Engineering

قسم هندسة الحاسوب

8

13

Department of Electrical Engineering

قسم هندسة الكهرباء

8

Example: Our university’s Organizational Structure

28 of 102

2. Registering a new employee (by the system admin)

29 of 102

30 of 102

3. User Login / Logon / Sign in

31 of 102

32 of 102

4. User Logout / Logoff / Sign out

  • The authenticated user should be able to logout when they want to.
  • The authenticated user should be automatically logged out when their cookie/session which stores their info expires.

33 of 102

5. Forgot password?

  • The login user interface should have an option called: "Forgot your password?" which when clicked, redirects the user to a different user interface.

34 of 102

Forgot password Scenario:

35 of 102

An email with a secret token will be sent to the user to reset their password:

36 of 102

The user will be allowed to reset their password only if the clicked link is valid and not expired:

37 of 102

38 of 102

6. Send a new workflow (email)

The authenticated user can send a workflow to the people he/she is allowed to send to according to his/her position in the organizational structure/hierarchy.

39 of 102

6.1 Convenient Rich-Text Editor

40 of 102

6.2 Attach multiple files with the email before sending.�+ The drag and drop feature

41 of 102

7. View Inbox Page

Inbox page shows the user all their workflows which were received from other users. Emails where users put you as a direct recipient (consignee)

42 of 102

8. View CC (Carbon Copy) page

CC page shows the user all their workflows which were received from other users. Emails where users put you as a CC recipient (not a direct consignee)

43 of 102

9. View Follow-up page

Follow-up page shows the user all their workflows which were sent by him/her. Emails which the user sent/created.

44 of 102

10. Archiving emails

  • Archiving lets you tidy up your inbox, CC, and Follow-up pages - by moving messages into you’re the archive, so you don't have to delete anything.

45 of 102

  • The email has been archived:
  • Once the email is inside the archive, you can move it outside the archive to return to its original folder.

46 of 102

11. Pin / Unpin an Email

  • This feature helps the user to always keep the most important emails on the top of the table.

47 of 102

12. On request pagination

  • Imagine the delay that is caused when the user views their inbox that contains more than 1000 records for example!
  • Emails should be fetched from the server only on-demand. Which means: Don’t fetch huge amount of data at once. Instead, fetch data in batches (على دفعات)

48 of 102

13. Show a chronological stack/sequence of all "actions" or "replies" on this specific email

49 of 102

14. Reply / forward / add new action to the currently clicked email

50 of 102

15. Print the page as PDF

Sometimes the user needs to have a physical copy of an email. So, once the user has clicked on a specific email record, the user can click on print page button to provide a .pdf or a .doc version of the chronological stack/sequence of all "actions" or "replies".

51 of 102

52 of 102

16. Search (filter) Emails

53 of 102

17. Fetch list of employees this user can message

54 of 102

55 of 102

56 of 102

57 of 102

Summary of all types of consignees:

58 of 102

18. Switch to another position while logged in

• Since the employee can have more than one position,• although, the employee will have only one account, but he/she can determine in which position he/she is currently logged in.

59 of 102

19. Update basic info

The user can update their basic information, such as: their full name, phone number, birth date, city of residence, gender, marital status, and so on.

60 of 102

20. Change password

The authenticated user (user who is logged in) can change their password

61 of 102

21. Search Employees

Any user can reach this page to browse and search the list of current employees in the organization. Of course, the non-admin users have the view access only. They cannot edit other employees' information.

62 of 102

63 of 102

22. Manage employees' positions, job titles, and classifications (for admin)

  • The admin can assign new positions with job titles and classifications to an employee.
  • Remove some of the current positions assigned to an employee
  • Update the current positions, job titles, and classifications of an employee.

64 of 102

23. Create a direct messaging channel for real-time chat

  • Aside from the email workflow subsystem, let's now talk about another subsystem, which is the Real-time chatting (instant messaging) . �
  • Each user can create a channel with any other user.

65 of 102

user-friendly interface

66 of 102

Showing details for each sent message:

67 of 102

24. Create a group channel for real-time chat

  • Each user can create a group channel and invite any other user to it.
  • The other user can accept the invitation or reject it.
  • The user who created the group/channel will be considered as the group's admin.

68 of 102

25. Add and remove members from a channel + Rename channel

After creating the channel, the channel's admin can add new members or remove any of the current members.

69 of 102

26. Receive push notifications

  • Push notification is an automated message sent by the web application to the user �when the user is a way.

70 of 102

WebSockets: an advanced technology that makes it possible to open a two-way interactive communication session between the user's browser and a server.

71 of 102

Non-Functional Features

72 of 102

These are system characteristics other than the activities the system must perform or support.

1. Usability Requirements

Operational characteristics related to users

  • 1.1 Well defined color schemes

73 of 102

74 of 102

1.2 Ease-of-Use, Ease-of-Learn

In order to make it easier for users to learn how to use the system properly in a timely manner, we have provided help buttons that show guidance messages:

75 of 102

1.3 Responsive User Interfaces

We plan to design all user interfaces to be responsive on almost all screens with different sizes.

76 of 102

Desktop View �(Large screens)

77 of 102

Tablet/Mobile View� (Medium & Small screens)

78 of 102

1.4 Show alert dialogs before executing a critical action

Confirmation dialogs helps reducing user errors (when not overused)

79 of 102

1.5 Show tooltips & snackbars

Tooltip

Snackbar (alert)

80 of 102

2. Security

  • the Login functional requirement, the application is password-protected.
  • All passwords will be hashed before stored in the database

Hashed passwords stored in the database

BCrypt is based on the Blowfish block cipher cryptomatic algorithm and takes the form of an adaptive hash function.

For authentication & authorization: JSON Web Token is for creating data with encryption whose payload holds JSON that asserts some number of claims.

81 of 102

Methodology

(Technologies)

82 of 102

Overview of Implementation Stack

Integrated Development Environment

  • Visual Studio Code

User Interface Design & Prototyping

  • Adobe XD

83 of 102

Front-End Technologies

  • HTML5
  • SASS SCSS Preprocessor
  • React.js JavaScript Library
  • React Material UI

84 of 102

Why we chose ReactJS over other JavaScript libraries

This graph is a comparison that shows how the most popular JavaScript front-end libraries have trended over time based on use of their tags since 2008, when Stack Overflow was founded.

85 of 102

Back-End Technologies

  • Node.js
  • Express.js framework

86 of 102

Why we chose MySQL as the Database Management System

  • Since our project requires a very structured data, SQL is a great choice.

87 of 102

Database

  • MySQL database
  • Sequelize ORM (Object Relational Mapping)

88 of 102

Software Design

89 of 102

Database Relational Schema Diagram

90 of 102

Employee Subsystem

91 of 102

Organizational Hierarchy Subsystem

92 of 102

Workflow Subsystem

93 of 102

Instant Messaging (Realtime Chat) Subsystem

94 of 102

Challenges

95 of 102

  • Learning new technologies
  • Short time with huge project

  • Frquent updates causing versions conflicts.
  • Multiple resoureses of learning

96 of 102

  • Due to the frequent Israeli penetrations of the university’e campus, it was hard to meet with the team at the university.

97 of 102

Future Vision

98 of 102

1. Deploying the System

  • During the coming summer semester, we will be testing the system in the production environment on a small group of people – such as the staff of computer Systems Department.

99 of 102

2. Marketing the System

  • The next step is planned to be marketing the system through the internet for interested clients, such as organizations and start-ups.

  • If an organization is interested in our system, then they can request a demo then pay for the system to be deployed on the organization's domain. Then our responsibility will be to offer the consistent support for the system.

100 of 102

Closure

101 of 102

الخاتمة موجودة في هذه الورقة:

102 of 102

Prepared by:

Faris Hatem Abu Ali

201810408

Ahmad Mohammad Hamadneh

201911155

Sondos Ghassan Jarrar

201811910

Ahmad Othman Marie

201811346

Supervised by:

Mohamed Khalil, PhD