Requirements
Problem statement
Today, with the explosion of technology and the trend of globalization, almost everyone has smartphone and can connect to the Internet So, they can easily find many different jobs anywhere, anytime Besides, many businesses and companies want to recruit people with the right expertise for the job position, which is also a challenge Realizing that potential market, our team has built and developed a job recruitment website This website connects employees and employers with convenience in posting candidate information and finding suitable jobs.
Currently, the application provides the main language is English and allows to expand more languages in the future.
Glossary
This document is used to define terminology specific to the problem domain, explain terms, which may be unfamiliar to the reader of the use- case description or other project documents Often, this document can be used as an informal data dictionary, capturing data definitions so that use-case description and other project documents can focus on what the system must do with the information.
As an end user, directly use the main services of the application such as login, search, CV, …
As an end user, directly use the main services of the application such as login, jobs information, …
As an end user, but can only view information about Employers, Employees Jobs
A paid position of regular employment contains information about title, category, requirement, …
A person whose job is to ensure that the site is free of harmful jobs or abusive activities This entails deleting harmful jobs and users with abusive activities. System Notifications
These are the messages that the administrator sends to all users regarding system problems.
A record about a user/administrator containing information about his/her name, email address and password Each account has a unique email address and a password, which are used to identify the user/administrator and grant them access to secure parts of the system.
Supplementary specifications
Describe the constraints as well as special requirements of the customers for the system, this is also a document issued to the customers for approval and as a reference for the design, implementation and testing of the system.
The model is deployed at recruitment service companies across the country.References
Multiple user must be able to perform their works concurrently.
The software must be easy to use so that a new user can learn how to use the system.
The user interface has to be friendly and intuitive.
The system responds to high frequency of access, 24/7 response time.
The system must operate reliably.
Fast data import and export speed, the results are returned no more than 5 seconds after manipulation.
Confidentiality of personal information of users.
Only the user who owns the user’s name and password can log in and use the functions corresponding to the account type.
The system must provide a responsive web-based interface usable on computers and mobile devices.
Figure 1.4.2 Use- case diagram from the Employees perspective.
Figure 1.4.3 Use- case diagram from the Employers perspective.
Figure 1.4.4 Use- case diagram from the Visitors perspective.
Figure 1.4.5 Use- case diagram from the Administrator perspective.
This use-case describes how a user logs into the system.
This use-case starts when the actor wishes to Login to the system.
1 Actor enters his/her email and password.
When user enters incorrect email and/or password, the system displays an error message, requests the user to re-enter it Now, the user can stay on the login screen and re-enter the information correctly, or they will cancel the login, at which point the use- case ends.
Users who want to use the system must log in, otherwise they are visitors.
The system has the login screen displayed.
The user already has an account.
If the use case was successful, the actor is now logged into the system If not, the system state is unchanged.
User declares some personal information to register an account to use the system. Flow of events:
1 User chooses Who she/he is?
2 The system forwards to the registration screen suitable for each type of user.
3 User enters information including name, email, password and if you are Employers, you must enter the company type
4 The system validates the information entered by the user.
5 User presses “REGISTER” button 6 Successful account creation and redirect user to login page
In the 3 step of the Basic Flow, if the user enters the wrong information or omits a rd certain field, the system will mark the wrong input field and request to re-enter it. Special Requirements
This is only a function for users who want to use the services.
The system has the register screen displayed.
User does not have a system account and has all the information required by the system (like email, name, …).
The user creates an account successfully if all valid data is entered, otherwise, the screen will report an error and stay on until the data in all fields meet the requirements. Extension Points
User edits his/her account profile
1 The system receives the editing request from the user and displays the screen information form.
2 User selects the information fields he/she wants to change, makes changes and requests the system to record.
User must not leave the required fields blank.
User must not enter new information in the wrong format or not meet the requirements.
Users have logged into the system and can open the interface to change information. Users have information that need to be changed or have not declared information. Post-Conditions
The system notifies user that information has been edited successfully.
User logs into the account to change the password when necessary.
1 User selects “Change Password” field.
2 User enters new password; then requests the system to record.
In the second step of the Basic Flow, when entering the wrong format, the system will report an error and notify the wrong fields for users to re-enter.
User must not leave the required fields blank.
User must not enter new information in the wrong format or not meet the requirements.
Users have logged into the system and can open the interface to change password.Post-Conditions
The system notifies user that password has been changed successfully.
This use case describes how a Candidate updates his/her profile in the system The system displays the following information in editable fields and asks the Candidate to make changes to his/her profile:
*Add a new item in each editable fields (include: Professional
Qualifications/Language Proficiency/Training & Workshop, Referees/Academic Qualification/Working Experience).
1 User selects field they want to add 2 The system forwards to the screen suitable for each of fields.
3 User selects “Add New” button, enters the required fields and requests the system to record.
4 The system validates the information entered by the user.
1 User selects field they want to edit.
2 The system forwards to the screen suitable for each of fields.
3 User selects “Edit” button in the existing items in editable fields which they want to edit then , makes changes and requests the system to record.
4 The system validates the information entered by the user.
*Delete item in each editable fields (include: Professional Qualifications/Language Proficiency/Training & Workshop, Referees/Academic Qualification/Working Experience):
1 User selects field they want to edit.
2 The system forwards to the screen suitable for each of fields.
3 User selects “Edit” button in the existing items in editable fields which they want to delete.
4 The system sends a confirmation message to the user.
5 The user chooses whether to agree to the deletion or not
6 The system deletes that information of the user if employees agree.
If any of the above fields are not filled in, the system displays an error message The Candidate can continue making changes to the update form or cancel the update, at which point the use case ends.
*Add a new item/ Edit items:
User must not leave the required fields blank.
User must not enter new information in the wrong format or not meet the requirements.
Only users who have created a new Professional Qualification before can delete. Pre-Conditions
Users have logged into the system and can open the interface.
The system notifies user that item has been changed successfully
The screen shows the newly added information section.
The screen does not show the information that has just been deleted.
This use case describes how a Candidate views list of his applied jobs.
1 User selects “Applied Job” field in the profile section.
Display the list of jobs on the screen that the Employees has applied to the employers. Extension Points
When Employees want to view CV.
1 User selects “View My CV” button in the profile section.
Users have logged into the system and can open the interface to view CV.
The system redirects to the screen that includes information required in a CV. Extension Points
When user wants to applied jobs.
1 The system displays a list of companies for Employees to choose the right job for them.
2 After careful consideration, Employees select “Apply This Job” button to confirm the application for that company.
3 The system confirms and updates user information.
Employees can not apply for the same job twice.
Users have logged into the system and can open the list of companies or through search.
If the use case was successful, the system will notify Employees that they have successfully applied for the job.
When the user wants to search jobs by filter.
1 The user must choose job category and the country they want.
2 The user clicks on the search icon to display the required jobs.
If the use case was successful, the system will filter the required jobs and display them on the screen.
This use case describes how a Company post news about jobs to the website. Flow of events:
1 The user selects “POST A JOB” field to display screen interface.
2 The user enters information in the required fields and presses the confirm button to record by the system.
In the second step of Basic Flow, if the user entered incorrect format or left blank, the system will notify the user to re-enter it.
Users have logged into the system and can open the interface.
If the use case was successful, the system will notify Employers that they have successfully posted a job.
This use case describes the recruitment information of a company.
1 The user selects “Company Overview” field to display screen interface. Alternative Flows
Users have logged into the system and can open the interface.
1.5.12View applicants in each job
This use case describes how a Company views list of Candidates applied.
1 This use case starts when the Company requests to view list of Candidates
The Company must be logged into the system.
This use case allows a Company to remove a recruitment information from the system.
This use case starts when a Company wishes to remove a recruitment information from the system.
1 The system displays list of news posted by this Company.
3 The system deletes the new from the system.
If the Company decides not to delete the new, the removal is cancelled and the use case is re-started at the beginning.
The Company must be logged into the system.
If the use case was successful, the new is remove from the system Otherwise, the
Detail Description
This use-case describes how a user logs into the system.
This use-case starts when the actor wishes to Login to the system.
1 Actor enters his/her email and password.
When user enters incorrect email and/or password, the system displays an error message, requests the user to re-enter it Now, the user can stay on the login screen and re-enter the information correctly, or they will cancel the login, at which point the use- case ends.
Users who want to use the system must log in, otherwise they are visitors.
The system has the login screen displayed.
The user already has an account.
If the use case was successful, the actor is now logged into the system If not, the system state is unchanged.
User declares some personal information to register an account to use the system. Flow of events:
1 User chooses Who she/he is?
2 The system forwards to the registration screen suitable for each type of user.
3 User enters information including name, email, password and if you are Employers, you must enter the company type
4 The system validates the information entered by the user.
5 User presses “REGISTER” button 6 Successful account creation and redirect user to login page
In the 3 step of the Basic Flow, if the user enters the wrong information or omits a rd certain field, the system will mark the wrong input field and request to re-enter it. Special Requirements
This is only a function for users who want to use the services.
The system has the register screen displayed.
User does not have a system account and has all the information required by the system (like email, name, …).
The user creates an account successfully if all valid data is entered, otherwise, the screen will report an error and stay on until the data in all fields meet the requirements. Extension Points
User edits his/her account profile
1 The system receives the editing request from the user and displays the screen information form.
2 User selects the information fields he/she wants to change, makes changes and requests the system to record.
User must not leave the required fields blank.
User must not enter new information in the wrong format or not meet the requirements.
Users have logged into the system and can open the interface to change information. Users have information that need to be changed or have not declared information. Post-Conditions
The system notifies user that information has been edited successfully.
User logs into the account to change the password when necessary.
1 User selects “Change Password” field.
2 User enters new password; then requests the system to record.
In the second step of the Basic Flow, when entering the wrong format, the system will report an error and notify the wrong fields for users to re-enter.
User must not leave the required fields blank.
User must not enter new information in the wrong format or not meet the requirements.
Users have logged into the system and can open the interface to change password.Post-Conditions
The system notifies user that password has been changed successfully.
This use case describes how a Candidate updates his/her profile in the system The system displays the following information in editable fields and asks the Candidate to make changes to his/her profile:
*Add a new item in each editable fields (include: Professional
Qualifications/Language Proficiency/Training & Workshop, Referees/Academic Qualification/Working Experience).
1 User selects field they want to add 2 The system forwards to the screen suitable for each of fields.
3 User selects “Add New” button, enters the required fields and requests the system to record.
4 The system validates the information entered by the user.
1 User selects field they want to edit.
2 The system forwards to the screen suitable for each of fields.
3 User selects “Edit” button in the existing items in editable fields which they want to edit then , makes changes and requests the system to record.
4 The system validates the information entered by the user.
*Delete item in each editable fields (include: Professional Qualifications/Language Proficiency/Training & Workshop, Referees/Academic Qualification/Working Experience):
1 User selects field they want to edit.
2 The system forwards to the screen suitable for each of fields.
3 User selects “Edit” button in the existing items in editable fields which they want to delete.
4 The system sends a confirmation message to the user.
5 The user chooses whether to agree to the deletion or not
6 The system deletes that information of the user if employees agree.
If any of the above fields are not filled in, the system displays an error message The Candidate can continue making changes to the update form or cancel the update, at which point the use case ends.
*Add a new item/ Edit items:
User must not leave the required fields blank.
User must not enter new information in the wrong format or not meet the requirements.
Only users who have created a new Professional Qualification before can delete. Pre-Conditions
Users have logged into the system and can open the interface.
The system notifies user that item has been changed successfully
The screen shows the newly added information section.
The screen does not show the information that has just been deleted.
This use case describes how a Candidate views list of his applied jobs.
1 User selects “Applied Job” field in the profile section.
Display the list of jobs on the screen that the Employees has applied to the employers. Extension Points
When Employees want to view CV.
1 User selects “View My CV” button in the profile section.
Users have logged into the system and can open the interface to view CV.
The system redirects to the screen that includes information required in a CV. Extension Points
When user wants to applied jobs.
1 The system displays a list of companies for Employees to choose the right job for them.
2 After careful consideration, Employees select “Apply This Job” button to confirm the application for that company.
3 The system confirms and updates user information.
Employees can not apply for the same job twice.
Users have logged into the system and can open the list of companies or through search.
If the use case was successful, the system will notify Employees that they have successfully applied for the job.
When the user wants to search jobs by filter.
1 The user must choose job category and the country they want.
2 The user clicks on the search icon to display the required jobs.
If the use case was successful, the system will filter the required jobs and display them on the screen.
This use case describes how a Company post news about jobs to the website. Flow of events:
1 The user selects “POST A JOB” field to display screen interface.
2 The user enters information in the required fields and presses the confirm button to record by the system.
In the second step of Basic Flow, if the user entered incorrect format or left blank, the system will notify the user to re-enter it.
Users have logged into the system and can open the interface.
If the use case was successful, the system will notify Employers that they have successfully posted a job.
This use case describes the recruitment information of a company.
1 The user selects “Company Overview” field to display screen interface. Alternative Flows
Users have logged into the system and can open the interface.
1.5.12View applicants in each job
This use case describes how a Company views list of Candidates applied.
1 This use case starts when the Company requests to view list of Candidates
The Company must be logged into the system.
This use case allows a Company to remove a recruitment information from the system.
This use case starts when a Company wishes to remove a recruitment information from the system.
1 The system displays list of news posted by this Company.
3 The system deletes the new from the system.
If the Company decides not to delete the new, the removal is cancelled and the use case is re-started at the beginning.
The Company must be logged into the system.
If the use case was successful, the new is remove from the system Otherwise, the system state remains unchanged.
The user exits the current access account.
1 The user clicks the logout button on the interface.
The Company must be logged into the system.
Use-case analysis
Architectural analysis
2.1.1 High-level organization of the model
The above figure describes the high-level organisation of the software system The system consists of three layers:
The Application layer contains the design elements that are specific to each use case of the system
The Business Services layer encapsulates some key abstractions and services common to all use cases It is accessible from the Application layer
The Middleware layer offers services to enable data communication and management on distributed systems.
Figure 2-2 Key abstractions used in the application
Employer: A record about a company account Each company account has a unique user ID and a password, which is used to identify name of each company, and the recruitment news - this company hasposted.
Employee: A record about a candidate account Each candidate account has a unique user ID and a password, which is used to identify who is candidate, and the recruitment news - this candidate has applied.
Jobs: A record about a jobs account Each jobs account has a unique user ID, which is used to identify employer, and the function can be done.
Use-case realisations
2.2.1 Use-case realisations: sequence diagrams
Figure 2-3 Sequence diagram for login use-case
Figure 2-4 Sequence diagram for register use-case
Figure 2-5 Sequence diagram for update personal information use-case
Figure 2-6 Sequence diagram for change password use-case
Figure 2-7 Sequence diagram for update Employee’s achievements use-case(edit & add item)
Figure 2-8 Sequence diagram for update Employee’s achievements use-case(delete)
Figure 2-9 Sequence diagram for view applied jobs use-case.
Figure 2-10 Sequence diagram for view CV use-case.
Figure 2-11 Sequence diagram for apply job use-case.
Figure 2-12 Sequence diagram for search jobs use-case.
Figure 2-13 Sequence diagram for post jobs use-case.
Figure 2-14 Sequence diagram for view jobs information use-case.
Figure 2-15 Sequence diagram for view applicants use-case.
Figure 2-16 Sequence diagram for delete posted jobs use-case.
Figure 2-17 Sequence diagram for logout use-case.
2.2.2 Use-case realisations: views of participating classes
Figure 2-18 VOPC for Login use-case.
Figure 2-19 VOPC for Register use-case.
Figure 2-20 VOPC for update personal information use-case.
Figure 2-21 VOPC for change password use-case.
Figure 2-22 VOPC for update Employee’s achievements use-case.
Figure 2-23 VOPC for view applied jobs use-case.
Figure 2-24 VOPC for view CV use-case.
Figure 2-25 VOPC for apply jobs use-case.
Figure 2-26 VOPC for search jobs use-case.
Figure 2-27 VOPC for post jobs use-case
Figure 2-28 VOPC for view jobs information use-case
Figure 2-29 VOPC for view applicants use-case
Figure 2-30 VOPC for delete posted jobs information use-case
Figure 2-31 VOPC for logout use-case
User granularity: three roles – USER, MANAGER and ADMIN
Security rules: o Only registered USER/MANAGER/ADMIN may log into the system o Only logged in users may view and edit their own account profile o A news could be deleted by its owner or admin o A news can not be edited day Update: 500 per day Delete: 50 per day day Delete: 500 per day day Read: 10,000 per day Update: 5,000 per day Delete: 1,000 per day
Use-case design
Identify design mechanisms
Analysis mechanism Design mechanism Implementation mechanism
Security Web tokens Java Spring framework
Distribution REST API Java Spring framework
Table 3-2 Design and implementation mechanisms
Describe the run-time architecture
Figure 3-6 The system’s process model
Use-case design
After incorporating the Database subsystem, the model’s sequence diagrams are updated as follows Some method parameters are elided for conciseness and legibility – they are shown in full in the Class Design section.
Figure 3.8 Design sequence diagram for Login use-case
Figure 3.9 Design sequence diagram for Register use-case
Figure 3.10 Design sequence diagram for update personal profile use-case
Figure 3.11 Design sequence diagram for change password use-case
Figure 3.12 Design sequence diagram for Employee’s achievements (add & edit) use- case
Figure 3.13 Design sequence diagram for Employee’s achievements (delete) use-case
Figure 3.14 Design sequence diagram for view applied jobs use-case
Figure 3.16 Design sequence diagram for apply jobs use-case
Figure 3.17 Design sequence diagram for search jobs use-case
Figure 3.19 Design sequence diagram for view jobs information use-case
Figure 3.20 Design sequence diagram for view applicants use-case
Figure 3.21 Design sequence diagram for delete jobs use-case
3.4.2 Design view of participating classes
The updated views of participating classes for each use-case are described in the Class Design section.
Class design
Figure 3.21 Design VOPC for login use-case
Figure 3.22 Design VOPC for register use-case
Figure 3.23 Design VOPC for update personal information use-case
Figure 3.24 Design VOPC for change password use-case
Figure 3.25 Design VOPC for update Employee’s achievements use-case
Figure 3.26 Design VOPC for view applied jobs use-case
Figure 3.27 Design VOPC for view CV use-case
Figure 3.28 Design VOPC for apply jobs use-case
Figure 3.28 Design VOPC for search jobs use-case
Figure 3.29 Design VOPC for post jobs use-case
Figure 3.31 Design VOPC for view applicants use-case
Figure 3.31 Design VOPC for delete jobs use-case