Skip to content

Repository files navigation

Movie Search App Banner

🎬 Movie Search App

A stunning, responsive movie discovery platform with live trailer playback — built with modern web technologies.

React Redux Tailwind CSS Vite YouTube API TMDb


✨ Features

🔍 Instant Movie Search
Find movies instantly by title — results fetched live from the OMDB API with poster, title, year, and type.

▶️ YouTube Trailer Player
Watch official trailers inline on the Movie Details page or in a full-screen dedicated Trailer Page — powered by the YouTube Data API v3 with a native iframe embed.

🔥 Trending This Week
Home page shows a horizontally scrollable carousel of trending movies fetched from the TMDb API, complete with rating badges.

📄 Detailed Movie Insights
Click any movie to see its full details: Plot, Cast, Director, Writer, Genre, Runtime, Awards, Box Office, and all ratings from IMDb, Rotten Tomatoes & Metacritic.

🌗 Dark & Light Mode
Seamlessly switch between Dark and Light themes — preference is applied instantly across all pages.

❤️ Watchlist / Favorites
Save movies with a single heart click from any card or the details page. Your watchlist is persisted in localStorage — it survives browser refreshes. A badge on the Navbar always shows how many movies you've saved.

⚠️ Graceful Error Handling
No results found? Trailer unavailable? Every state is handled with a friendly UI and a fallback YouTube search link.

📱 Fully Responsive
Optimized for all devices — large desktops, tablets, and mobile phones.


🛠️ Tech Stack

Category Technology Description
Frontend Framework ⚛️ React 19 (Vite) Fast, component-based UI
State Management 🔄 Redux Toolkit Async thunks for API calls
Styling 🎨 Tailwind CSS v3 Utility-first CSS framework
Routing 🛣️ React Router DOM v7 Client-side routing
HTTP Client 📡 Axios Promise-based HTTP requests
Movie Data 🎥 OMDB API Search & detailed movie info
Trending Data 📈 TMDb API Weekly trending movies
Trailer Search 🔎 YouTube Data API v3 Fetch official trailer video IDs
Icons 🎭 Lucide React Beautiful & consistent icons

📂 Project Structure

src/
├── 📂 app/                   # Redux store configuration
├── 📂 components/
│   ├── Navbar.jsx            # Top navbar with search, watchlist & theme toggle
│   ├── SearchBar.jsx         # Controlled search input
│   ├── MovieCard.jsx         # Card with poster, rating badge & ▶ Trailer hover
│   ├── MovieGrid.jsx         # Responsive grid of MovieCards
│   ├── TrailerPlayer.jsx     # ★ NEW — iframe trailer embed with fallback
│   ├── TrendingSection.jsx   # ★ NEW — TMDb trending horizontal carousel
│   └── Loader.jsx            # Loading spinner
├── 📂 features/
│   ├── 📂 movies/            # Search, details, trailer & trending Redux slice
│   ├── 📂 theme/             # Dark/Light mode slice
│   └── 📂 watchlist/         # Watchlist slice (localStorage persistence)
├── 📂 pages/
│   ├── Home.jsx              # Search results + popular + trending section
│   ├── MovieDetails.jsx      # Full details + inline trailer + all ratings
│   ├── TrailerPage.jsx       # ★ NEW — Full-screen trailer with blurred backdrop
│   └── WatchlistPage.jsx     # Saved movies watchlist
└── 📂 services/
    └── api.js                # OMDB, TMDb & YouTube API endpoints

🚀 Getting Started

1️⃣ Clone the Repository

git clone <your-repo-url>
cd movie-search-app

2️⃣ Install Dependencies

npm install

3️⃣ Configure API Keys

The following keys are already configured in src/services/api.js:

API Key Variable Where to get one
OMDB OMDB_API_KEY omdbapi.com
TMDb TMDB_API_KEY themoviedb.org
YouTube YOUTUBE_API_KEY Google Cloud Console

Note: For production apps, move API keys to environment variables (.env file).

4️⃣ Run the Development Server

npm run dev

Open your browser at http://localhost:5173


🗺️ App Routes

Route Page Description
/ Home Search bar, popular movies & trending carousel
/movie/:id Movie Details Full info, ratings, and inline trailer player
/trailer/:id Trailer Page Full-screen YouTube trailer with blurred backdrop
/watchlist Watchlist All saved favourite movies

📸 Screenshots

App Screenshot


📄 License

This project is open source and available under the MIT License.

Built with ❤️ by Tinku Shekhar Das

About

A stunning, responsive movie discovery platform built with modern web technologies.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages