This project is meant to be a creative, open-ended exploration of React as a way to gauge an applicant's understanding of and willingness to experiment with modern frontend development.
What we're looking for:
- Basic understanding of React fundamentals
- Willingness to research and/or learn by reading code
- Willingness to ask questions when stuck
- Willingness to receive feedback
- Ability to follow directions
- Clean, consistent code
What we're not looking for:
- Perfection
- Whether you favor tabs or spaces (or other arbitrary style preferences)
- A full-fledged product
- Flawless design
We understand that this is for an internship position and don't expect the same kind of code that a senior developer might write. So while this project is untimed, don't spend a sunny weekend inside hacking away trying to make everything perfect; work on it until you get bored and send it on back.
This project was scaffolded with Create React App, so it follows many of the CRA conventions.
- Fork this project to your own Github account.
- Clone the project to your computer.
- Run
npm install
oryarn install
from the project root folder to install dependencies. - Run
npm start
oryarn start
to start the CRA development server.
We have two custom components in this project - Parent (/src/Parent.js
) and Child (/src/Child.js
). Parent manages some state and passes that state to the Child component as props. The goal of this assignment is to use some or all of the props to customize the Child component. It can be anything - as serious or weird as you want.
- Modify
Child.js
andChild.css
to create your component. - Commit and push as you work.
- When finished, email a link to your forked project on Github.
Child is given these props:
blink
: a boolean that alternates between true/false about every second.color
: a string that represents a color. It starts as the hex code for the color "steelblue".setColor
: a callback function that sets the "color" state.
- Unless a bug or a typo is discovered, the only files that should be edited are
/src/Child.js
and/src/Child.css
. Other files can be read/used, but not modified. - No additional dependencies should be added. Feel free to use any existing dependencies.
- No additional files should be created. The exception could be a test file for Child, but this is not required.