simple weather app using javscript html and css

Category Item Function Description Mark category Rubric Description Mark Max Marks Mark Page doesn't show anything 0 Page displays the correct elements (titlebar, two text fields, map, save button) 1-2 ... and text fields and buttons are labelled appropriately 3 ... and interface shows evidence of design consideration (not abitrarily positioned) 4 No attempt was made 0 Entering a value in location field (keypress, button or 'return') results in geocoding query 1 … and this query works and the map is centred on this location 2 ... and the resulting location is visualised on the map 3 ... and entering an invalid location shows nothing (or error) on the map 4 No attempt was made 0 Tapping "Add location" button calls addlocation() method of LocationWeatherCache class 1 ... and this method is passed a nickname (if specified) or the formatted address 2 … and successfully adds this to existing locations (doesn't clobber/override them) 3 … and this save action checks for and prevents addition of invalid (null) locations 4 … and finally returns user to the Locations List page 5 Page doesn't display anything (or displays dummy data from skeleton) 0 Page dIsplays an entry for each saved location. 1-2 … and entries are labelled with location nickname specified by user (if set) 3 ... and each entry has a weather summary of some kind 4-5 ... and weather summaries are assigned to the correct location 6 No attempt was made 0 Tapping on a list entry correctly loads the View Location page for that location 1 Page doesn't display anything 0 Page displays necessary elements (titlebar, map, date, weather summary, remove button) 1-3 … and title bar shows the location nickname 4 ... and interface shows evidence of design consideration (not abitrarily positioned) 5 No attempt was made 0 A working map component is displayed 1-2 ... and map is centred on active location 3 ... and shows an indicator or pin on map at active location 4 No attempt was made 0 Displays the current date in the appropriate format, using Date.simpleDateString() 1 No attempt was made 0 There is a slider which calls a JavaScript function when dragged 1 ... and dragging this slider correctly updates the date displayed on the page 2 ... and correctly requests and displays updated weather summary for that date 3-4 No attempt was made 0 Shows partial summary of condition info (roughly 0.5 for each omission) 1-3 Shows all necessary info but some with default decimal places or incorrect units. 4 Shows all necessary info with correct units and sensible rounding 5 No attempt was made 0 Clicking button calls the removelocation() method of LocationWeatherCache class 1 ... and location is successfully removed from the locations list and localStorage 2 R3.6) Removing a Location

R3.5) Current conditions (summary, max temp, min temp, humidity, wind speed)

[use of currently or daily

R3.4) Date slider

5

4

4

4

1

4

5

R3.2) Map

R3.3) Displayed date

R1) Add Location page

R2) Locations List page

R3) View Location page R2.1) Locations list entries

R2.2) Selecting a location R1.3) Location saving

R3.1) Elements R1.2) Location entry

Team: _______________ MCD4290 Trimester 1, 2016

Assignment 2 Marking Rubric - Application, Documentation & Tool (19%)

1

5

6

R1.1) Elements … and the user is returned to the Locations List page 3 No attempt was made 0 Implemented length(), locationAtIndex(), addLocation() & removeLocation() methods 1-2 ... and locations array contains objects containing nickname, longitude, latitude & forecasts 3-4 ... and forecasts is an object indexed by property names of form “{lat},{lng},{date}” 5 No attempt was made 0 Locations information is correctly saved to localStorage in saveLocations() function 1-2 ... and this is serialised with toJSON() method 3 ... and this includes the forecasts information but not 'callbacks' object 4 ... and saveLocations() is called when the locations or weather cache changes 5 No attempt was made 0 The function loadLocations() is called once at end of locationWeatherCache.js 1 ... and this instantiates a single locationWeatherCache object 2 ... and this checks whether there is saved data in localStorage 3 ... and if so initialises the instance with this via the initialiseFromJSON() method 4-5 No attempt was made 0 The getWeatherAtIndexForDate() method has been implemented 1 ... and this correctly returns the weather for the specified location and date 2-3 ... by calling the callback function specifed as a parameter by the user 4 ... and this method first checks the cache and returns a cache result if one exists 5 ... and the callback function is saved to 'callbacks' object with property "{lat},{lng},{date}" 6 No attempt was made 0 A request is made to api.forecast.io via JSONP for {lat},{lng},{date} 1 ... and date is formatted with Date.forecastDateString() 2 ... and locationWeatherCache.weatherResponse is specified as the callback 3 ... and this request is formatted correctly 4 No attempt was made 0 weatherResponse recieves the response data returned by the darksky.net API request 1 ... and determines the key "{lat},{lng},{date}" using details in the response 2 ... and the daily weather data point is correctly extracted from response 3 ... and key is used to lookup location and add weather to 'forecasts' object 4-5 ... and the callback function is looked up in the 'callbacks' object using key. 6-7 No attempt was made. Code shows almost no obvious indenting 0 Inconsistent. Some well indented code, some badly indented code 1-2 Consistently well indented code 3-4 No attempt made, or variable/function names aren't meaningful 0 Inconsistent. Some good variable/function names, some bad 1-2 Consistently well named variables/functions 3-4 Team-created methods/function are defined all over the place, lots of nesting 0-1 Inconsistent -- sometimes good, sometimes bad, some nesting 2-4 Team-created methods are all defined in the class constructor 5-6 Consistently bad. There are class attributes that should be local variables 0-1 This is inconsistent -- sometimes good, sometimes bad 2-4 Variables are all defined in logical places 5-6 There is almost no team-created documentation/comments 0-1 Inconsistent. Some good team-created documentation/comments, some poor 2-4 Consistently good documentation/comments (including method header documentation) 5-6 100 0 10% 0 No attempt was made 0 The PMP includes a section on project information 2

4

4

3

5

7

6

5

5

4

R5.3) Loading from

localStorage R5.2) Saving to

localStorage R5.1) Storage

R5.4) Requesting weather

information

R5.5) Fetching weather

from darksky

R5) Location Weather

Cache class

R5.6) Caching weather

responses

6

R6) Code quality and

DocumentationR7.1) Content: Project

6

R6.1) Indenting

R6.2) Good variable/function names (descriptive,

R6.5)

Documentation/Comments

Code functionality & quality

Total for Functionality & Quality Scaled to 10%

R6.4) Variable placement R6.3) Function/method

placement

6 … and includes topics of background, scope, intended use, due date 3-6 … and the section clearly covers all these aspects 7-11 No attempt was made 0 The PMP includes a section on team members and responsibility 2 … and includes full names of team members, responsibilities, contact details 3-5 … and the section clearly covers all these aspects 6-10 No attempt was made 0 The PMP includes a section on practices and processes 2 … and includes topics of processes, tools used, repository and docs locations 3-6 … and the section clearly covers all these aspects 7-11 No attempt was made 0 The PMP has a section on how communication should be handled 2 … and includes meeting scheduling, minute taking, methods of communication 3-5 … and the section clearly covers all these aspects 6-10 • Document has title/cover page and team number 1 • Includes a clear introduction to explain purpose 1-3 • Uses clear language, complete sentences, explains terminology used 6 • Document has a logical structure 6 • Is free from spelling and grammatical errors 2 No attempt was made 0 User Guide includes instructions on using the app 1-2 ... and include appropriate short descriptions 3-5 ... and provide screenshots to illustrate the interface 6-8 ... and is thorough and covers all the functionality of the app 8-10 No attempt was made 0 User guide includes known bugs, limitations, common questions 1-3 ... and description of issues is clear and concise 4-6 ... and provides explanation, advice or workarounds for these issues 7-10 • Document has title/cover page and team number 1 • Includes an introduction to explain purpose 1 • Uses clear language, complete sentences, explains terminology used 3 • Document has a logical structure 3 • Is free from spelling and grammatical errors 2 90 0 9% 0 190 0 19% 0

11

10

information

11

Percentage

Total for Technical Documentation Scaled to 9%

R7.3) Content: Decisions

on process

R7.5) Quality

R8.3) Quality R8.2) Content:

Troubleshooting R7.4) Content:

Communication

Management

R8.1) Content: How to use R7.2) Content: Info on

personnel

R7) Project Management

Plan

R8) User Guide

Technical Documentation

10

Grand Total

10

10

18

10