Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

8 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฌ MovieNest

A full-featured React movie discovery app โ€” trending, search, favorites, and rich movie details, all built on the TMDB API and styled with a custom brutalist design system.

๐Ÿ”— Live Site: movienest.vercel.app ย |ย  ๐Ÿ’ป Source Code: github.com/anoopcodehack/movienest


๐Ÿ™‹ About the Project

MovieNest started as a way to learn how a real React project comes together โ€” from structuring components to shipping a live, usable product. It's grown into a fully API-driven movie browser with search, infinite scroll, a favorites system, and detailed movie pages with cast, trailers, and recommendations.

The focus was on:

  • Building a real data layer on top of a public REST API (TMDB)
  • Writing reusable, composable components
  • Handling real-world UI states โ€” loading, empty, and error states
  • Making layouts responsive across screen sizes
  • Deploying a production build to Vercel

Mockups

image

--

โœจ Features

  • ๐Ÿ”ฅ Trending, Popular, Top Rated & Upcoming movie rows on the home page
  • โ™พ๏ธ Infinite scroll pagination on the Popular row
  • ๐Ÿ” Live search across TMDB's movie catalog
  • โค๏ธ Favorites โ€” add/remove movies, persisted across the session
  • ๐ŸŽฌ Movie details page with:
    • Cast grid with photos and character names
    • Embedded YouTube trailer (modal player)
    • Genre tags and a styled rating badge
    • "Similar Movies" recommendations
  • ๐Ÿ“ฑ Fully responsive layout

๐Ÿ› ๏ธ Tech Stack

Technology Usage
React (CRA) UI framework
React Router Client-side routing
TMDB API Movie data, cast, videos
JavaScript ES6+ App logic
HTML & CSS Markup & custom design system
Vercel Deployment

๐Ÿ“‚ Project Structure

src/
โ”œโ”€โ”€ api/            # TMDB API layer
โ”‚   โ””โ”€โ”€ tmdb.js
โ”œโ”€โ”€ components/     # Reusable UI components
โ”‚   โ”œโ”€โ”€ Navbar.jsx
โ”‚   โ”œโ”€โ”€ Footer.jsx
โ”‚   โ”œโ”€โ”€ Loader.jsx
โ”‚   โ”œโ”€โ”€ MovieCard.jsx
โ”‚   โ”œโ”€โ”€ MovieRow.jsx
โ”‚   โ””โ”€โ”€ MovieSlider.jsx
โ”œโ”€โ”€ pages/          # Page-level views
โ”‚   โ”œโ”€โ”€ Home.jsx
โ”‚   โ”œโ”€โ”€ Favorites.jsx
โ”‚   โ””โ”€โ”€ MovieDetails.jsx
โ”œโ”€โ”€ utils/          # Helper functions
โ”œโ”€โ”€ App.js          # Root component
โ”œโ”€โ”€ App.css         # Global styles / design system
โ””โ”€โ”€ index.js        # Entry point

๐Ÿš€ Run Locally

# 1. Clone the repository
git clone https://github.com/anoopcodehack/movienest.git

# 2. Install dependencies
npm install

# 3. Add your TMDB API key
# Create a .env file in the root:
# REACT_APP_TMDB_API_KEY=your_key_here

# 4. Start the app
npm start

App runs at http://localhost:3000

Get a free API key at themoviedb.org/settings/api


๐Ÿ”ฎ What's Next

  • Genre-based browsing and filtering
  • Sync favorites to a backend (MongoDB + JWT auth)
  • Skeleton loading states
  • Unit tests with React Testing Library
  • PWA support for offline access

๐Ÿ‘ค Author

Anoop A GitHub ยท LinkedIn

About

๐ŸŽฌ Movinest A React-based movie website built to practice real-world frontend development โ€” from designing the UI to deploying a live project online.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages