This repo is for the senior frontend engineer assessment
HTML
1
2,529 commits
updated Feb 6, 2023
Thanks for taking the time to interview with the Gradio team, the next step in the process includes completing a take-home assessment.
The format of the assessment will consist of:
The purpose of this assessment is to create a custom dropdown menu. The dropdown component is an important input component within the Gradio library. It allows developers to enable users to select from a list of options within their demos. This repository currently implements a standard dropdown menu using the html select element:

As shown above, the current dropdown is limited in its capabilities and very simplistic design. Your job will be to replace this dropdown with your own custom implementation and add more features, requested by our developers. Use the current dropdown component implementation as a starting point and build a completely custom dropdown within a private fork of this repository. Below is an example of a custom dropdown with extra functionality, don't feel the need to mimic this exact dropdown, we want to see your own unique approach:

First, you will create a private fork of this repository and follow the CONTRIBUTING.md guide in order to setup your local development environment (both client and server side).
It's helpful to know the overall structure of the repository, although you will only have to work with a couple of files.
/gradio: contains the Python source code for the library
/gradio/interface.py: contains the Python source code for the core Interface class/gradio/blocks.py: contains the Python source code for the core Blocks class/gradio/components.py: contains the Python source code for the components, you can add your custom components here./ui: contains the HTML/JS/CSS source code for the library (start here for frontend changes)
/test: contains Python unit tests for the library
/demo: contains demos that are used in the documentation, you can find Gradio examples over here.
/website: contains the code for the Gradio website (www.gradio.app). See the README in the /website folder for more details
Below are the files you will need to know about:
gradio/ui/packages/app/src/components/Dropdown/Dropdown.svelte
Dropdown component and wraps it in a Block.gradio/ui/packages/form/src/Dropdown.svelte
choices variable is used to create an <option> with the current implementation.gradio/gradio/components.py
multiselect bool parameter to allow the developer to toggle on the ability to select multiple choices.Please don't feel the need to spend too much time on this assessment! To re-iterate: you can always discuss your approach and how you would've implemented something you didn't have the time for. We're mainly looking for how you work and communicate.
(top 30 of 108)
HTML
83.4%
Python
11.4%
TypeScript
2.3%
Svelte
1.7%
This repo is for the senior frontend engineer assessment
HTML
1
2,529 commits
updated Feb 6, 2023
Thanks for taking the time to interview with the Gradio team, the next step in the process includes completing a take-home assessment.
The format of the assessment will consist of:
The purpose of this assessment is to create a custom dropdown menu. The dropdown component is an important input component within the Gradio library. It allows developers to enable users to select from a list of options within their demos. This repository currently implements a standard dropdown menu using the html select element:

As shown above, the current dropdown is limited in its capabilities and very simplistic design. Your job will be to replace this dropdown with your own custom implementation and add more features, requested by our developers. Use the current dropdown component implementation as a starting point and build a completely custom dropdown within a private fork of this repository. Below is an example of a custom dropdown with extra functionality, don't feel the need to mimic this exact dropdown, we want to see your own unique approach:

First, you will create a private fork of this repository and follow the CONTRIBUTING.md guide in order to setup your local development environment (both client and server side).
It's helpful to know the overall structure of the repository, although you will only have to work with a couple of files.
/gradio: contains the Python source code for the library
/gradio/interface.py: contains the Python source code for the core Interface class/gradio/blocks.py: contains the Python source code for the core Blocks class/gradio/components.py: contains the Python source code for the components, you can add your custom components here./ui: contains the HTML/JS/CSS source code for the library (start here for frontend changes)
/test: contains Python unit tests for the library
/demo: contains demos that are used in the documentation, you can find Gradio examples over here.
/website: contains the code for the Gradio website (www.gradio.app). See the README in the /website folder for more details
Below are the files you will need to know about:
gradio/ui/packages/app/src/components/Dropdown/Dropdown.svelte
Dropdown component and wraps it in a Block.gradio/ui/packages/form/src/Dropdown.svelte
choices variable is used to create an <option> with the current implementation.gradio/gradio/components.py
multiselect bool parameter to allow the developer to toggle on the ability to select multiple choices.Please don't feel the need to spend too much time on this assessment! To re-iterate: you can always discuss your approach and how you would've implemented something you didn't have the time for. We're mainly looking for how you work and communicate.
(top 30 of 108)
HTML
83.4%
Python
11.4%
TypeScript
2.3%
Svelte
1.7%