Skip to content

FarisStack/Correspondence-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Correspondence Management System - Email Workflow Tracking & Instant Messaging Channels.

This repository holds the source-code for my graduation project. This project was submitted in partial fulfilment of the requirements for the bachelor's degree in computer systems engineering. Below attached the project's thesis with a brief presentation 👇

Thesis 📗

https://drive.google.com/file/d/1OXVQ2hIC8Wc7Fxy2aGu4qBtuP7D7ndt2/view?usp=sharing

PowerPoint Presentation 🖼️

https://docs.google.com/presentation/d/1WG8mI9JSiwxuydh7glXp416hBfBjR7a8/edit?usp=sharing&ouid=101911150244059699323&rtpof=true&sd=true

F-2

Abstract

  • The idea of developing a Correspondence Management System (CMS) was first inspired by discovering our university's HRM "Human Resources Management System".
  • 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.
  • 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.

image

image

Problem Statement

image

image

Functional Features

1. Build the Organizational Structure

image image image image


2. Registering a new employee

image image


3. User Login

image


4. User Logout

  • 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. image

5. Forget Password

image image image

  • An email with a secret token will be sent to the user to reset their password:
  • The user should be allowed to reset their password only if the clicked link is valid and not expired: image image

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. image

  • Convenient Rich-Text Editor image

  • Attach multiple files with the email before sending. In addition to the drag and drop feature image

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


7. View CC 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) image

8. 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. image

9. 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. image

10. Pin / Unpin an Email

image


11. 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 image

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

image


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

image


14. 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". image image

15. Search (filter) Emails

image


16. Fetch list of employees this user can message

image image image image image


17. 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. image


18. Update Employee's 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. image

19. Change Password

image


20. Search Employees

image image


21. 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. image

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

image

image


23. Create a group channel for real-time chat

image


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

image


25. Receive Push Notifications

image

image


Database Relational Schema

image