FIT2076 Assignment 2 Semester 2, 2019
This assignment is worth 25% of the total mark for the unit.
This is a group assignment and is to be completed by 2 students working together.
Title: Application Development and Implementation
Scenario
Harry Helper is the CEO of a charity called Famox and he’s decided to embrace modern technology and put his charity on the web so that people from all around the world can make donations and purchase the ethical products that the charity sells.
Harry was impressed with your initial proposal and has decided to give you the job of implementing his web-database application. However, limited finances mean that Harr can only implement some functions at this stage. So he has decided to concentrate on the Administrative aspects and will implement the Client facing aspects at a later stage.
The expectation of this assignment is to develop a web/database application for Harry that will allow him to administer his properties and clients
The database must be a MySQL database located on the Monash University MySQL server and the web page “front-end” must use PHP (mysqli or PDO functions) and be resident on the Triton Student Server. The connection between the web pages and the database must be specified in ONLY ONE PLACE within your application. Additionally, you must implement features which guard against SQL injection on all pages.
If you have any questions regarding the requirements of this assignment, you MUST discuss it with your tutor or lecturer.
DO NOT MAKE ASSUMPTIONS THAT MAY COST YOU MARKS.
It is intended that you implement the application that you described in Assignment 1. However, if the functionality that you proposed in Assignment 1 does not suit the business requirements, you will be expected to deliver additional functionality.
If you wish to implement the functionality that you have described in Assignment 1, you will need to go through that functionality during the Week 5/6/7 tutorials and get your tutors approval. Your tutor may add functionality to your assignment.
If you wish to abandon your Assignment 1 ideas and start from scratch, you can download the table definitions from Moodle and implement the functionality described below.
ALL DATABASE ACCESS, FILE ACCESS AND CODE DISPLAY FOR THIS ASSIGNMENT MUST BE DONE USING PHP.
All students have had a MySQL database account created with a username of s999999999 (student id) and a password of monash00. You can change the password after logging onto MySQL using a GUI client of your choosing.
Requirements
Security
Security is a concern here and only Harry and his staff should have access to this site. A valid username and password must be entered to achieve access to any of the pages on the site (excluding the menu and the homepage).
Main Page
The main page must display a menu and the application home page. The menu must be visible at all times when the user is using your application.
The menu must provide links to pages offering the following functionality:
Product Page
This page will allow Harry to view/add/edit/delete his Products, additionally, the page will allow Harry to browse/search his Products by entering a Category keyword. The keyword will be a Category (or part thereof). A suitably formatted and sorted list of Products that match the entered search criteria will be displayed to Harry or a message indicating that no Products matches the entered criteria. Harry may then select a Product from the list and edit the Products details.
This page will also offer Harry the ability to enter a new Product or delete an existing Product.
Harry must also be able to upload and display one or more images of the Product or delete existing images. All uploaded images must be stored in a sub-folder of your ass2 folder called product_images
• THIS PAGE MUST USE CLIENT-SIDE JAVASCRIPT OR HTML5 TO PERFORM DATA ENTRY VALIDATION FOR ADD AND EDIT FUNCTIONALITY
Ensure that any database errors on this page are captured and a “user-friendly” error is displayed to the user.
Place this image at the bottom of the page. Make the image clickable to open up a new copy of the browser, in which is displayed the code used
for the Product Page.
You must use PHP to dynamically read and display the code
Client Page
This page will allow Harry to view/add/edit/delete his client list. Harry would also like to be able to send emails to one or more clients who have agreed to be on his mailing list.
• THIS FACILITY MUST ACTUALLY SEND EMAILS.
Place this image at the bottom of the page. Make the image clickable to open up a new copy of the browser, in which is displayed the code used
for the Client Page.
You must use PHP to read and display the code. Catgeory Page
This page will allow Harry to view/add/edit/delete the (product) category list.
Ensure that any database errors on this page are captured and a “user-friendly” error is displayed to the user.
Place this image at the bottom of the page. Make the image clickable to open up a new copy of the browser, in which is displayed the code used
for the Make Page
You must use PHP to read and display the code
Optional Requirements – Distinction
Completing the requirements stated above may earn you up to a Credit grade for this assignment. In order to earn up to a Distinction grade you must complete the following three optional requirements.
Client Page
Harry would also like to be able to produce a nicely formatted PDF document containing all his clients’ details
Project Page
This page will allow Harry to view/add/edit/delete the Project table. Example
Ensure that any database errors on this page are captured and a “user-friendly” error is displayed to the user.
Place this image at the bottom of the page. Make the image clickable to open up a new copy of the browser, in which is displayed the code
used for the Project Page.
You must use PHP to read and display the code.
Product Multiple Edit Page
Harry would like the functionality to update the sale price of multiple products at once. This page will display the name and price of all products currently in the database, with the prices displayed in textboxes allowing all these values to be updated at once.
This page must be reached via a separate menu option.
Ensure that any database errors on this page are captured and a “user-friendly” error is displayed to the user.
Place this image at the bottom of the page. Make the image clickable to open up a new copy of the browser, in which is
displayed the code used for the Product Multiple Edit Page.
You must use PHP to read and display the code
Optional Requirements – High Distinction
To earn up to a High Distinction you must complete the basic requirements, the 3 optional requirements for a Distinction grade and the following 3 optional requirements.
ProductCategory Page
This page will allow Harry to add multiple categories to a product when he is adding/editing. When editing, the product details will be displayed, along with a checkbox for all current categories. This list must be generated from the database. Any checkboxes representing categories that the product already possesses will be checked. Harry will be able to select one or more categories to add/delete to/from the ProductCatgeory table.
NOTE: Your page does not have to look EXACTLY like the image below, but must offer the functionality for Harry to add/delete multiple categories for a product.
Ensure that any database errors on this page are captured and a “user-friendly” error is displayed to the user.
Place this image at the bottom of the page. Make the image clickable to open up a new copy of the browser, in which is
displayed the code used for the Product Category Page.
Images Page
Harry would like to be able to delete one or more product_image files from his server. This page will list all the images in Harry’s “product_images” folder, the details of the product currently assigned that image (if the image is assigned to a product) and a checkbox for each image. The checked images will be deleted and the product_image table updated for each affected product, if applicable.
Ensure that any errors on this page are captured and a “user-friendly” error is displayed to the user.
NOTE: This page should be “driven” by the images in the folder, not by the products in the database. In other words if an image is contained within the product_images folder, that is not currently assigned to a product, the image should still be displayed.
Place this image at the bottom of the page. Make the image clickable to open up a new copy of the browser, in which is displayed the code used
for the Images Page.
You must use PHP to read and display the code
Documentation Page
This page will provide assignment documentation.
1. Detailsoftheauthors:name,studentIDanddateofsubmission.
2. TheusernameandpasswordfortheMySQLdatabaseaccountusedforthe
assignment. Marks will be deducted for failing to include this.
3. AlinktoadocumentwhichcontainsyourCreateTablestatements.These
must include Primary key, Foreign key and Column constraints.
4. Alinktoadocumentwhichcontainsthedatacurrently(atthetimeof
submission) in the database. Up to 20 marks will be deducted if there is not sufficient data in your tables to test the functionality of your site. DO NOT INCLUDE THE INSERT STATEMENTS – YOU WILL LOSE MARKS FOR THIS!!
NOTE: Do not dynamically retrieve this data from the database for
display.
5. Alinktoadocumentwhichcontainsdetailsofwhichgroupmember completed which part(s) of the application
Submitting Assignment 2
Create a sub-directory in your home directory on the student server. This sub- directory must be called “ass2”. Store the HTML, PHP and any other associated files that make up the site in this sub-directory. You can have sub-directories within “ass2” to store various files of the assignment: e.g. a separate sub-directory for connection files etc.
This sub-directory must also contain a file that details which student completed each piece of functionality.
Failure to follow this directory structure will result in non-assessment of your assignment.
To view your assignment after it has been transferred, point your browser to: http://triton.infotech.monash.edu.au/99999999/ass2/index.html
Note: insert your ID number in place of 99999999.
The Triton server will be disabled at 12am Melbourne time, on the date that the assignment is due. By this time the assignment must have been transferred to your directory on the Triton server. At this time, an image is taken of student assignments and this is used for correction purposes. So, although you may be able to transfer files after that time, they will not be considered for correction. Consequently, do not leave it to the last day to transfer files. No consideration will be given for failing to transfer files before the required time.
You must test the transfer procedure well before time to make sure you know how it works. After you have transferred your assignment, test it thoroughly. Do not assume that just because the assignment works properly from your hard disk, that it will also work properly from the student server. For example, if you have spaces in the names of your files, they may not work properly from the Triton server, but may work from your hard drive.
If you fail to transfer your assignment before the closing time you will be given zero marks. The only exceptions will be in cases of sickness or other serious cause, for which documentary evidence (e.g. a doctor’s certificate) must be produced. Students must request an extension prior to the submission date.
The authors must write all submitted web pages. Where there is evidence of similarity with other assignments, students will be heavily penalised. Students may be interviewed as part of the assessment requirements of the assignment. Students will be asked question(s) to explain their submitted assignment. If a question is not answered satisfactorily, up to two marks will be deducted and successive questions asked until satisfactory answers are forthcoming or there are no more marks to deduct.
Students must not transfer any documents containing viruses to the student server. Any such document will be given zero marks and a further 20 marks will be deducted from the assignment total. Additionally completion of the individual assignment tasks will not automatically earn you full marks for that task. Site design and usability will also be taken into account.
Further Information
An assignment discussion forum has been created and you are encouraged to use this, posting and answering questions regarding the assignment. It is important to remember that staff may not be available to answer questions at the last minute, so it is important that you do not leave it to the last minute to attempt the assignment.