Create a Java application which can be used by employers/employees.

Employee's data should be saved in a file named "employee.txt". Each employee has the following data:

  • personId (String)
  • name (String)
  • surname (String)
  • date of birth (Date)
  • password (String) - The password must start with a number and have more than 6 characters
  • yearsOfExperience (integer)
  • isEmpolyed (boolean)
  • employmentRequestId (null if the employee has not made any employment request)
  • companyId (null if the employee is not employed)

Employer's data should be saved in a file named "employer.txt". Each employer has the following data:

  • personId (String)
  • name (String)
  • surname (String)
  • date of birth (Date)
  • password (String) - The password must contain more than 8 characters
  • companyId (String)
  • companyName (String)
  • numberOfEmplyees (integer)
  • industry (String)

Job vacancies should be saved in a file named "vacancies.txt". Each job vacancy has the following data:

  • vacancyId (String)
  • companyId (String)
  • jobDescription (String)
  • isVacancyOpen (boolean)

When the application is started, this question should be displayed:

Are you an employee / employer / admin?

If the user's answer is "admin", then the admin password is required -> if the password is correct, then the application menu (for admins) is displayed:

1. Add a new employee in file "emplyee.txt"
2. Add a new employer in file "emplyer.txt"

If the given password is not correct no menu is displayed and the application is terminated. (The admin password should be 'admin'!)

If the user's answer is "employer", then the employer password is required -> if the password is correct, then the application menu (for employers) is displayed:

1. Add a new vacancy in file "vacancy.txt" (the companyId should be the same as the logged in
employer companyId)
2. View the list of all employees who are not employed.
3. View the list of all employees who are employed in his/her company
4. View the list of all employees who have applied for a vacancy from his/her company
5. Accept the application of an employee (the vacancy's isVacancyOpen should be set as false, employee's isEmployed should be set to true, employmentRequestId should be set to null and companyId should be set to the same value as the value of companyId in the accepted vacancy)
6. Terminate the program

If the given password is not correct no menu is displayed and the application is terminated.

If the user's answer is "employee", then the employee password is required -> if the password is correct, then the application menu (for employees) is displayed:

1. View the list of all job vacancies (only vacancies which are open)
2. Apply for a job vacancy (employmentRequestId should be set as the vacancyId)

If the given password is not correct no menu is displayed and the application is terminated.

Bonus requirement!

In the admin menu add options:

3. Display the company name which has added more job vacancies!
4. Enter the name of a company and display the names of all employees of this company!
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.