My YT Videos App is a highly scalable and fast-loading video streaming platform inspired by YouTube. It provides essential features like a homepage showcasing YouTube videos using the YouTube API, a responsive sidebar for navigation, a search bar for querying videos, and video playback with a live chat section and nested comments. The app is built using modern web technologies and frameworks like React and Redux Toolkit.
- Create a scalable and performant video streaming web application.
- Implement features commonly found in video-sharing platforms like YouTube.
- Provide an intuitive user interface for searching, browsing, and watching videos.
- Showcase best practices in React development, including state management with Redux.
- Optimize API requests for a smoother user experience.
- Displays a feed of YouTube videos fetched from the YouTube API.
- Supports seamless infinite scrolling for loading more videos as the user scrolls down.
- Provides a user-friendly navigation sidebar.
- Toggles visibility on button click, replicating YouTube's UI functionality.
- Features a search bar for querying videos.
- Utilizes debouncing (200ms) for efficient API calls to avoid unnecessary requests.
- Implements caching to store search results, reducing duplicate API calls.
- Displays relevant videos based on the search query.
- Mimics YouTube's sidebar visibility functionality.
- Clicking on a video card redirects to the Watch Page for video playback.
- Allows users to watch videos in a player container.
- Provides a live chat section that continuously updates without freezing the UI.
- Users can type chat messages, which appear alongside other chat messages, replicating real YouTube live chat functionality.
- Includes a comments section supporting N-level nested comments, a feature not found on YouTube.
- React: Front-end framework for building user interfaces.
- Redux Toolkit: State management library for handling application-level state.
- React Router: Routing library for managing page navigation.
- YouTube API: For fetching video data.
- Tailwind CSS: Utility-first CSS framework for styling.
- Debouncing: Implemented for optimizing search bar performance.
- Caching: Cached search results to reduce API requests and enhance user experience.
The project follows a modular structure to enhance maintainability:
components
: Contains reusable UI components.utils
: Holds utility functions, Redux slices, and constants.App.js
: The main application component.Head.js
: The header component with the search bar.Body.js
: The main content component with the homepage, sidebar, and routing.MainContainer.js
: The container for displaying videos on the homepage.WatchPage.js
: The component for video playback, live chat, and comments.SearchResults.js
: The component for displaying search results.- Redux Toolkit is used for state management, including toggling the sidebar and caching search results.
- Clone the repository:
git clone <repository-url>
- Navigate to the project directory:
cd shopping-cart
- Install dependencies:
npm install
- Start the development server:
npm start
- Open the app in your browser.
- Explore the homepage to discover videos.
- Use the sidebar for navigation.
- Search for videos using the search bar.
- Click on video cards to watch videos.
- Interact with live chat and comment on videos.
Enjoy exploring and watching videos on My YT Videos App!