MovieNest is a movie streaming and discovery platform where users can explore and enjoy movies and TV shows from every genre. Discover new favorites, revisit classics, and keep track of what you love, all in one seamless experience!
- Browse Movies: Navigate through a variety of movies pulled directly from TMDB. (The Movie Database)
- Search Functionality: Querying movies/shows using keywords.
- Movie Details: Using route parameters to display specific details including ratings, genres, release dates, and summaries.
- Bookmarks: Save movies and shows to your personal watchlist so you can revisit them anytime.
TMDB_API_KEY: API key from The Movie DatabaseNEXT_PUBLIC_SUPABASE_URL: Supabase project URLNEXT_PUBLIC_SUPABASE_ANON_KEY: Supabase anonymous keySUPABASE_SERVICE_ROLE_KEY: Supabase admin key
This project is fully containerized. Run it using Docker for a consistent development and production environment.
-
Ensure Docker and Docker Compose are installed
You’ll need both Docker and Docker Compose installed on your machine.- Download Docker Desktop
- Verify installation by running
docker --versionanddocker compose versionin your terminal.
-
Create your environment file
In the root of the project, create a file named.envand add your environment variables (see.env.examplefor reference).Make sure not to commit this file to version control (it contains sensitive information).
-
Build and run the container
From the project directory, run:docker compose up --build
-
Access the app
Once the build is complete, open your browser and go to:http://localhost:3000
-
Stop the container
To stop the app, press Ctrl + C or run:docker compose stop
-
Restart the container (without rebuilding)
To start it again later, use:docker compose start
If you prefer running the project without Docker:
-
Clone the repository
git clone https://github.com/firas1438/MovieNest.git
-
Install dependencies
npm install
-
Run the development server
npm run dev
Contributions are welcome! If you find any bugs or have suggestions for improvement, please open an issue or submit a pull request.