#Frontend Web Development Assessment
##Project Rubric
Criteria
In evaluating project submissions each criteria item is evaluated using the following levels:
- Subpar or Lacking Proficiency
- Baseline Proficiency
- High Proficiency
Functionality
| Metric | High Proficiency | Baseline Proficiency | Subpar or Lacking Proficiency |
|---|---|---|---|
| Matching specifications | The application functions exactly as intended. | The application functions mostly as intended. | The application does not function as intended. |
| Javascript Console Errors | No errors. | Less than 3 noted errors per page. | More than 3 noted errors per page. |
| Markup errors (missing/extra closing tags). | No errors. | Less than 3 noted errors per page. | More than 3 noted errors. |
| CSS errors (non-existent properties, incorrect rule syntax). | No errors. | Less than [number] errors. | More than [number] errors. |
| File references (images, css files, linked scripts). | No broken references. | Less than [number] broken references. | More than [number] broken references. |
Appearance
| Metric | High Proficiency | Baseline Proficiency | Subpar or Lacking Proficiency |
|---|---|---|---|
| Matching specifications | The application’s front-end matches the designs exactly. | The application’s front-end matches the designs closely, but not exactly. | Less than 50% of the application’s front-end matches the design. |
| Visual errors (unnecessary vertical/horizontal scroll distances,misplaced content) | No visual errors. | Less than 3 errors. | More than [number] errors. |
Performance
| Metric | High Proficiency | Baseline Proficiency | Subpar or Lacking Proficiency |
|---|---|---|---|
| Responsiveness | The application feels light and fast. | The application is fast enough to keep a user from wanting to leave the page. | The application is slow and clunky. |
| Load Time | Using YSlow, the site is a grade A or better. | Using YSlow, the site is a B or better. | Using YSlow, the site is a C or below |
Structure/Organization
| Metric | High Proficiency | Baseline Proficiency | Subpar or Lacking Proficiency |
|---|---|---|---|
| File Structure | Files are separated into folders by file type and/or purpose. Folder names and folder structure is intuitive. | Files are separated into folders by file type and/or purpose. Folder names and folder structure might require some explanation to another developer. | Files are not all separated into folders by file type and/or purpose. Folder names and folder structure are not intuitive enough for sharing. |
| Separation of Concerns | CSS rules and Javascript are separated from HTML. | ? | CSS rules and Javascript are included in the HTML. |
| SEO Techniques | SEO techniques (<meta> tags and header tags - <h1>, <h2>, <h3>) are used to effectively provide useful information to search engines throughout the code. | Some SEO techniques (<meta> tags and header tags - <h1>, <h2>,<h3>) are used to effectively provide useful information to search engines. | SEO techniques (<meta> tags and header tags - <h1>, <h2>, <h3>) are not effectively to provide useful information to search engines. |
Code Quality: HTML
| Metric | High Proficiency | Baseline Proficiency | Subpar or Lacking Proficiency |
|---|---|---|---|
| Structure | The pages are broken down into logical sections. | The pages are broken down into logical sections, with a few minor exceptions. | There may be some attempt at breaking the pages down into logical sections, but overall, they are not logically structured. |
| Choice of HTML tags | The individual consistently chooses the best (most semantic) element for the job. Tags are nested correctly and logically. | The individual chooses the best (most semantic) element for the job, with a few minor exceptions. 75%+ of tags are nested correctly and logically. | The individual makes some unsuccessful attempts, but overall, fails to choose the best (most semantic) element for the job. Most tags are not nested correctly and logically. |
| Use of classes and IDs | The individual appropriately uses classes on elements with similar purposes and/or similar styling. Class and ID names are intuitive, meaningful, and concise. | The individual uses classes on some elements with similar purposes and/or similar styling. With some minor exceptions, class and ID names are intuitive, meaningful, and concise. | The individual does not apply classes on elements with similar purposes and/or similar styling. Overall, class and ID names are not intuitive, meaningful, or concise. |
| Readability | Code is very easy to read. | The individual indents consistently, and leaves frequent comments. | Code is mostly easy to read. |
| Separation of content | The individual consistently makes good decisions about when to use CSS to achieve visual effects, over HTML. | With a few minor exceptions, the individual uses CSS to achieve visual effects, over HTML, when appropriate. | The individual uses HTML to achieve visual effects, when CSS would be more appropriate. |
Code Quality CSS
| Metric | High Proficiency | Baseline Proficiency | Subpar or Lacking Proficiency |
|---|---|---|---|
| Structure | The code is separated into logical sections. | The code is broken down into logical sections, with a few minor exceptions. | There may be some attempt at breaking the code down into logical sections, but overall, it is not logically structured. |
| Use of CSS Properties | The individual demonstrates a command of a wide variety of properties and techniques. He/she successfully accomplishes the desired visual outcomes in standard, accepted ways. | The individual demonstrates ability to implement a variety of properties and techniques. He/she accomplishes the desired visual outcomes, primarily through standard, accepted ways. | The individual implements some properties and techniques. He/she may accomplish the desired visual outcomes, but misuses certain properties. |
| Readability | Code is very easy to read. The individual indents consistently, and leaves frequent comments. | Code is mostly easy to read. The individual indents and leaves comments. | Because the individual does not indent consistently or leave comments, the code is challenging to read. |
| Concision | The individual’s code is very concise. He/she makes clever use of selectors to keep the number of duplicate rules low. | The individual’s code is concise, but there may be a few unnecessary duplicate rules. | The code is not concise. There are several instances where selectors could have been used, but were not. |
Code Quality Javascript
| Metric | High Proficiency | Baseline Proficiency | Subpar or Lacking Proficiency |
|---|---|---|---|
| Organization | Procedural code and event handlers are consistently separated from functions. | Procedural code and event handlers are separated from functions, with a few minor exceptions. | Procedural code and event handlers are not separated from functions. |
| Program Logic | The student has very effectively used loops, functions, and conditionals, to [insert]. | In a few instances, the student did not use loops, functions, and conditionals, where they might more easily accomplished certain goals. | There are several cases in which students could have more easily accomplished certain things, using loops, functions, and conditionals. |
| Readability | The code is well-indented and consistently spaced. Throughout, complex pieces of logic are appropriately commented. | The code is indented and consistently spaced. In most cases, complex pieces of logic are appropriately commented. | While there may be some attempt at organizing the code, it is not indented or spaced to support readability. Further, complex pieces of logic are missing commentary. |
| Efficiency | The code is consistently written in an efficient manner, with an eye for accomplishing as much as possible with concise code. | The code is efficiently written. | Student regularly performs unnecessary operations. |
| Maintainability | Throughout, the code is DRY (free from repetition of blocks of identical or highly similar code). All variables have intuitive names. | The code is DRY (free from repetition of blocks of identical or highly similar code). With a few minor exceptions, variables have intuitive names. | The code includes repetition of blocks of identical or highly similar code. Most variables do not have intuitive names. |