What you will use in this project
- DOM manipulation and event delegation
- Persisting state with localStorage
- HTML5 drag-and-drop API
- Composable CSS components
Complete each step in the editor and watch the result as your page takes shape.
Build a feature-rich todo application.
Add local storage, filters, and drag-and-drop.
Easy · +90 XP · HTML CSS JavaScript
Check code when you’re ready. We grade your work against the step’s rubric and tell you exactly what passed and what still needs work.
This project is broken into 9 steps. Each one has its own pass criterion. Click Check code on every step to verify your progress and earn the full +90 XP.
| # | Step & pass criterion | Weight |
|---|---|---|
| 1 | Sketch the markup Form, input, and list ids present | 15 pts |
| 2 | Filter tabs Three filter buttons present | 15 pts |
| 3 | Model the data todos array declared | 5 pts |
| 4 | Render the list JS renders todos into the DOM | 10 pts |
| 5 | Add new todos Submit handler with preventDefault | 5 pts |
| 6 |
Toggle done and delete
|
25 pts |
| 7 | Persist with localStorage localStorage w3p_todos read and write | 15 pts |
| 8 | Wire the filters Active filter read from click | 5 pts |
| 9 | Drag and drop reorder Draggable plus drop events wired | 5 pts |
Sign in to your W3Schools account to unlock this project, earn XP, and track your progress.
Sign in Create accountIf you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com
If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com