What you will use in this project
- Calling REST APIs with fetch
- Async and await with Promises
- Parsing and rendering JSON
- Graceful loading and error states
Complete each step in the editor and watch the result as your page takes shape.
Create a weather dashboard that fetches data from a real API.
Display current conditions and a forecast.
Medium · +150 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 10 steps. Each one has its own pass criterion. Click Check code on every step to verify your progress and earn the full +150 XP.
| # | Step & pass criterion | Weight |
|---|---|---|
| 1 | Search bar Search form and input present | 15 pts |
| 2 | Status containers Loading and error containers present | 5 pts |
| 3 | Current-weather card Current-weather card with child ids | 5 pts |
| 4 | Forecast container Forecast container present | 10 pts |
| 5 | Style the layout CSS uses real layout and media query | 5 pts |
| 6 | Wire the form Loading indicator toggled | 5 pts |
| 7 |
Fetch with async/await
|
30 pts |
| 8 | Render current JS updates current-weather ids | 10 pts |
| 9 | Render forecast JS appends forecast cards | 10 pts |
| 10 | Error and loading states Error class toggled | 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