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 👇
https://drive.google.com/file/d/1OXVQ2hIC8Wc7Fxy2aGu4qBtuP7D7ndt2/view?usp=sharing
- 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.
- 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.
- 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:
-
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.
-
Attach multiple files with the email before sending. In addition to the drag and drop feature
-
Inbox page shows the user all their workflows which were received from other users. Emails where users put you as a direct recipient (consignee)
- 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)
- Follow-up page shows the user all their workflows which were sent by him/her. Emails which the user sent/created.
- 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.
- 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
- 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".
• 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.
- 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.
- 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.