The Youtube Clone project, implemented during the Namaste React course taught by Akshay Saini, serves as a demonstration on how to tackle machine coding rounds during interviews. This proposal outlines additional features, technology stack updates, challenges, and justifications.
Here is the link for demo - YouTube Clone
-
Hamburger Menu
- implemented a hamburger menu with a home icon, providing a seamless navigation experience. Clicking the home icon redirects users to the home page without triggering a full page reload, enhancing the overall responsiveness and user interface of the project
-
Search Box
- Utilizes a live API from YouTube for real-time search results.
- Implements debouncing to optimize search requests.
- Includes caching mechanisms for improved performance.
-
Video Cards
- Utilizes a live API from YouTube for real-time data for thumbnails, description, viewcount etc.
- incorporated the YouTube embed functionality to seamlessly integrate and display videos within the project interface upon clicking on any video cards
-
Comments Section
- Implements a comments section with hard-coded comments due to YouTube API limitations on nested comments.
- Utilizes the concept of recursion to display nested comments.
-
Live Chat
- Implements a real-time live chat feature.
- Challenges addressed in the "Challenges" section below.
- Getting Live Data
- Explore options for handling live or near real-time data.
- Consider using:
- Web Sockets for applications like trading platforms (e.g., Zerodha, Binance, WhatsApp).
- API Polling for applications like Gmail, Cricbuzz.
- Updating the UI
- Address challenges related to displaying live or near real-time data in the user interface.
- Discuss potential solutions such as efficient rendering mechanisms.
- React.js: A declarative, efficient, and flexible JavaScript library for building user interfaces.
- Redux: A predictable state container for managing the application's state.
- React-router-dom: A standard library for routing in React.
- Tailwind CSS: A utility-first CSS framework for rapid UI development.
- Jest: A JavaScript testing framework for unit and integration testing.
- Parcel: Parcel is a blazing-fast, zero-configuration web application bundler that simplifies the process of building modern web applications by automatically handling tasks such as code bundling, minification, and asset optimization.
- Utilizes Redux store for managing live chat data.
- Creates a
chatSlice.js
to handle chat-related state and logic. - Adds
chatSlice
to the Redux store (e.g.,store.js
). - Enables the sending of custom messages within the live chat.
- Creates a
I anticipate spending approximately 5 minutes discussing the outlined features, technology stack updates, challenges, and justifications with the interviewer.