In this assignment you will use JavaScript to build a weather app. To get the weather, we'll use the OpenWeatherMap API.
To start the lab, you must follow this GitHub Classroom link. This will create a private repository for you using our classroom site. We will only grade repositories created and submitted this way.
Once you "Accept the assignment" on GitHub Classroom, it will create a new repository for you and grant you access to it on GitHub. In order to start working on the lab, simply clone the repository to your laptop or other working environment.
Use the tutorials to get started with using the weather API. We'll begin by building a form that gets the current weather:
Once you have completed the basic weather calls from the tutorial, use the API to add the 5-day and 3-hour forecast.
There is a significant amount of data returned from the API. Spend a reasonable amount of time to figure out how to show as much of this as you can, including icons where possible.
Add some design to the page. Create a page that looks professional and follows the web design criteria we have discussed:
-
spacing -- use white space effectively to make the site clearer
-
color -- use color effectively to make the site appealing
-
typography -- make it pleasant to read
-
consistency -- everything should match
-
responsive design -- the site should work as well on mobile as on desktops; mobile-first designs for mobile, then expands to desktop
In a footer, you must include a link to your GitHub repository, which must be stored in GitHub Classroom.
On Canvas, submit the URL for your website, which should be running on your DigitalOcean server.
When we grade these labs, we will award points using the following rubric:
Item | Points |
---|---|
Search for current weather works | 40 |
5-day/3-hour weather forecast added | 30 |
Effort spent adding information that is returned from the API | 20 |
Uses good web design principles | 10 |
For the web design principles, you will receive 2 points for each for spacing, typography, color, consistency, and responsive design. We will subtract 1 point for a principle if you need some work, 2 points if you need a lot of work.