Development of a System to Manage Letters of Recommendation

Letter of Recommendation (LoR) is a letter which describes qualifications, skills, and abilities of the person being recommended. Students need to request a letter of recommendation from their instructors for the purpose of applying for jobs, internships and academic studies. The main obstacle which many students face is that instructors do not response quickly, especially if the students have graduated. On the other hand, the instructors find it difficult to manage the many requests they receive, especially at the end of the semester. The work in this paper presents the design, development and testing of system that aims to replace the traditional method of requesting/issuing LoRs with a more systematic standardized way. The developed system may be adopted to simplify, unify, and improve the process. The results showed that the developed system enhanced the communication between requesters and issuers, reduced the amount of time and effort comparing with traditional way and achieved the usability requirements. Keywords—Letter of recommendation; mobile application; letter of reference; android mobile application; LoR; standardized letters of recommendations


I. INTRODUCTION
For many people letters of recommendation are important as they convey an applicant's potential for success, and also highlight an applicant's qualities that cannot always be recognized from a curriculum vitae, test scores, or grades [1], [2]. However, writing a letter of recommendation requires effort from both the requester and the issuer of the recommendation letter. The traditional method of writing letters of recommendation lack standardization [3]-one evaluator's -extremely hard worker‖ could be another's -typical student.‖ Moreover, as stated in [2] a uniform set of format regarding letters of recommendation does not exist. Normally, both requesters and issuers have little experience in this process and consequently, the letter of recommendation process is random, and the issued LoRs are often shortened. Despite its limitations, many consider these letters essential [2]. Therefore, there is a necessity for a system to guide students in requesting and obtaining a letter of recommendation and for guiding instructors in issuing a letter of recommendation. This work aims at designing, developing and testing a mobile application that offers a communication bridge between requesters and issuers. It aims to simplify the process of requesting, generating, and receiving the LoR. The system will guide its users through the letter of recommendation process. The system utilizes a database of templates for to guide the issuer in the drafting and issuing of a letter of recommendation. Through the system, the requester can attach curriculum vitae, transcript and track the progress of requests. The requester can pick up her letter of recommendation or received as pdf file. The work in this paper is validated in real world test with students and faculty members from King Saud University, Riyadh, Saudi Arabia.
The remainder of the paper is organized as follows: Section 2 presents the background and discusses related works. Section 3 demonstrates the methodology. Section 4 presents the results and discussion of our system. Finally, Section 5 concludes the paper with future directions.
II. RELATED WORKS A -Letter of Recommendation‖, also known as a letter of reference, is a letter that indicate the skills, capabilities, interests, qualifications and abilities of the recommended person to show that persons' ability to perform a particular task, or her academic performance. Furthermore. recommendation letters are used by people for many different purposes such as applying for jobs, internships and academic studies [4]. There are different categories for recommendation letters for example, academic recommendations, employment recommendations [5].
Recommendation letters are letters that are issued by issuers who know the requester. Furthermore, they are supposed to help to get a good picture of the requester. For Example, if the requester says that he/she is hardworking, then the recommendation letters will support him\her. Figure 1 represents a general format of a letter of recommendation for employment or educational purposes.
Usually, the first paragraph of a letter of recommendation is about how the issuer of is connected to the requester. Which includes how the issuer know the requester, also why the issuer is allowed to recommend this requester. The second paragraph of letter of recommendation is about the person that the issuer is writing about. It includes the qualifications of that person and what he/she can do, and why the issuer is recommending that person. More than one paragraph can be written to give more details. If letter of recommendation is for a specific position of a job, it should contain information about how that person skills are matching the position they are applying for it and this can be added in the third paragraph. In the summary section, reasons of why the issuer is recommending that person www.ijacsa.thesai.org can be included. Some phrases can be added like, "strongly recommend", or "recommend without reservation" or "Candidate has my highest recommendation" to strengthen the previous words. In the last paragraph of letter of recommendation has an offer to give extra information. better to write issuers phone number in this paragraph [6].
In order to identify related works, the literature and similar websites have been studied. In addition, a comparison and a discussion between these systems and the proposed system is given. This can be useful for including the best features for the proposed system and finding limitations that require improvements. The work in [7] discussed the importance of having standardized letters of recommendation in residency applications and their relation with objective data. Furthermore, the study in [8] improved the validity of LORs by developing a standardized reference form. The author in [9] argue that letter writing should be a joint opportunity between mentor/supervisor/advisor and trainee/student. Several websites are available to create a letter of recommendation for a student or employee including Reference-Letter [10] which provides different phrases to build a personalized reference letter.
In addition, SampleTemplates [11], which provide many templates for letter of recommendation. Furthermore, FormSwift [12] which helps issuer to write letter of recommendation and exported as doc or PDF file. Indirectly, there are some universities that have their own LoR system such as Table 1 shows the comparison of all similar systems to help in visualizing and understanding the developed system.
According to this comparison, only the university systems supports having accounts and a follow up process to generate a letter of recommendation. Other systems are only one time use which will result in unstructured responses and without any consistency or standardization. University systems do not support having different type of letters or template. Hence, there is a necessity for a system to guide students in requesting and obtaining a letter of recommendation and for guiding instructors in issuing a letter of recommendation. Therefore, based on the comparison and discussion the developed system aims to simplify the process of requesting, generating, and receiving the LoR.

A. Overview
The identified solution involved the development of an Android application that offers a communication bridge between requesters and issuers. It aims to simplify the process of requesting, generating, and receiving the LoR. Figure 2 shows the process of recommendation letter using the proposed system.
The system has three types of users. Key among them is the Issuer, who will use the system to provide a letter of recommendation to the requester. The issuer normally has a technical skill and has knowledge of mobile application. The second user is the Requester, who will use the system to request letter of recommendation from an issuer. In addition, there is the Admin user, who is responsible for management of the system.

B. Architecture
The system architectural is a model that defines the behavior of a system. The suitable architecture for the proposed system is to be implemented as a client-server model architecture and MVC (see Figure 3). The proposed system needs centralized databases, and many users need to access the server's information at the same time. Since the proposed system requires that different data to be displayed to different users, the MVC architecture was adopted. Not only does MVC support multiple views of the data, but it also allows updating existing ones. Modular decomposition is a decomposition of system into sub-system called modules. There are two modules: object model and data-flow model. Since the proposed system follows object-oriented approach, object model which describe objects, class and relationship between them was adopted [16].

C. Analysis and Design
The system follows an Object-Oriented analysis and design approach instead of structured analysis and design approach as this approach guarantees that the system shall have longer life and less maintenance cost because most of the processes are encapsulated within the system [17]. In order to ensure that the system design fulfills its requirements, a user-centric design method was adopted. A survey was distributed among students and faculty. The results aid in the definition of the requirements and demonstrated the need for the system.
In Figure 4, the use-case diagram of the system is presented, which also shows the main actions that can be performed by the different users of the system. The system provides different interfaces depending on the user. The system utilizes a database of templates for to guide the issuer in the drafting and issuing of a letter of recommendation. The issuer can write the LoR utilizing the templates through the wizard or write her own custom LoR. In addition, the issuers will be notified if they have received a new request and can accept or reject this request. The requester can request academic, employment or general LoR and track the progress of a request. Also, the requester can attach curriculum vitae, transcript and track the progress of requests. The requester can pick up her letter of recommendation or received as pdf file.    The use case begins when the requestor chooses to request a LoR.
2 The system presents a form that asks the requestor to write the issuer's email, how to deliver LoR, purpose, upload her CV and transcript and introduce herself in brief information.
3 The requestor fills the form and uploads files. 4 The requestor chooses to submit or cancel the request. 5 The system checks if the issuer's email is not empty.
6. The system checks if the file is not empty. 7 The system accepts request and submits it to the issuer.
Alternative(s). Line 4: Requestor chooses to cancel; the system will allow the requestor to continue filling the form. Line 5: The system will ask the user to write issuer's email. Line 6: The system will ask the user to upload new files.

-
The system will display two options (using helpful statement or without helpful statements) 3 -The issuer selects the option 4 -The system display four steps if the issuer selets helpful statement to write LoR 5 -The issuer complete steps. 6 -The system display LoR as edit text to make issuer changes and the system will display in this edit text code number 7 -The system asks the issuer to confirm the request 8 -The issuer confirms. 9 -The system saves this LoR as pdf file to database and send it to requester.
Alternative(s): Line 8: Issuer chooses to cancel; the system will cancel the request.

D. Tools
The system is implemented using Android Studio version 2.2.3 and the programming language is java and xml for design. For database, Firebase real-time database was used. Following is a list of the varying hardware and software utilized in the development of the system:  Android mobile  Java: It's computer programing language that is object oriented and specially designed to have as dependencies as possible. It's intended to let application developers WORA (Write Once, Run Anywhere) [18].
 Android Studio [19]: is the officiall integrated development environment it built on JetBrains' IntelliJ IDEA software and designed specifically for Android development.
 Memu Play emulator [20] : is one of the powerful Android emulator. Because it is leading to high performance and unique multiple-Android-kernels support, Memu has more than 15 million users. Memu make the programmers able to Run the application in the pc without using an android mobile by creating a virtual device, you can select the device type tablet or specific mobile phone.
 Notepad++ [21]: is a free source code editor and Notepad replacement that supports several languages.
 Xampp [22]: open source package has been set up to be incredibly easy to install and to use.
 Android SDK [23]: it is a set of development tool used to develop applications for Android platform. IT includes debugging, libraries, Relevant documentation for the Android application program, interfaces and emulator created by Google. 521 | P a g e www.ijacsa.thesai.org  Extensible Markup Language (XML) [24]: It is a format which is like Hypertext Markup Language (HTML). Both XML and HTML contain markup symbols that describe page contents. The structure of the data is embedded with the data.
 Firebase database [25]: it is a real-time database, cloudhosted database, Data is stored as JSON., all of your clients share one Realtime Database instance and automatically receive updates with the newest data. Our system has some input fields, such as username, password and more, when the user fills out this information and hits submit, the application will pass the information to our API connector, then it will have submitted by java programming language to the firebase database.
 CPU Monitor Advanced Lite [26]: records historical information about processes running on your device.

E. Navigation and User Interface (UI)
A hierarchy diagram for the main layout of the system is shown in Figure 5. The system's user interface design gives a clear idea of how the system is interacting with its users. The interfaces were designed to be user friendly, simple and consistent. Figure 6 and Figure 7 show snapshot of Requester and Issuer interfaces, while Figure 8 presents how the system guides the Issuer in drafting, organizing and sending the LoR.

IV. RESULTS AND DISCUSSION
This section discusses the system testing which is the most important stage in life cycle of each system. System testing checks if the system is free from bugs and errors. Also, it ensures that the requirements have been met. The system was evaluated through different strategies including Unit testing, Integration testing, Performance, Stress testing and User Acceptance Testing (UAT).

A. System Evaluation
The objective of unit testing is to test the process of each component of the application separately, and to ensure that every component works as expected. Therefore, finding and fixing bugs is easier because we work on small units instead of one large unit [17]. All the components of the system passed this test.
Regression testing is defined as a kind of software testing to make sure that a new code change has not affected the existing work [17].
The system's functions were divided into components then each function was tested individually. However, before combining all the components, which will form the whole application, they must be tested together, to make sure that they work correctly and fix any bugs or problems that arise when combining the components. This is done by performing the Integration testing. First, component A and component B (Test 1) were tested together. Next, Test 1 was tested with component C and they worked correctly. This process repeatedly continued till all the components were integrated and tested to form the complete application. (IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 12, No. 1, 2021 522 | P a g e www.ijacsa.thesai.org  Performance testing is the process of determining the speed or effectiveness of the system. It measures the effects of running the system on the phone. Performance testing was done using CPU Monitor Advanced Lite [26]. Figure 9 displays the CPU usage over the last minute of our system. In the graph CPU utilization rate is 2%, the max use reached 6%.
Stress testing is the process that is used to determine and specify the robustness of the system. Also, it is used to see and observe the response of the system under loading from user [17]. To check the stress testing for the system, the Monkey command line tool [27] was used. The way this tool works is by sending pseudo-random stream of user events to a running emulator to act as a stress test on the system. The system worked as expected after 500 events generation.

B. User Acceptance Testing (UAT)
The goal of acceptance testing is to approve the system with respect to the requirements that was agreed on it before [28]. The total number of users who participated in the user acceptance testing was seven from the female section of Collage of Computer and Information Sciences, King Saud University. The users were on different level of education and www.ijacsa.thesai.org knowledge. The application's usability was measured based on two criteria:  Efficiency: by calculating the time that the user took to complete a task.
 Satisfaction: by asking the users to fill a survey to find out how the users actually, feel about the system. The results of the testing are shown on Table 4. It is noticed that the task -write the LoR‖ has the highest average. This can be explained because the user has to go through the process of issuing the LoR via the wizard. On the other hand, tasks -Request LoR‖, -Manage LoR requests‖ and -View requests‖ takes between 3 and 10 seconds only as they need simple clicking. In addition, some tasks that required writing statements like: -Edit wizard statements‖ and -Edit reject reasons‖ takes between 15 and 25 seconds. In comparison to traditional method currently being used, a majority of respondents agreed that the proposed system is quicker, easier and more convenient for the letter requesting/ issuing.

V. CONCLUSION AND FUTURE WORK
This paper presents an Android based mobile application to manage the process of recommendation letters. The current LoR process is ineffective because it lacks standardization, and it is time and effort consuming for both requesters and issuers. The purpose of the study is to automate and replace the traditional method of requesting and writing LoRs to make the process of recommendation letters easier. The system supports English language only, hence, as future work it is intended to expand the scope of the system to support iOS system and support Arabic language. Moreover, more features will be added such as search for university name to show the list of issuers that are already registered in the system.