Project - Movies

Movies is a movies app using the The Movie Database API.

Time spent: 15 hours spent in total

User Stories

The following required functionality is completed:

  • User can view a list of movies currently playing in theaters. Poster images load asynchronously.
  • User can view movie details by tapping on a cell.
  • User sees loading state while waiting for the API.
  • User sees an error message when there is a network error.
  • User can pull to refresh the movie list.
  • Simple responsive.

The following optional features are implemented:

  • Add a tab bar for Now Playing and Top Rated movies.
  • Implement segmented control to switch between list view and grid view.
  • Add a search bar.
  • All images fade in.
  • Implement lazy load image.
  • Customize the highlight and selection effect of the cell.
  • Improve UX loading by skeleton loading.
  • Enhance responsive.

The following additional features are implemented:

  • Infinite loading
  • Using react-query for server state management and caching.
  • Debounce search
  • Deployed on vercel

Video Walkthrough

Here's a walkthrough of implemented user stories:

I also deployed this project on vercel so you can browse it more easier https://elotus-movie.vercel.app/

In case the GIF file doesn't work, here is a google drive contains a video of a walkthrough of implemented user stories: https://drive.google.com/file/d/12LlX30TQK430Ab_JdTgnVN4tNtjzM4Wh/view?usp=sharing

Please record screen to a GIF file and attach link here https://media.giphy.com/media/vD2qx5hMqOslWBQm9p/giphy.gif

In case you wan to start the project on local you need to create env and add this key to it REACT_APP_API_KEY=b712530d3cba99dc2500bcb57cb14c25

License

Copyright [2016] [Chung Thien Vy]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.