- Frontend Framework: React.js
- State Management: React Hooks (useState, useEffect, useCallback, useMemo)
- HTTP Client: Axios
- Styling: Bootstrap 5, CSS Modules
- Component Architecture: Functional Components with Custom Hooks
- API: OMDB API for movie data
- Optimization: Lazy loading, Virtualization, Custom image optimization
- Performance: React.memo, useCallback, useMemo for optimized rendering
- Accessibility: ARIA attributes, Focus management, Skip links
- Development Tools: ESLint, Prettier
- Error Handling: Error boundaries, API error handling
FilmFinder is a dynamic and responsive web application that allows users to discover, search, and collect their favorite movies. The application fetches movie data from the OMDB API, presenting it in an intuitive and visually appealing interface. Users can search for specific movies, browse through popular categories, and maintain a personalized collection of favorite movies for future reference.
- Comprehensive Movie Search: Search for any movie using the OMDB API with real-time results
- Categorized Movie Browsing: Explore movies across popular franchises like Avengers, Harry Potter, and more
- Favorites Collection: Save preferred movies to a dedicated favorites section for quick access
- Responsive Design: Seamless experience across all device sizes from mobile to desktop
- Performance Optimization: Lazy loading, virtualization, and caching strategies for smooth user experience
- Accessibility Compliant: Focus management, ARIA attributes, and keyboard navigation support
Follow these steps to set up the project locally:
-
Clone the repository
git clone https://github.com/your-username/film-finder.git cd film-finder
-
Install dependencies
npm install
-
Create environment variables
Create a
.env
file in the root directory with:REACT_APP_OMDB_API_KEY=your_omdb_api_key
Note: You can get an API key from OMDB API
-
Start the development server
npm start
-
Browsing Movies
- When you first open the application, you'll see popular movie categories
- Scroll through each section to explore different movie franchises
-
Searching Movies
- Use the search bar in the navigation to find specific movies
- Results will appear in real-time as you type
-
Managing Favorites
- Click the heart icon on any movie to add it to your favorites
- Access your favorites collection by scrolling to the "FAVORITES" section
- Remove movies from favorites by clicking the remove button on favorited movies
-
Movie Details
- Click on a movie card to view additional information about the movie
Contributions are always welcome! Here's how you can contribute:
-
Fork the repository
- Click the "Fork" button at the top right of this page
-
Clone your fork
git clone https://github.com/your-username/film-finder.git cd film-finder
-
Create a branch
git checkout -b feature/amazing-feature
-
Make your changes
- Implement your features or bug fixes
- Follow the existing code style and organization
-
Test your changes
npm test
-
Commit your changes
git commit -m "Add amazing feature"
-
Push to your branch
git push origin feature/amazing-feature
-
Create a Pull Request
- Open a pull request from your fork to the main repository
- Provide a clear description of the changes and reference any related issues
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any feedback, please reach out to us at --> darshangaikwad4114@gmail.com