One source
A controlled form input gets its current value from React state and updates that state on every change. Text inputs use a string value prop. Checkboxes use a boolean checked prop.
This makes your form easy to read, validate, reset, and submit because React owns the important form data.
Why control forms
In plain HTML, the browser remembers what the user typed. In React, you usually want that data in state so the rest of your component can use it.
For your project, this matters in forms like adding a task, registering a team member, filtering events, or entering UPI payment details for a demo checkout.