HW09: Laravel User Auth and Ajax due Tue 26 Mar 13:20

\begin{purpose}
In completing this assignment you will:
\begin{itemize}
\ite...
...~\char93 6 but now
within the Laravel ecosystem.
\end{itemize}
\end{purpose}

Allowed and Disallowed Resources

In completing this assignment you MAY use/access the following resources:

You may NOT use/access:

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.

Details

You should complete each of these steps:
  1. Copy all work from hw08 to hw09: cp -rp hw08 hw09

    and set permissions as needed.

  2. Customize the existing User model to match your database specs. Augment/modify your database as needed.

  3. Generate authentication scaffolding.

  4. Test provided register page, then modify it to match the styling of your application and have it redirect to the index view upon completion.

  5. Establish a GET route for the logout behavior and get logout link to work.

  6. 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.

  7. Use auth middleware to prevent access to appropriate routes.

  8. 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.

  9. Restore Ajax behavior to match that of homework #6.

Summary

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.