Self-paced

Explore our extensive collection of courses designed to help you master various subjects and skills. Whether you're a beginner or an advanced learner, there's something here for everyone.

Bootcamp

Learn live

Join us for our free workshops, webinars, and other events to learn more about our programs and get started on your journey to becoming a developer.

Upcoming live events

Learning library

For all the self-taught geeks out there, here is our content library with most of the learning materials we have produced throughout the years.

It makes sense to start learning by reading and watching videos about fundamentals and how things work.

Search from all Lessons


LoginGet Started

Register to 4Geeks

โ† Back to Projects

Traffic Light

Difficulty

  • easy

Average duration

4 hrs

Technologies

Difficulty

  • easy

Average duration

4 hrs

Technologies

๐ŸŒฑ How to start this project

Sometimes we want to create components with an internal state that changes over time. Imagine a traffic light that changes color every 3 seconds, for that we normally initialize a variable color and set it to a default color:

1let color = "blue";

But we want our component to re-render and change the website's HTML every time the variable color changes, that's why we use hooks:

1// โ†“ variable name โ†“ default value 2const [ color, setColor ] = useState("red"); 3// โฌ† function to change the "color" variable

From now on, every time we use the function setColor to change the color variable, the component will re-render and the entire traffic light HTML will be updated with the new color.

You can read more about hooks here.

๐ŸŒฑ How to start this project

Do not clone this repository because we are going to be using a different template.

We recommend opening the react boilerplate using a provisioning tool like Codespaces (recommended) or Gitpod. Alternatively, you can clone it on your local computer using the git clone command.

This is the repository you need to open or clone:

1https://github.com/4GeeksAcademy/react-hello

๐Ÿ‘‰ Please follow these steps on how to start a coding project.

๐Ÿ’ก Important: Remember to save and upload your code to GitHub by creating a new repository, updating the remote (git remote set-url origin <your new url>), and uploading the code to your new repository using the add, commit and push commands from the git terminal.

๐Ÿ“ Instructions

Let's simulate a traffic light like this one.

The light has to glow when clicked.

  • The whole purpose of the component is to display a traffic light with red, yellow and green lights.
  • When any light is clicked (selected), it has to glow, but the other lights have to stop glowing.
  • The component must have a hooked state variable that tracks the color:
1const [ color, setColor ] = useState("red");
  • Use the setColor function to change the color, and the component will automatically re-render (because it's hooked with useState).
  • Use the ReactDOM.render to render the component into the DOM, like this:
1ReactDOM.render(<TrafficLight />, document.querySelector('#app'));

๐Ÿ”ฅ Bonus

  • 2 Create one button that when you click on it, cycles the traffic light selected color between red, green and yellow.
  • 10 Have a button that when clicked, it adds an extra color "purple" to the traffic light.

This and many other projects are built by students as part of the 4Geeks Academy Coding Bootcamp by Alejandro Sanchez and many other contributors. Find out more about our Full Stack Developer Course, and Data Science Bootcamp.

Sign up and get access to solution files and videos

We will use it to give you access to your account.
Already have an account? Login here.

By signing up, you agree to the Terms and conditions and Privacy policy.

Difficulty

  • easy

Average duration

4 hrs

Technologies

Difficulty

  • easy

Average duration

4 hrs

Technologies

Difficulty

  • easy

Average duration

4 hrs

Technologies

Difficulty

  • easy

Average duration

4 hrs

Technologies

Sign up and get access to solution files and videos

We will use it to give you access to your account.
Already have an account? Login here.

By signing up, you agree to the Terms and conditions and Privacy policy.

Difficulty

  • easy

Average duration

4 hrs

Technologies

Difficulty

  • easy

Average duration

4 hrs

Technologies