Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
9da083b
Finished searching and sorting
Jun 10, 2025
5b966bd
Finished modal, add modal content
Jun 11, 2025
ced1334
Added trailers viewer
Jun 11, 2025
829ada0
first deploy
Jun 11, 2025
8b10dc4
Trying to fix movie image for live deploy
Jun 11, 2025
41c68bb
remade build
Jun 11, 2025
2c76184
Moved movie.png for relative path
Jun 11, 2025
413f85c
None ordering returns to original ordering
Jun 11, 2025
518b44a
Finished favorites and watched
Jun 11, 2025
adfb372
review1-branch-push
Jun 11, 2025
2c92722
Refactor movie fetching and processing functions
Jun 11, 2025
ea2e47c
Fix bug where processMoviesBySearch() was duplicating previous movies…
Jun 11, 2025
a8c60aa
Merge pull request #2 from amotor95/jackmccl/flixster/styling-and-pol…
amotor95 Jun 12, 2025
0ad294b
fix - fixed search bar not clearing when swapping from now playing to…
Jun 12, 2025
00dd707
Fix - modal opening in movie card due to moviecard:hover {scale: 105%…
Jun 12, 2025
f13776b
Search input, search button, clear button, sort dropdown - restyled
Jun 12, 2025
09df52c
fix-footer at bottom of content
Jun 12, 2025
2c2a35c
CSS variable styling - colors controlled by variables in App.css
Jun 12, 2025
ab5a83b
Fix - load more was showing even when showing last page of results
Jun 12, 2025
d904ffe
Fix - condensed sort functions for readability
Jun 12, 2025
fcfc73a
Merge pull request #3 from amotor95/jackmccl/flixster/styling-and-pol…
amotor95 Jun 13, 2025
8023279
Fixed minimum movie card width to 90px
Jun 13, 2025
4d9e44a
Merge pull request #4 from amotor95/jackmccl/flixster/styling-and-pol…
amotor95 Jun 13, 2025
89bbc36
Changed now-playing to home on sidebar
Jun 13, 2025
32cd609
Fix - increased contrast of searchbar placeholder for accessibility
Jun 13, 2025
8347d9d
Fix - added border to banner for distinct banner
Jun 13, 2025
89b0dfd
Completed Flixster_README for submission
Jun 13, 2025
354fc28
Completed Flixster_README for submission
Jun 13, 2025
f6c0ed1
Completed Flixster_README for submission
Jun 13, 2025
b961f5f
Reorganized components into individual folders
Jun 13, 2025
2cb3a84
Reorganized file structure - each component now has it's own folder f…
Jun 13, 2025
0d74455
Merge pull request #5 from amotor95/jackmccl/file-reorg and utils
amotor95 Jun 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
VITE_APP_API_KEY=eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJkZGNmMGFlODhlOTY3NWRmMjE2NzE3MDVmM2NmMjkwNCIsIm5iZiI6MTc0OTUwNTU2NS4wNTYsInN1YiI6IjY4NDc1NjFkY2YxMDYwNmU1YjFlYWFhOCIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.sWQ7x0l5lNvEmG4q6DheipSeFpWjC_H3TA9OQDWqjcs
126 changes: 126 additions & 0 deletions Flixster_README
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
## Unit Assignment: Flixster

Submitted by: **Jack McClure**

Estimated time spent: **14** hours spent in total

Deployed Application (**required**): [Flixster Deployed Site](https://flixster-s5ux.onrender.com/)

### Application Features

#### REQUIRED FEATURES

- [X] **Display Movies**
- [X] Users can view a list of current movies from The Movie Database API in a grid view.
- [X] Movie tiles should be reasonably sized (at least 6 playlists on your laptop when full screen; large enough that the playlist components detailed in the next feature are legible).
- [X] For each movie displayed, users can see the movie's:
- [X] Title
- [X] Poster image
- [X] Vote average
- [X] Users can load more current movies by clicking a button which adds more movies to the grid without reloading the entire page.
- [X] **Search Functionality**
- [X] Users can use a search bar to search for movies by title.
- [ ] The search bar should include:
- [X] Text input field
- [X] Submit/Search button
- [X] Clear button
- [X] Movies with a title containing the search query in the text input field are displayed in a grid view when the user either:
- [X] Presses the Enter key
- [X] Clicks the Submit/Search button
- [X] Users can click the Clear button. When clicked:
- [X] Most recent search results are cleared from the text input field and the grid view and all current movies are displayed in a grid view
- [X] **Design Features**
- [X] Website implements all of the following accessibility features:
- [X] Semantic HTML
- [X] [Color contrast](https://webaim.org/resources/contrastchecker/)
- [X] Alt text for images
- [X] Website implements responsive web design.
- [X] Uses CSS Flexbox or CSS Grid
- [X] Movie tiles and images shrink/grow in response to window size
- [X] Users can click on a movie tile to view more details about a movie in a pop-up modal.
- [X] The pop-up window is centered in the screen and does not occupy the entire screen.
- [X] The pop-up window has a shadow to show that it is a pop-up and appears floating on the screen.
- [X] The backdrop of the pop-up appears darker or in a different shade than before. including:
- [X] The pop-up displays additional details about the moving including:
- [X] Runtime in minutes
- [X] Backdrop poster
- [X] Release date
- [X] Genres
- [X] An overview
- [X] Users can use a drop-down menu to sort movies.
- [X] Drop-down allows movies to be sorted by:
- [X] Title (alphabetic, A-Z)
- [X] Release date (chronologically, most recent to oldest)
- [X] Vote average (descending, highest to lowest)
- [X] When a sort option is clicked, movies display in a grid according to selected criterion.
- [X] Website displays:
- [X] Header section
- [X] Banner section
- [X] Search bar
- [X] Movie grid
- [X] Footer section
- [X] **VIDEO WALKTHROUGH SPECIAL INSTRUCTIONS**: To ease the grading process, please use the [color contrast checker](https://webaim.org/resources/contrastchecker/) to demonstrate to the grading team that text and background colors on your website have appropriate contrast. The Contrast Ratio should be above 4.5:1 and should have a green box surrounding it.
- [X] **Deployment**
- [X] Website is deployed via Render.
- [X] **VIDEO WALKTHROUGH SPECIAL INSTRUCTIONS**: For ease of grading, please use the deployed version of your website when creating your walkthrough.

#### STRETCH FEATURES


- [X] **Embedded Movie Trailers**
- [X] Within the pop-up modal displaying a movie's details, the movie trailer is viewable.
- [X] When the trailer is clicked, users can play the movie trailer.
- [X] **Favorite Button**
- [X] For each movie displayed, users can favorite the movie.
- [X] There should be visual element (such as a heart icon) on each movie's tile to show whether or not the movie has been favorited.
- [X] If the movie is not favorited:
- [X] Clicking on the visual element should mark the movie as favorited
- [X] There should be visual feedback (such as the heart turning a different color) to show that the movie has been favorited by the user.
- [X] If the movie is already favorited:
- [X] Clicking on the visual element should mark the movie as *not* favorited.
- [X] There should be visual feedback (such as the heart turning a different color) to show that the movie has been unfavorited.
- [X] **Watched Checkbox**
- [X] For each movie displayed, users can mark the movie as watched.
- [X] There should be visual element (such as an eye icon) on each movie's tile to show whether or not the movie has been watched.
- [X] If the movie has not been watched:
- [X] Clicking on the visual element should mark the movie as watched
- [X] There should be visual feedback (such as the eye turning a different color) to show that the movie has been watched by the user.
- [X] If the movie is already watched:
- [X] Clicking on the visual element should mark the movie as *not* watched.
- [X] There should be visual feedback (such as the eye turning a different color) to show that the movie has not been watched.
- [X] **Sidebar**
- [X] The website includes a side navigation bar.
- [X] The sidebar has three pages:
- [X] Home
- [X] Favorites
- [X] Watched
- [X] The Home page displays all current movies in a grid view, the search bar, and the sort movies drop-down.
- [X] The Favorites page displays all favorited movies in a grid view.
- [X] The Watched page displays all watched movies in a grid view.

### Walkthrough Video

`https://www.loom.com/share/f0a95dc25e9a4c12b51135f2e0e097d4`

### Reflection

* Did the topics discussed in your labs prepare you to complete the assignment? Be specific, which features in your weekly assignment did you feel unprepared to complete?

Yes, the useState and prop drilling labs definitely helped me feel prepared to complete the assignment, however, I would say that the useEffect lessons didn't prepare us enough to deal with race conditions in the project. I also felt unprepared to complete the API pulling and async functions because the labs didn't cover tricky situations with await/async and where we could use each kind of function.

* If you had more time, what would you have done differently? Would you have added additional features? Changed the way your project responded to a particular event, etc.

If I had more time, I would've added a search bar the could search in the favorites and watched, but that would be more difficult because there isn't an API for it. I also would've used TMDB to store my watched/favorites list so it could be persistant even after page reloads.

* Reflect on your project demo, what went well? Were there things that maybe didn't go as planned? Did you notice something that your peer did that you would like to try next time?

Didn't demo this week (I already demoed last week). Next week, I would like to try adding color gradients for my CSS styling and more reactive color changes.

### Open-source libraries used

- Add any links to open-source libraries used in your project.

### Shout out

Give a shout out to somebody from your cohort that especially helped you during your project. This can be a fellow peer, instructor, TA, mentor, etc.
Shoutout to Liam Bremm for providing helpful feedback on CSS styling.
Loading