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