Criteria A: PlanningThe ClientMy client for this project is Melanie Huang, a Human Resource manager at a communication network company. One of her responsponsibilities is to manage the holiday leave system for the company. Currently, she is using excel to handle all the files of the employee details and keep track of the vocation time of all the employees. In addition, she needs to manually calculate the number of holidays the employees can have yearly based on their tenures and prorated vacation time remaining for leaving employees, and to approve the leave requests. (see Appendix 1: Initial Client Interview A1, A2)Product RationaleIn the interview that I had with my client, my client expresses that she finds the current manual holiday leave system to be too complexed and time-consuming and there are some accidental mistakes when handling and processing data (see Appendix 1: Initial Client Interview A1). She says that “I am really looking for an application that help me to manage holiday leave automatically to solve all the problems”(see Appendix 1: Initial Client Interview A2) My client also states that she “has already researched and tried some online websites and applications”, but none of them satisfy her requirements. All the applications are paid monthly, not allowing her to keep the previous records if stops paying for the plan. Also, some of the applications do not allow her to customize the system according to the certain leave policies at the company (see Appendix 1: Initial Client Interview A3). In addition, my client is looking for a place “that the employees could submit their holiday leave requests through” (see Appendix 1: Initial Client Interview A7). Hence, a java desktop application on the laptop that enables my client to manage the employee details from and out of a database and a website linked through servers to the application that allows employees to submit holiday leave requests is an effective solution for my client’s problem. Software RationaleSince my client implied that “Most of the time during work, I use my laptop, which is Microsoft”, a java application will be the best fit (see Appendix 1: Initial Client Interview A4). I will use Java Object Oriented Programming language; this allows me to create different objects, such as different employees in the class employee. Encapsulation, inheritance, polymorphism and etc in OOP enables me to maintain the program easier, store data more effective and test the code faster. Moreover, Java is one of the largest programming languages and unlike Swift, the programming language that can only be used on IOS systems, it is compatible in many operating systems. Hence, even if my client later switch her Microsoft laptop to a Macbook, she is still able to use the application. Netbean will be used to create the Swing interface, providing me a visual GUI builder to work with. Apart from this, I also need to create a database for all the information of the employees. Database distinguishes from a normal java class from its extensibility, expandability and accessibility. It will be created by using MySQL, which enables me to connect to different servers and share data between multi-user applications, unlike SQLite is for single-user application. MySQL is free, secure, flexible and fast; the language it uses SQL is easy to learn and use. Furthermore, MySQL is granted General Public License, making the future development and expansion of the application easier and more conveniently. Lastly, I will use servlet to create a website for the employees to submit holiday leave requests. The reason that I choose servlet because it uses the same programming language as Netbean, Java, unlike Dreamweave, which uses HTML. Criteria for SuccessTo meet my client’s needs, my final project must: Allow the user to add or edit or delete employees and their details, including names, ID numbers, positions and tenuresCalculate the number of holidays employees can have yearly based on their tenure (see Appendix 1: Initial Client Interview A3)Calculate prorated vacation days remaining if the employees are leaving (see Appendix 1: Initial Client Interview A3)Keep track of when the employees leave on holiday and their remaining vacation days (see Appendix 1: Initial Client Interview A2)Regenerate the days of holiday at the end of each year (see Appendix 1: Initial Client Interview A2)Search the employee through names and IDs (see Appendix 1: Initial Client Interview Q2+A5)Send alert emails to those employees that are low on vacation days remaining (see Appendix 1: Initial Client Interview A6)Allow employees to check their vacation days remaining and submit holiday leave requests (see Appendix 1: Initial Client Interview A7)Provide information to approver the employee’s roles and the number of employees taking that roles would be on holiday during those periods (see Appendix 1: Initial Client Interview A7), based on such information, the approver will accept or reject holiday requestAppendix 1: Initial Client Interview(Q1) Me: What is the biggest challenge or problem you are facing? (A1) Client: As I am the HR manager at the company, I need to handle all the employee details and personal information. However, currently, I am managing all the files manually, including the holiday leave system. Using excel for the holiday leave system is complicated; it takes me a lot of time and I sometimes make mistakes, such as entering wrong formulas or accidentally deleting some data. (Q2) Me: Can you be more specific about what you do with the holiday leave system? (A2) Client: So, the holiday leave system includes all the personal details of the employees, such as their names, ID numbers, tenures and positions. It keeps track of the remaining vacation days that each employee has left in a year and when employees leave on holiday and regenerate the days at the end of each year. There are also a lot of leave policies that I need to create formulas for. I am really looking for an application that help me to manage holiday leave automatically to solve all the problems. (Q3) Me: Oh, I see. Have you tried any existing applications that might help you solve the problems? What are the limitations of those applications? (A3) Client: I have researched about different ways to manage the holiday leave system automatically and I tried some online websites and applications. But, the problem is that all of them are not free, meaning that if I stop buying the plan monthly, the previous records would be vanished. I would like to have an application that can store all the data permanently on a device and ideally that application is free. Another problem is that some applications do not allow me to customize the specific policies for holiday leave that we have at the company, such as the vocation days are generated according to the tenure of an employee and if an employee leaves the company, the company needs to pay him/her according to the prorated vacation time remaining for him/her. (Q4) Me: Okay, I think I get your problem now. Maybe I can create an application for you to manage those data and do all the calculations automatically. So, do you prefer an app on mobile phone and iPads or a java application that works on the laptops? (A4) Client: Most of the time during work, I use my laptop, which is Microsoft. (Q5) Me: Oh, then a java application will be perfect. Also, some functions like searching up the employees through IDs, names and positions and checking who’s on holiday on a specific day would probably help you, right? (A5) Client: Yes, absolutely. I have another two requests. The first one is that I could filter the employees according to number of vacation days they have left, so I could remind them if someone does not have holiday balance left. (Q6) Me: Actually, maybe I could add an additional function, which could send alert emails automatically to those employees that are low on vacation days remaining. (A6) Client: That will be great. (Q7) Me: What is the other request? (A7) Client: I hope that there will be some way that the employees could submit their holiday leave requests through and then the application should provide me the information on the employee roles and the number of employees’ taking that roles would be on holiday during those periods. Then, based on the information, I will decide whether to approve or reject the holiday leave requests. (Q8) Me: Oh, then this will be a lot more complexed since it involves server connection. Maybe I can create an additional webpage that allows the employees to log in to check their vacation balances and submit requests; then, the requests will be sent back to your application and be processed accordingly. (A8) Client: Sounds good.