- Set up a React project
- Created a new React project using Create React App.
- Design the layout.
- Designed a low-fidelity layout of the web page on a desktop using Figma.
- Designed the home page and the video player.
- Replicated some elements from the Netflix UI, including the different pages (Home, Recent, Watched) as well as the carousel design for recommended videos.
- Included a large thumbnail of the featured media.
- The video player design is standard, with a vertical carousel of recommended videos off to the side.
- Link to Figma.


- Identify required components to implement the features in the wireframe
- Components needed for Page 1:
- Buttons for the Home, Recent and Watched pages.
- Buttons for the settings and profile icons.
- Search functionality and search bar.
- Horizontal carousels with recommended video thumbnails.
- Featured Media display.
- Settings and Account buttons on the top right.
- Components needed for Page 2:
- Buttons for the Home, Recent and Watched pages.
- Buttons for the settings and profile icons.
- Video player with playback and other standard video controls.
- Video title and description.
- Vertical carousel with recommended video thumbnails.
- Search functionality and search bar.
- Settings and Account buttons on the top right.
- Implement the home page.
- I started implementing the home paged based on my wireframe that I created in Figma, but then I chose to pivot to the video player section because I wanted to build the rest of the homepage around the player functionality and routing method.
- Below is an outline of some of the steps I took for the carousel implementation.
- Installed the library react-responsive-carousel and imported the component Carousel.
- Included video thumbnails into the carousel. Ideally, the thumbnails should come from our database, but I added some images manually to demonstrate how it would look and test my display in the meantime.
- Implement the video player.
- Identified a suitable video player library - used ReactPlayer
- Installed the video player library - installed react-player.
- Set up a new component (called PlayerPage), in which I imported modules from the react-player library.
- Needed to connect the home page to the player page so that a button on the home page will take you to the player page. In the finished product, this will be more complex and include a route from each video thumbnail in the carousel to the corresponding video player page.
- Currently fixing issues with the route. The initial plan was to use the module Switch from the react-router-dom library, but this component does not exist in the latest version of react-router-dom. Currently investigating the possibility of implementing the modules Router or Link instead.
- Configure the video source.
- In the final product, the video source would be our chosen database, but I included a Youtube URL in my code for the meantime to test the video player implementation.
- Implement basic search.
- Remaining step: Implement playback controls and style the video player.
- Created a new component for the search bar, Search.js. Chose to encapsulate the search functionality in order to be able to use it in multiple pages, as described in the problem statement.
- Implemented React's useState hook in order to manage the search state.
- Remaining step: Use onChange ****to handle search input changes.
- Remaining step: Add a Submit search capability.
- Data retrieval portion.
- I set up a backend server using Node.js ( as well as Express Node and Mongoose).
- Connected a sample db in MongoDB using a connection string (hosted by Azure).
- Tested the connection
- Remaining step: Define API endpoints on the server side.
- Remaining step: Make API requests from your React application.
- Remaining step: Display results.
- Remaining step: Style search bar.
- Remaining step: Connect React components with the backend.
The followings are the components I still need to tackle:
- Implement video upload functionality.
- Adding administrative functionality.
- Consideration for handling large databases.
Here is the link to the Github repository: https://github.com/amanserhan/react-web-app