# Project 2 checklist - [ ] Log in - [x] Task 2 - [x] Searching (title, year, star, director) - [x] Single and multiple conditions - [x] Fast and efficient - [x] Describe using LIKE and ILIKE in README - [x] Browsing - [x] Genres - [x] Sorted list of hyperlinked genres - [x] Each link takes a genres.html page - [x] Movie Titles - [x] Sorted 0 - 9, A – Z, char "*" should show all titles with non-alphanumeric characters - [x] Same as genres (hyperlinked, each link to a new html page) - [ ] Task3: - [x] Movie List Page - [x] Pagination - [x] Implemented Pagination. Frontend cache and backend cache both can not exceed 100 records - [x] Use "Prev/Next" buttons. - [x] Change the number of listings "N" per page - [x] Sorting - [x] Sort by "title" then "rating", or first "rating" then "title", or both in either ascending or descending order. - [ ] Search or browse results will be on this page - [x] title (hyperlinked to Single Movie Page) - [x] year - [x] director - [ ] first three genres - [ ] sorted by alphabetical order - [x] hyperlinked equivalent to Browsing - [ ] first three stars - [ ] Sorted by number of movies played in (Decreasing Order), Then Alphabetical Order - [x] Hyperlinked to the single star page - [x] rating - [x] Sorting: Customers can sort the list by either - [x] Title then Rating - [x] Rating then Title - [x] Supports ascending and descending order - [x] Previous/Next: - [ ] Each page should only display a certain N number of movies - [x] Have "Prev"/"Next" button - [ ] Allow users to change the number of N movies shown per page - [ ] Drop-down menu to choose N from a list of predifined values: 10,25,50,100 - [x] Single Movie Page - [x] All genres - [x] sorted by alphabetical order - [x] each hyperlinked, same as browsing by genre - [x] All stars - [x] sorted by numbers of movies played in, descreasing order. Then Alphabetical order - [x] Eached hyperlinked to the stingle star page - [x] rating - [x] Single Star Page - [x] All movies - [x] Sorted by year, decreasing order. Use alphabetical order to break ties - [x] Each hyperlinked to the corresponding Single Movie Page - [ ] Jump Functionality - [x] Can jump among Movie List Page, Single Movie Page, and Single Star Page using buttons or links instead of browser history - [x] Can jump between Single Movie Page and Single Star Page following hyperlinks - [x] Can jump back to Movie List Page from any of the single pages - [ ] The satus of Movie List Page should be maintained, if return from single pages. - [ ] Search "Jacky Chan", goes to third page of the search result, click a movie to jump to a Single Movie Page, click a star to jump to a Single Star Page. Click back button to go back and verify we are at the same spot as before - [ ] Use session to solve this instead of browser history - [ ] Task 4: Can purchase (multiple copies) of movies. Generate random price. To-be-purchased movies will be stored here - [x] Shopping Cart Page "Working on this section" - [x] Display movie title - [x] Display quantity of each movie - [x] Display price of each movie (randomized price) - [x] Allow customers to increase quantity - [x] Allow customers to decrease quantity - [x] Allow customers to delete movie - [ ] Payment Page "Working on this sectio" - [x] Should display total price of the shopping cart - [x] Ask for first name of credit card holder - [x] Ask for last name of credit card holder - [x] Ask for credit card number - [x] Ask for expiration date - [x] Credit card holder doesn't need to match customer name - [x] "Place Order" button which proceeds to Place Order action - [ ] Place Order action - [x] HTTP POST - [ ] Transaction succeed if customers can provide correct payment information which mathces a record in the credit card table - [ ] If success, it should be recorded in the system ("sales" table) and a confirmation page should be displayed. You might need to alter the "sales" table in order to support multiple copies of the movie - [ ] If failed, it should return back to Payment Page with an error message for customers to re-enter payment information - [x] Add to Shopping Cart Button: "Working on this section" - [x] All pages that display movie information in the system (Movie List Page and Single Movie Page), - [x] Each movie should have an "Add to Shopping Cart" button. - [x] Can click the button to increase the quantity of this movie in the shopping cart. - [x] A message should display to indicate success/failure - [x] Checkout Button - [x] All pages exept the Login Page should have a "Checkout" Button. - [x] Customers should be directed to the Shopping Cart Page when clicking "Checkout" button For points - [x] Login Page - [x] Redirect any other pages to the Login Page if the user is not logged in 3 - [x] Show an error message for an incorrect user name or password 2 - [x] Use HTTP POST 2 - [x] Login with a correct user name and password 4 - [x] Main Page - [x] Access to searching and browsing pages/functionalities 2 - [x] Searching - [x] Search by title 4 - [x] Search by year 3 - [x] Search by director 4 - [x] Search by star's name 4 - [x] Substring Matching is implemented correctly for searching title/director/star. 3 - [ ] Movie List Page (Extended from P1) - [ ] Display all required information; the first three genres are sorted correctly and hyperlinked; the first three stars are sorted correctly and hyperlinked. 6 - [ ] Implemented Pagination. Frontend cache and backend cache both can not exceed 100 records 2 - [x] Use "Prev/Next" buttons. 4 - [x] Change the number of listings "N" per page 2 - [ ] Can sort the results on either first "title" then "rating", or first "rating" then "title", both in either ascending or descending order. 6 - [x] Single Pages (Extended from P1) - [x] A Single Movie Page has all genres, stars sorted correctly and hyperlinked. 2 - [x] A Single Star Page has all movies sorted correctly and hyperlinked. 2 - [ ] Jump Functionality - [ ] Jump back to the Movie List Page from Single Pages without using the browser history (back button) or changing the url manually in browser address bar 2 - [ ] Search/browse, sorting, pagination conditions are maintained when the user jumps back to the Movie List Page 3 - [ ] Browsing - [ ] Browse by movie title's first alphanumeric letter: click on each letter jumps to the movie list page that only consists ofmovies starting with this letter 4 - [ ] Browse by genre: click on each genre jumps to the Movie List Page that only consists of the movies of this genre 4 - [x] Shopping Cart Page - [x] Display information about the current shopping cart (including movie title, price, quantity, and total price) 4 - [x] Modify the quantity of each item 4 - [x] Delete an item 3 - [x] Payment Page - [x] Ask for basic customer transactional information 5 - [x] Show an error message for an incorrect input 3 - [x] Place Order Action - [x] Insert a sale record into ''moviedb.sales" table 4 - [x] Show a confirmation page that contains order details including sale ID, movies purchased and the quantities, and total price 4 - [ ] Additional Performance Functionality - [x] Have a Checkout button for every page after login; if the user clicks it, it will jump to the shopping cart page 2 - [ ] Have an "Add to Cart button" for each movie in the Movie List Page and each Single Movie Page; Indicate success/failure for a user click. 3 - [ ] Extra Credit - [ ] Show efforts to beautify the page and table using CSS and JavaScript 5