Page 1 of 2
Subject/Section: WEB 306 N9A Assigned: Monday April 12, 2021
Assignment Number: 4 Date Due: Friday April 23, 2021
Title: MVC CRUD Application Time Due: 11:59pm
Instructor: John Framingham Value: 40% of the final mark for WEB 306
Brief
You have been asked to develop an MVC CRUD application which allows users to create, read, update,
and delete objects that are stored in an SQL database. The objects can belong to a class of your choice -
preferably not one that we used in class (i.e., Dog, Car, Dolphin).
Desired User Experience
The application should start on a View Objects page which displays the name and image of each of the
objects which have been added to the database. There should be a clear navigation link to an Add
Object page on which there is a form where users can enter properties for a new object, including a
name and an image.
If the user does not fill out all the required fields or there is an e
or sending data to the database, they
should be presented with an e
or message and should not be able to proceed, otherwise they should
eturn to the View Objects page where a success message is displayed and all objects in the database
are displayed, including the one just added.
Each object on the View Objects page should have an Edit and Delete button. When the Edit button is
clicked, the user should be taken to an Edit Object page with a form that is already populated with that
object’s properties. If the user leaves one of the required fields blank, they should be presented with an
e
or message and should not be able to proceed, otherwise they should be taken back to the View
Objects page where the changes are visible.
When the Delete button is clicked the selected object should be deleted from the database. If
successfully deleted the user should be presented with a success message, otherwise they should be
presented with an e
or message.
Deliverables
Your finished application code should include:
1. A singleton Connector class which handles the connection to an SQL database.
2. A static Sanitizer utility class which formats, sanitizes and escapes data.
3. A Model defined as a class with at least 3 private or protected properties, a constructor method
and co
esponding getter and setter methods.
4. At least 3 View page types: A View Objects page, an Add Object page, and an Edit Object page.
5. An Add form on the Add Object page which takes in and sanitizes object property data.
Late Policy
To ensure that all students are treated equally, and that no student can profit from taking extra time to complete
an assignment – all late assignments will be given a grade of zero.
Under certain conditions, and at the discretion of Seneca College or its instructors, an extension may be granted if
the student emails a request to the instructor at least 24 hours before assignment due date, and submits all work
completed to-date as of the deadline.
Students must also include a proposed new due date, and a clear and reasonable explanation for why the
extension should be granted. Late assignments that have not been granted an extension automatically receive a
grade of zero.
Plagiarism
There are serious penalties for cheating and plagiarism offences, and you are expected to be aware of our
Academic Honesty Policy. For information, please refer to the Academic Policy at
https:
www.senecacollege.ca/about/policies/academics-and-student-services.html
Copyright © 2021 Seneca College of Applied Arts & Technology. This authorized course material cannot be redistributed without the prior
consent of the instructor.
Page 2 of 2
6. A new object which is created and saved to an SQL database, retrieved, and displayed on the
View Objects page using PDO every time the Add Object form is submitted.
7. An Edit form on the Edit Object page which updates existing object property data using PDO.
8. A Delete button for each object on the View Objects page which deletes an object using PDO.
9. A Controller with distinct create, read, update, and delete scripts.
10. An SQL file (with a database and tables) which has been exported from PHPMyAdmin.
11. Common header and footer elements included using PHP templating.
12. A functional and intuitive design which makes use of your own external CSS file or leverages a
front-end framework such as Bootstrap.
Grading Breakdown
• Inclusion of static Sanitizer and Connector singleton utility classes (5%)
• Creation of a Model with properties, getter and setter methods and sanitization (25%)
• Creation of a View which retrieves and displays objects from the SQL database (25%)
• Creation of a Controller with distinct create, read update, and delete scripts (25%)
• Creation of a functional and intuitive design using HTML, CSS, and PHP templating (10%)
• Good coding and file organization practices (property names,
acket indentation etc.) (10%)
Submission Instructions
You must upload the root directory of your completed assignment including all files and subfolders, and
an SQL file (exported from PHPMyAdmin) to the files section of your private channel on Teams. If you
have not submitted your assignment by the due date and time it will be considered incomplete, unless
you have submitted a late request and received approval for an extension.
Code Validation
Your PHP should output only valid HTML code as determined by the W3C validator - accessible at
https:
validator.w3.org/#validate_by_input. To validate your code, you should use the “view source”
option in your web
owser and copy the HTML that has been output from the PHP interpreter. You will
lose 2% (1 mark) for each validation e
or.
https:
validator.w3.org/#validate_by_input