Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
# Weekend 12 Challenge - Redux Saga Movies

## Movies Page

- [ ] Client side View that displays a list of movies (image, title, description)
- [ ] View has ability to click on a single movie
- [ ] Clicking on single movie goes to movie details view at `/details`

## Details Page

- [ ] Detail view should show all detail data include all the genres for the given movie
- [ ] Has Back to List which goes back to the Home Page
- [ ] Has an Edit button which goes to the Edit Page

## Edit Page

- [ ] View at route `/edit`
- [ ] Assumes the selected movie id is in Redux
- [ ] Display an input field for changing the movie title
- [ ] Displays a textarea for changing the movie description
- [ ] Cancel button, which should bring the user to the Details Page
- [ ] Save button, which should update the title and description in the database and bring the user to the Details Page

## General Tasks

- [ ] Use Sagas for API requests to the server
- [ ] Should have at least 15+ commits. 
- [ ] Use branches for features.
- [ ] Comment your code.
- [ ] Update this README to include a description of the project in your own words.

## Stretch Goals

> NOTE: Copy/pasted from instructions

- [ ] Display the current values in the input (title) and textarea (description) on the Edit Page
- [ ] Display all genres on movie list page. Research array_agg to make this possible.
- [ ] Move sagas and reducers out of your index.js and into separate files (ideally in src/redux/reducers and src/redux/sagas folders).
- [ ] Allow the user to refresh the details or edit page. The url for the details page would be something like /details/1 for movie with id of 1. Research react router params.
- [ ] Allow the user to add a genre to a movie.
- [ ] Allow the user to remove a genre from a movie.
- [ ] Only display the top 10 movies, and allow the user to search for movie titles with a search bar on the home page (you can do this on the client side or the server side, server side is a bigger stretch, but good practice).
- [ ] Create an Admin page. Add a link from the Home page to the Admin page. The page should initially display a login form (an input for username and an input for password). When the user enters the correct username (camera) and password (action), the page should display a form to add genres to the database, and a list of all of the genres with an x to remove them from the database. 

## Portal-ready Markdown

---
| Functional Requirements | Complete? |
| --- | :---: |
| Junction table created to store genres per movie | no |
| Initial Display shows all movies in a list, | no |
| Initial Display shows all movie titles, descriptions, and images | no |
| Movies can be clicked on to go to their detail page | no |
| Movie Detail Page displays movie image, title, description | no |
| Movie Detail Page displays all genres for this movie | no |
| Movie Edit Page allows the movie title to be updated | no |
| Movie Edit Page allows the movie description to be updated | no |
| Sagas used for calls to server | no |

---
### Notes:

Notes on items above.

---
| General Items | Complete? |
| --- | :---: |
| More than 15 git commits | no |
| Updated SQL file with junction table name, schema, inserts | no |
| Code broken down into Components | no |
| Commits are descriptive of the changes made or feature added | no |
| Readme file updated | no |
| Appropriate amount of code comments | no |
| Code is consistently formatted | no |
| Good use of Redux (where appropriate) | na/yes/no |
---
### Notes:



Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment