In completing this assignment you MAY use/access the following resources:
You may NOT use/access:
- Resources not expressly listed above, including, but not limited to,
the following ...
- Source code not provided as part of this assignment. (Obviously, this
includes, but is not limited to, source code written by other students
whether current or in the past).
- Code-generating tools (of which ChatGPT is one example).
- Any web sites not directly linked to from the homework assignment.
Failure to abide by these guidelines will result in a zero for the assignment
and the incident will be reported to the university provost as a violation of
the university academic integrity policy. A second incident of academic
dishonesty (whether from this course or another computer science course) will
result in an F in the course.
You should complete each of these steps:
- Copy all work from hw08 to hw09:
cp -rp hw08 hw09
and set permissions as needed.
- Customize the existing User model to match your database specs.
Augment/modify your database as needed.
- Generate authentication scaffolding.
- Test provided register page, then modify it to match the styling of your
application and have it redirect to the index view upon completion.
- Establish a GET route for the logout behavior and get logout link to work.
- Test provided login page, then modify it to match the styling of your
application and have it redirect to the index view upon completion. Remove
the “forgot password” link and replace it with a link to the register page.
- Use auth middleware to prevent access to appropriate routes.
- Add custom behavior to protect actions based on user id as we did in
a previous assignment. For example, a user shouldn't be allowed to
modify/delete a book unless they are the one who added it. This should be
protected in the controller function and also in the interface.
- Restore Ajax behavior to match that of homework #6.
By the end of this assignment the book application should be completely functional
and should closely match the behavior and requirements of homework #6 (except)
that here we leverage the Laravel framework.