Create a simple web application using React and Next.js that displays a list of popular movies and allows users to view details about each movie. The application should be containerized using Docker.
- Fetch a list of popular movies from The Movie Database (TMDb) API.
- Display the movies in a grid layout with movie posters, titles, and release dates.
- Implement pagination or infinite scrolling to load more movies.
- Create a separate page to display detailed information about a selected movie.
- Include the movie poster, title, overview, release date, and average rating.
- Implement dynamic routing using Next.js.
- Add a search bar that allows users to search for movies by title.
- Display search results in the same grid layout as the main page.
- Use CSS modules or a styling solution of your choice (e.g., Tailwind CSS, styled-components).
- Make the application responsive for mobile and desktop views.
- Create a Dockerfile to containerize the Next.js application.
- Include instructions on how to build and run the Docker container.
- Use functional components and hooks.
- Implement proper error handling and loading states.
- Use TypeScript for type checking (optional but preferred).
- Include at least one unit test for a component or function.
- Use The Movie Database (TMDb) API: https://developers.themoviedb.org/3
- You'll need to sign up for a free API key.
- Provide a GitHub repository with your code.
- Include a README.md file with:
- Setup instructions
- Docker build and run commands
- Any assumptions or decisions made during development
- Ideas for future improvements
- Code quality and organization
- Proper use of React and Next.js features
- API integration and error handling
- User interface and experience
- Docker implementation
- Completeness of the solution within the time constraint
Good luck!