Required Demos-n-Deets demos:
Optional demos (for now): Everything else in the “Authentication” section of the Demos-n-Deets.
Follow the general instructions for active reading for the above required demos.
What to submit:
before_action
declaration.before_action
declaration.app/views/quizzes/index.html.erb
view template.In the above screenshots, code which is too long to be captured in one screenshot may be split up into multiple screenshots.
Important! All screenshots must include your computer’s desktop in the background so that it is recognizable as your desktop. Also, all screenshots of web pages must display the entire URL of the page in the browser’s location bar. (Watch out, as some browsers like to hide parts of the URL unless you click on it.)
Before proceeding, be sure to read the general description and instructions for the practice tests.
Start with the base project on the freebay
branch of this repo: https://github.com/memphis-cs/practice-apps-2021-08fall
The aim of this project is enable users to post listings for free stuff that they want to give away. The project already includes a Listing
model class, as per this class diagram:
Along with this model class, the app includes the standard resource-CRUDing pages and UI features for Listing
model objects. It also includes model validations and database seeds. (You can ignore the test fixtures and model tests for this assignment.) It is recommended that you initialize and run the base app at this point, so you can see firsthand what’s there.
Task to perform:
User
model class.User.create!
, so the system can be seeded with some users.ListingsController
action, except for the index
and show
actions.User
and Listing
classes to establish ownership links between users and the listings they create, as per this class diagram:create
action of the ListingsController
such that it adds the new Listing
object to the collection of listings created by the current user.Listing
objects belong to the appropriate User
objects (as per the comments).Listing
object in order to access the following ListingsController
actions for that object: new
, create
, edit
, update
, and destroy
.Listing
show page, display the email of the User
who was the “Lister” along with the other Listing
attribute values.What to submit:
ListingsController
class file.app/views/layouts/application.html.erb
file.app/views/listings/index.html.erb
file.User
model class.Listing
model class.In the above screenshots, code which is too long to be captured in one screenshot may be split up into multiple screenshots.
Important! All screenshots must include your computer’s desktop in the background so that it is recognizable as your desktop. Also, all screenshots of web pages must display the entire URL of the page in the browser’s location bar. (Watch out, as some browsers like to hide parts of the URL unless you click on it.)
Before proceeding, be sure to read the general instructions for the explanation videos.
Important! For this explanation video, you must follow the task plan and reflection instructions.
Start with the base project on the blogr
branch of this repo: https://github.com/memphis-cs/practice-apps-2021-08fall
This project contains the start of a blogging app. It already includes a BlogPost
model class, as per this class diagram:
Along with this model class, the app includes the standard resource-CRUDing pages and UI features for BlogPost
model objects. It also includes model validations and database seeds. (You can ignore the test fixtures and model tests for this assignment.) It is recommended that you initialize and run the base app at this point, so you can see firsthand what’s there.
The video can begin after you have cloned, initialized, and run the base app.
This time, you will actually be making two video, because the tasks are longer than usual. Although it may not be your first thought, making a mistake during a video that causes you to have to restart and redo tasks is actually great practice, and thus, is great for skills acquisition. That said, doing this piece as two videos could potentially save you from having to aaaaaall the way back to the beginning if you make a mistake near the end.
Task to perform:
User
model class.User.create!
, so the system can be seeded with the users mentioned (Homer, Bart, and Lisa).BlogPostsController
action, except for the index
and show
actions.Task to perform:
User
and BlogPost
classes to establish ownership links between users and the blog posts they create, as per this class diagram:create
action of the BlogPostsController
such that it adds the new BlogPost
object to the collection of posts authored by the current user.BlogPost
objects belong to the appropriate User
objects (as per the comments).BlogPost
object in order to access the following BlogPostsController
actions for that object: edit
, update
, and destroy
.BlogPost
index and show pages, replace the “TODO_AUTHOR” text with email of the User
object whom the BlogPost
belongs to.