OTT – Over-the-top media is no longer the future of entertainment but is now the reality.
With over 50% of North Americans maintaining Netflix subscriptions, it is evident that the consumers love OTT content. It is the most popular form of entertainment today across all age groups.
All that a consumer needs to have, is a compatible hardware device enabled with a good internet connection.
An “over-the-top” media service is an online content provider that offers streaming media as a standalone product. An OTT conversation largely revolves around video-on-demand. However, it also supports audio, messaging, and VOIP.
Any application or service that provides a product over the internet while bypassing traditional media services is an OTT application.
Popular OTT applications for video streaming are Netflix, Amazon Video, YouTube, HBO, etc.
Seeing the demand of OTT applications, the team at Ezone Pvt. Ltd., which is popular in providing software solutions in the field of entertainment, has started with a project to develop an OTT application – ViewTube.
To attract good viewership the application should provide a rich user experience.
Styled-component is a package for CSS language of design that helps to develop applications with high-quality design.
Hence the team at Ezone wants to design UI implementing the principles followed by styled-component.
The application should attract different types of users:
-
One set of users who are all keen on viewing the videos over this OTT platform.
-
The second set of users who are interested in creating and publishing their own videos, and schedule live events over this OTT platform.
In the first phase, to stay ahead in the heavily competitive market, the Ezone Pvt. Ltd. wants to release the ViewTube application quickly to market.
React applications can be designed and styled using CSS quickly by incorporating styled-component package.
You as a frontend developer have been assigned the responsibility to quickly get the first version of ViewTube ready.
In the first version, the landing view of the application should be rendered with video cards having brief description, number of views, duration since it was published, and the length of the video.
The application should have a header with a search box, links with icons and tooltips, and a collapsible sidebar with navigation links with icons.
- The Card component is defined in file
Card. jsx
and it uses styled-components. - Create styled components StyledCard(
<div>
), VideoImage(<img>
), CardSubtitle(<h5>
), CardTitle(<h4>
) in the fileCard.jsx
using styled-component package to complete the Card component design. - Add various style attributes like background color, font-family, font-weight to the styled components to add styles to the Card component.
- The Chip component is defined in file
Chip. jsx
that uses the ChipWrapper styled component. - Create styled component ChipWrapper(
<button>
) in fileChip.jsx
using styled-components package. - Add style attributes like color, border, background color, font-family, padding, border-radius to the ChipWrapper component to render the Chip component as a chip to render category items.
- The file
Icon.jsx
contains Icon component that uses the StyledIcon component to style the Icon. - Create component StyledIcon(
<i>
) in fileIcon.jsx
using styled-components package - Add style attributes like color, font size, padding-left to style the Icon component.
- Try to use
class name
props in the StyledIcon component using theattrs
property of styled-component which will help in passing the value of icon name provided by props.
-
The file
Input.jsx
contains definition of Input component that uses StyledInput component for styling. -
Create component StyledInput(
<input>
) in the fileInput.jsx
using styled-component package. -
Add style attributes like background-color, height, font-size, width, border to the styled component.
-
Try to add placeholder to StyledInput component using
selector
property of styled-component.
- Download and unzip the boilerplate code.
- Run the command
npm install
to install the dependencies. - Open the boilerplate code in VSCode to develop the assignment solution.
- The boilerplate consists of the solution code for the ViewTube app.
- The boilerplate also contains the
videoData.json
file located inside the data folder. - The video data is by default imported into the component, and you can use those data to directly render in card data.
- The above instructed ViewTube components will be created into component files already in the
component
folder. - All existing components declared in the boilerplate should be implemented using styled-component package of React.
- While defining styled-components, start from the outermost component and 4roceed towards the inner components.
- Comment out the components not defined in the rendering logic to test the output at every stage of design.
- Zip the solution code with the name same as the assignment name.
- Upload the zipped solution for submission.