Assignment requirement specifications:
The aim of this assignment is to create a job posting system. This system will allow users to enter
details about a job vacancy, and saved into a text file. These postings can also be searched using
various criteria and all matched postings will be displayed on a web browser.
For this assignment, you will need to create all the appropriate HTML, CSS, PHP and text files. As
with lab activities, you should save and test all your HTML, CSS and PHP files on Mercury in a
directory “~/cos30020/www/htdocs/assign1”. The text data file “jobs.txt” should be in the directory
“jobposts” under “~/ cos30020/www/data”. The sample screen shots are provided only to illustrate
the information requirement. It is expected that you create a much better user interface for this
Task 1 – Home Page index.php
This web page contains:
Your student SIMS number
Your email address
A statement: “I declare that this assignment is my individual work. I have not worked
collaboratively nor have I copied from any other student’s work or from any other source.”
A link to the post job vacancy into the system (postjobform.php)
A link to the job vacancy searching process (searchjobform.php)
A link to “about.php” page that tells us what you have attempted.
Sample screen shot of the home page:
Job Vacancy Posting System
Name: John Smith
Student ID: 1234567
I declare that this assignment is my individual work. I have not worked collaboratively nor have I
copied from any other student’s work or from any other source
Post a job vacancy
Search for a job vacancy About this assignment
Task 2 – Post Job Page jobpostform.php
This web page contains the blank form except for the date that enables a job posting to be submitted and saved. The requirements are as follow:
Req. 1. Job vacancy data contains:
Position ID (Text input type. NOT NULL, should be unique e.g. P0001). The code is 5 characters in length. It must start with an uppercase letter “P” followed by 4 digits.
Title (Text input type. NOT NULL, e.g. “IT Manager”). The title can only contain a maximum of 20 alphanumeric characters including spaces, comma, period (full stop), and exclamation point. Other characters or symbols are not allowed.
Description (Text area type. NOT NULL, e.g. “This position promotes and supports the use of information technology throughout the organisation.”). The description can only contain a maximum of 260 characters.
Closing Date (Text input type. NOT NULL, should initially contain the current date of the server in dd/mm/yy format e.g. 26/08/13 or 26/8/13. This can be edited by the user.)
Position (Radio button type with 2 options: Full Time or Part Time)
Contract (Radio button type with 2 options: On-going or Fixed term)
Accept Application by (2 checkboxes, Post, Email)
Location (Select option type, should initially be 3 dashes. The options are ACT, NSW, NT, QLD, SA, TAS, VIC and WA)
Req. 2. POST method for form submission is used.
Req. 3. Link to return to the Home page is provided.
Sample screen shot of the job vacancy posting form:
Task 3 – Process Post Job Page postjobprocess.php
This PHP page checks the input data, writes the data to a text file and generates the corresponding HTML output in response to the user’s request. The requirements are as follow:
Req. 1. All fields are mandatory.
a) The PHP page should not allow saving of job vacancy to the text file if any of these fields are not supplied or not valid (see rule in Task 1 – Step 1), and provide a proper error message to the user that includes links to return to the Home page and Post Job Vacancy page.
b) The date must also be validated to conform to the dd/mm/yy format.
c) Furthermore, the Position ID must be checked for its uniqueness within the text file.
Req. 2. Creation of the directory named “jobposts” on Mercury server inside “cos30020/www/data” to store the job vacancy text file (“jobs.txt”) is handled AUTOMATICALLY by the PHP script, if it does not exist.
COS30020 Assignment 1
Req. 3. Each job vacancy record should be saved in the text file called “jobs.txt”. Each record should be saved on one line, which means the next record should be saved in a new line (“\n”). Each field in a record should be separated by a tab (“\t”). The accept application by is stored as 2 separate columns.
Req. 4. A confirmation message should be generated for this entry followed by a link to return to the Home page, once the job vacancy is stored successfully in the file,
Task 4 – Search Job Vacancy Page searchjobform.php
This PHP page contains a form that accepts a job title search string. The requirements are as follow:
Req. 1. The search job vacancy page should contain an input text field for typing in the job title for searching the job vacancy information which was already saved in “jobs.txt”.
Req. 2. GET method for form submission is used.
Req. 3. Link to return to the Home page is provided.
Sample screen shot of search job vacancy page:
Task 5 – Search Job Vacancy Page searchjobprocess.php
This PHP page checks the job title search string, reads the data from the job vacancy text file, searches for the occurrence of the job title string in each job vacancy record and generates the corresponding HTML output in response to the user’s search request. The requirements are as follow:
Req. 1. The job title search string and the existence of the “jobs.txt” file are validated. If either validation fails, provide a proper error message to user that includes a link to return to the Home page and Search Job Vacancy page.
Req. 2. All job vacancy records are searched. Within string matches are allowed. For example, “IT Manager” will also be matched to “Senior IT Manager”
Req. 3. The summary of the requested job vacancy information should be generated including links to return to the Home page and Search Job Vacancy page if found. In cases where there are more than one job vacancy information located, all matches must be listed.
Req. 4. If there is an error, a proper error message is generated that include links to return to the Home page and Search Job Vacancy page.
Sample screen shot of search job vacancy information page: