$39.99
1. This assignment should be uploaded to a GitHub repository which I will invite you to. When I download this GitHub repository I must be able to access all your source files so that I can see your PHP code and connect your site to a database. DO NOT INCLUDE YOUR vendor FOLDER OR
YOUR node_modules FOLDER BUT MAKE SURE THAT ALL REQUIRED PACKAGES ARE LISTED IN YOUR composer.json AND package.json FILES RESPECTIVELY.
Instructions: You will be creating a fully-functional MVC CRUD application using the Laravel framework. DO NOT USE PURE PHP OR A DIFFERENT PHP FRAMEWORK. The application will allow users to create, read, update and delete items which can belong to models of your choice (i.e. Spaceship, Dog, Clown etc.) as long as they are NOT an Artist, Artwork or Gallery – be creative. This application will store the items in an SQL database using the Eloquent ORM and migrations.
The application should start on a View Models page which lists the names of all the items which have been added to the database for one of your models. Each item should also have a link or button to a page where you can see more information about that individual item, including relational data which comes from another model. The user should also be able to view an image which is associated with each item, but this could be displayed on either the home page or the individual item’s page. There should be a clear navigation item or button that links to an Add Model page which displays 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 error sending data to the database, then they should be presented with an error message and should not be able to proceed. If the user correctly fills out all the required fields and the data gets sent to the database then they should be taken back to the View Models page where they are presented with a success message and can see all the objects in the database, including the one they just added. Each item displayed on the View Models page should have an Edit button and a Delete button near it. When the Edit button is clicked, the user should be taken to an Edit Model page where there is a
form which is already filled out with that object’s properties. If the user edits any of the properties, then they should be taken back to the View Models page where the changes take effect. If the user leaves one of the required fields blank, they should be presented with an error message and should not be able to proceed. When the Delete button is clicked the selected object should be deleted from the database. If the object is successfully deleted, they should be presented with a success message. If there is an error, they should be presented with an error message. I MUST be able to add objects using the form on the Add Model page, edit objects using the form on the Edit Model page, and delete objects using the Deletion buttons.
The application should have an intuitive and functional user interface which uses Blade templates. The Blade templates should make use of a base template and Blade yields and sections. They should also make use of Blade loops and conditionals to display data. Styling can be done using either regular CSS or Laravel’s Sass files. It should make use of buttons, alerts and colour-coding. Accessibility considerations should be made for non-standard users. Responsiveness and use of front-end libraries such as Bootstrap, Foundation and Font Awesome is NOT required but is strongly encouraged.
Deliverables:
• At least 2 models with at least 3 fillable fields including a name, an image and something unique to your model and at least 1 one-to-many or many-to-many relationship
• At least 3 Blade page types per model: a View Models page, an Add Models page and an Edit Models page (you should rename the pages to match your model i.e. Add Dog)
• A common base template created using Blade templates, yields and sections • An external CSS file and optionally a Sass file
• A functional and intuitive UI/UX design which makes use of buttons, alerts and colour-coding
(use of Bootstrap/Foundation/Font Awesome is encouraged)
• Add forms on the Add Models pages which take in, validate and sanitize model field data
• New items which are created, saved to an SQL database, retrieved, and displayed on the View Models page every time the Add Model forms is submitted
• A button or link for each item on the View Models page which allows the user to view more information about an individual item, including relational data from a second model
• Edit forms on the Edit Model pages which update existing model field data
• Delete buttons for each item on the View Objects page which deletes an item when clicked
• A resource controller with distinct index, create, store, show, edit, update and destroy methods
• Accessibility considerations for non-standard users (blind, assistive devices, etc.)
Grading breakdown:
• Creation of 2 models and migrations which make use of an Eloquent ORM relationship (25%)
• Creation of Blade templates which retrieve and display data (30%)
• Creation of controllers and requests which perform CRUD operations and sanitization (35%)
• Good coding/file organization practices (property names, bracket indentation etc.) (10%)
Your files should contain only valid (as determined by the W3C validator) HTML code. You can use invalid code in the HTML but if you do, you must include a comment beside the invalid code explaining your decision. To properly validate your HTML in your PHP files, you MUST do a “view source” of the page in a web browser. The W3C validator does not understand PHP code. You will lose 2% per type of uncommented validation error. You should not have any PHP or Laravel errors. You will lose 2% per PHP or Laravel error which could have been fixed.
Late Policy
All late assignments will be given a grade of zero.