Setup: /1 [YN] - script present and works to make marking simple, clear, easy! client: /38 Note: Some of the following are really both backend and frontend features, though it is easier to check on the frontend. [YN] - Javascript+JQuery code is ok [YN] - Javascript+JQuery code is good. Gets the job done, but is not simple, not concise, difficult to read. [YN] - Javascript+JQuery code is great Simple, clear, concise [YN] - JS+JQuery in external .js file [YN] - Good use of CSS, gets the job done, not easy to read, not clear, not short [YN] - Great use of CSS In external CSS, at head, inline as appropriate CSS is simple, clear, concise [YN] - validation done on front end [YN] - invalid data causes appropriate messages and retry [YN] - member authentication (that is, is there a login page) [YN] - member authorization for static server (login works on static server) [YN] - member managment a few fields (at least user name, password) [YN] - top scores on display somewhere [YN] - users scores on display somewhere [YN] - ability to join an existing game [YN] - Player Move via keyboard for desktop [YN] - Player Move via icons/other for tablet NOTE: Below are really both client and server, NOTE: but easier to check here in the client. [YN] - Monsters move by themselves [YN] - >= 1 advanced Monster [YN] - >= 2 advanced Monsters [YN] - Player killed by monster [YN] - Player can move boxes [YN] - Monster dies when surrounded [YN] - Player identified by its own icon (highlighted to differentiate from other players) [YN] - Gameplay works with single player [YN] - Game play works with multiple players [YN] - works on desktop (Firefox in the lab) [YN] - works ok on tablet (Nexus 7 or iPad Mini) [YN] - works well on tablet (Nexus 7 or iPad Mini) [YN] - mobile feature one (ok) [YN] - mobile feature one (ok+great) [YN] - mobile feature two (ok) [YN] - mobile feature two (ok+great) [YN] - usability ok >=2 of the below [YN] - usability good >=4 of the below [YN] - usability great >=6 of the below usability: navigation model clear and uniform (ie same navigation appearing on all 'pages' with options clear) So for example, you have the page name in the same spot on all pages and it matches the navigation used to get to that page. usability: current location within app clear (ie highlight the current location within navigation) usability: options/operations at current location clear and meaningful ('udate profile' vs 'submit') usability: forms have appropriate feedback usability: form fields clearly labelled usability: result of operations clear, for example, if a connection to server fails, this is made clear to the user. If an update to profile is successful, it is made clear to the user. [YN] - ok design (appearance) >=2 of six below [YN] - good design (appearance) >= 4 of six below [YN] - great design (appearance) >= 6 of six below design: looks great design: font size and choice great design: page layout/organization design: page decorations great design: color scheme great design: chose interesting icons express server: /17 [YN] - all static content correctly stored and retrievable from the static server [YN] - Javascript code is ok [YN] - Javascript code is good. Gets the job done, but is not simple, not concise, difficult to read. [YN] - Javascript code is great Simple, clear, concise [YN] - some validation done on backend [YN] - all validation done on backend (ie username characters allowed, password characters allowed, verify score is integer before updating) [YN] - effective routes (ie good, clear restful api) [YN] - effective use of route parameters [YN] - returns useful HTTP error codes/success in most cases [YN] - rest: authentication credentials/token sent with each request (no sessions) [YN] - rest authorization, restricted access to certain operations below [YN] - rest: user profile managment CREATE [YN] - rest: user profile managment RETRIEVE [YN] - rest: user profile managment UPDATE [YN] - rest: score RETRIEVE high scores [YN] - rest: score RETRIEVE users scores [YN] - rest: score CREATE/UPDATE users scores (to add new score) react: /5 [YN] - React used in login [YN] - React used in member managment, simple interface [YN] - React used in member managment, complex interface [YN] - React used in main game page (outside of actual game board) [YN] - Clear evidence of excellent understanding of React game server: /11 [YN] - Javascript code is ok [YN] - Javascript code is good. Gets the job done, but is not simple, not concise, difficult to read. [YN] - Javascript code is great Simple, clear, concise [YN] - Effective use of OO javascript, for example, Inheritance for monsters [YN] - efficient handling of worlds, for example, only sending world delta to clients [YN] - involves model only, no view code here [YN] - survives client disconnects (that is server does not crash) [YN] - appropriate action taken on client disconnect (ie remove player from game) [YN] - does not allow unauthenticated users on game server [YN] - some validation on backend [YN] - complete validation on backend (ie verifies fields in users move before making move, sending appropriate message back if not valid, or ignore clients move). NOTE: other marks for game server appear in the clients NOTE: section, where they are easier to verify Extra features: /?? Examples: - multiple worlds with game lobby - responsive design - use of canvas - additional interesting application of sensors - use of mongoDB for static content - use of microphone, speaker, camera - works on multiple form factors (tablet, phone, landscape, portrait) - full user managment system, managing many user attributes, all with validation and appropriate form handling - user to user chat supported - online radar display showing relative location of users - Additional interesting mobile features, for example, shake to use an escape, tilt to move - scrolling viewport on large world (works well for mobile devices!) Level 3 features Level 2 features Level 1 features