A dynamic and feature-rich Movie Search App built with React and styled using Tailwind CSS. This app utilizes the TMDb API to fetch and display movie and TV show data, and integrates Redux for state management, including a watchlist feature.
- Trending Content: View trending movies and TV shows over the period of day or week.
- Category-based Content: Explore movies and TV shows categorized as:
- Popular
- Top Rated
- Upcoming
- Now Playing
- Search with Debounce: Quickly search for movies and TV shows using a search modal with a debounce feature to optimize API calls.
- Details Page: View detailed information about a specific movie or TV show, including:
- Overview, Genre, Rating ring, Trailer
- Cast details
- Similar or recommended content suggestions
- Carousel: A visually appealing carousel on the home page showcasing trending content.
- Loader: A loading indicator is shown while fetching content to keep the user informed about data fetching.
- Reusable Components: All UI components like movie/tv show cards are built in a reusable manner to maintain consistency and reduce code duplication.
- Responsive Design: Fully responsive across devices, ensuring a great user experience on mobile, tablet, and desktop.
- Add any movie or TV show to a watchlist.
- The watchlist is stored locally using the browser's local storage, ensuring data persistence.
- Automatically fetch and display movie and TV content based on the user's country.
- Country information is determined using the IPAPI service.
- Redux is used for state management, enabling seamless addition and removal of items in the watchlist and efficient data handling across components.
- Frontend: React, Tailwind CSS
- API Integration: TMDb API, IPAPI
- API Handling: Axios, TanStack Query
- State Management: Redux
- Storage: Local Storage
- Build Tool: Vite
- Deployment: Vercel
- Node.js installed on your machine.
- Clone the repository:
git clone https://github.com/iankitkd/MovieSearchApp.git
- Navigate to the project directory:
cd MovieSearchApp - Install dependencies:
npm install
- Create a
.envfile in the root directory and add the following environment variables:VITE_ACCESS_TOKEN=your_tmdb_access_token
- Start the development server:
npm run dev
This project is licensed under the MIT License. See the LICENSE file for details.