$24
In this assignment you will use JavaScript to build a weather app. To
get the weather, we'll use the [OpenWeatherMap
API](https://openweathermap.org/api).
Starting the lab
To start the lab, you must follow this [GitHub Classroom
link](https://classroom.github.com/a/QzDAEI1o). 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.
Tutorial
Use the [tutorial](home.md)
on the Wiki to get started with using the weather API. We'll begin by
building a form that gets the current weather:
![weather form](images/weatherForm.png)
Weather Forecast
Once you have completed the basic weather calls from the tutorial, use
the API to add the 5-day and 3-hour forecast.
Details
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.
Web Design
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
Link to GitHub repository
In a footer, you must include a link to your GitHub repository, which must be
stored in GitHub Classroom.
Submission
On Canvas, submit the URL for your website, which should be running on
your DigitalOcean server.
Rubric for Grading
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 creating a professional-looking webpage | 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.