Build a React Task Board
Computer Science
Build a React Task Board
Build a React Task Board
Turn the React and Node foundations you have started into a small, working Task Board. You will first practice the command-line and React interaction pieces in low-stakes exercises, then apply them to a real app you can run, test, and build.
What you learn by building this
Build it yourself, get guided when you are stuck, and leave with proof you can actually show.
Learning Journey
Prepare the workflow and interaction basics
2 lessonsBuild confidence with the commands and React state patterns needed before touching the Task Board codebase.
Shape the Task Board interface
1 lessonUse the supplied project structure and verified target behavior to turn the starter app into a recognizable Task Board.
Make, verify, and ship the board
1 lessonConnect the visible UI to state, then prove the single Node workload can be installed, tested, built, and served.
Public lesson
Move through a project and run its scripts
Open a terminal.
Predict
What will happen?
Before running anything, predict: which file do you think tells npm what commands a project supports?
Tasks
Now check your current location:
pwd
ls
pwd
ls
pwdprints the folder you are currently in.lslists what that folder contains.
Tasks
Look for a folder that might contain your React/full-stack project. Move into it with:
cd <project-folder-name>
pwd
ls
cd <project-folder-name>
pwd
ls
Check: pwd should now end with your project folder’s name.
1. Practice moving without getting lost
Tasks
Make a harmless practice folder beside your project:
mkdir terminal-practice
cd terminal-practice
mkdir terminal-practice
cd terminal-practice
Tasks
Create two empty folders inside it—one named client, and choose a different name for the other:
mkdir client <your-second-folder-name>
ls
mkdir client <your-second-folder-name>
ls
You should see both names.
Tasks
Now enter client, then return to the practice folder:
cd client
pwd
cd ..
pwd
cd client
pwd
cd ..
pwd
.. means “the folder one level above this one.”
Tasks
Finally, return to your project folder:
cd ..
ls
cd <your-project-folder-name>
cd ..
ls
cd <your-project-folder-name>
Check: ls should show project files again, usually including package.json.
2. Read the project’s command menu
Tasks
Run:
ls
ls
If package.json appears, inspect it:
cat package.json
cat package.json
Tasks
Find the "scripts" section. It may look roughly like this:
"scripts": {
"dev": "...",
"build": "...",
"test": "..."
}
"scripts": {
"dev": "...",
"build": "...",
"test": "..."
}
Your project’s script names may differ. Write down the names you actually see.
package.json is the project’s instructions card for npm: it records dependencies and defines commands such as development, build, and tests.
Tasks
Check: You can point to the "scripts" object and name at least one script your project has.
3. Install vs. run
Tasks
Look for a node_modules folder:
ls
ls
Tasks
If node_modules is missing
Run:
npm install
npm install
This reads package.json and downloads the packages the project needs into node_modules.
Tasks
If node_modules already exists
You can still run npm install; it checks that installed packages match the project’s dependency list.
Tasks
When it finishes, check:
ls
ls
Check: a node_modules folder exists, and the terminal did not end with an error message.
Keep this distinction clear:
| Command type | What it does |
|---|---|
npm install | Downloads project dependencies |
npm run <script> | Runs one script defined in package.json |
Installing does not start your app.
4. Start the development server
Tasks
Return to "scripts" in package.json. Do you have "dev" or "start"?
- If you have
"dev", runnpm run dev. - If you have
"start", runnpm startornpm run start, depending on what the script is named.
Use the command that matches your file:
npm run <your-development-script-name>
npm run <your-development-script-name>
Tasks
The terminal should print a local URL, often something like http://localhost:....
Open that URL in your browser.
Check: You can see the app page in the browser. Make one tiny visible change to text in the page, save the file, and confirm the browser updates.
Tasks
To stop the server, return to the terminal and press:
Ctrl + C
Ctrl + C
5. Locate the React entry files
Tasks
From the project root, list likely source folders:
ls
ls
Look for names such as:
srcclientappfrontend
Tasks
Enter the folder that contains the React app, then list its contents:
cd <react-app-folder>
ls
cd <react-app-folder>
ls
If there is a src folder:
cd src
ls
cd src
ls
Tasks
Look for an entry file. Common names include:
main.jsx,main.tsxindex.jsx,index.tsxApp.jsx,App.tsx
Open the likely main or index file in your editor. It usually contains a call similar to:
createRoot( /* a page element */ ).render( /* the app component */ )
createRoot( /* a page element */ ).render( /* the app component */ )
That file connects React to the actual browser page.
Tasks
Then open App.jsx or App.tsx. This is commonly the first component you see rendered.
Tasks
Check: Identify these two roles in your own project:
- Entry file: the file that mounts React into the page.
- App component: the file containing the main UI component.
If your project uses a framework such as Next.js, you may instead find an app or pages folder. In that case, find the file that renders the home route rather than forcing it to match the names above.
6. Build the project
Tasks
Return to the folder containing the relevant package.json. If you are inside src, go up one level first:
cd ..
ls
cd ..
ls
Confirm package.json is present. Then check its scripts again and find a build script.
Tasks
Run the matching command:
npm run build
npm run build
A build creates optimized files for deployment. Unlike the development server, it usually finishes and returns you to the command prompt.
Tasks
Afterward, run:
ls
ls
Look for a newly created output folder. Common names are dist, build, or .next.
Check: The build command finishes successfully, and you can name the output folder it created.
If it fails, read the first clear error in the terminal. Don’t delete files or guess at fixes yet; copy the error message and the command you ran.
7. Check for tests
Tasks
Inspect scripts one more time:
cat package.json
cat package.json
Do you see a "test" script?
Tasks
-
If yes, run:
npm testnpm testSome test tools stay open and watch for changes. Press
Ctrl + Cwhen you have seen the result. -
If no, your project does not currently have an npm test command. That is useful information—not every starter project includes tests.
Tasks
Check: State one of these accurately:
- “This project has a test script, and it passed/failed.”
- “This project has no
testscript inpackage.json.”
Your terminal map
Tasks
Before you finish, fill this in for your own project:
Project root folder: ____________________
React app folder: _______________________
React entry file: _______________________
Main app component: _____________________
Development command: ____________________
Build command: __________________________
Test command (or “none”): _______________
Project root folder: ____________________
React app folder: _______________________
React entry file: _______________________
Main app component: _____________________
Development command: ____________________
Build command: __________________________
Test command (or “none”): _______________
One last distinction:
- Install gets the tools the project depends on.
- Development server lets you work locally and see changes.
- Build creates production-ready files.
- Test checks expected behavior automatically.
Course Outline
3 modules · 4 lessons
Prepare the workflow and interaction basics
Shape the Task Board interface
Make, verify, and ship the board
Learn by building your own version.
Remix this public project to open the workspace, follow the guided build, and let the AI mentor teach you through the work instead of doing it for you.