MovieMood is a sleek and modern movie discovery app built with React, Appwrite, and the TMDB API. Users can search for movies, view trending results, and track the most searched movie terms using Appwrite's database.
Discover movies, view trending searches, and enjoy a smooth, interactive UI.*
- π Search Movies β Find movies using the TMDB API.
- π₯ Trending Searches β View top searched movies.
- π Appwrite Integration β Track and store search counts for analytics.
- β± Debounced Search β Prevents unnecessary API calls while typing.
- π± Responsive UI β Works great across screen sizes.
- Frontend: React, TailwindCSS
- API: TMDB (The Movie Database)
- Backend: Appwrite (Database & ID service)
git clone https://github.com/Zhoha28/MovieMood.git
cd moviemood
npm installCreate a .env file in the root:
VITE_TMDB_API_KEY=your_tmdb_api_key
VITE_APPWRITE_PROJECT_ID=your_appwrite_project_id
VITE_APPWRITE_DB_ID=your_appwrite_db_id
VITE_APPWRITE_COLLECTIONS_ID=your_appwrite_collection_idnpm run devVisit http://localhost:5173
- Create a project on Appwrite Cloud.
- Create a Database and Collection with these fields:
searchTerm(String)count(Number)movie_id(String)poster_url(String)
- Update permissions to allow public access (
role:all) for read/write (for testing). - Add your origin (
http://localhost:5173) to CORS settings.
useStateβ For managing local state (e.g., searchTerm, movie list, loading)useEffectβ To fetch movies on search term updateuseDebounce(fromreact-use) β For optimizing API calls by waiting for user to stop typing
src/
βββ components/
β βββ Search.jsx
β βββ MovieCard.jsx
β βββ Spacer.jsx
β βββ Spinner.jsx
βββ appwrite.js
βββ App.jsx
βββ main.jsx
- π₯ TMDB API for movie data
- βοΈ Appwrite for backend services