Project Grading Guidelines
This page contains guidelines for how your work will be graded. For the guidelines where it make sense, a higher grade includes the guidelines for the lower grades (for example, to be able to get Grade 5
, you also need to follow the guidelines for Grade 3
and Grade 4
).
Note
This page does only contain guidelines for how your work will be graded. When we grade your work we'll make an assessment of your entire work, which is not limited to these guidelines, so do not use these guidelines as a checklist for a certain grade. Instead, rather see them as minimum requirements for each grade.
Indentation Convention
The convention used for indenting code (such as 2 spaces, 4 spaces, a tab, etc.). For more information, see Wikipedia's article on Indentation style
Grade U Indentation conventions have been used, or they are not always followed | Grade 3 The same indentation convention is consistently used across all files of the same type | Grade 4 - | Grade 5 - |
Coding Style
The conventions used for writing comments, (not) using optional curly brackets, maximum line lengths, white-spaces in the statements, etc. For more information, see Wikipedia's article on Coding style. xkcd has a web comic about it.
Grade U No coding styles have been used, or they are not always followed | Grade 3 The same coding style is consistently used across all files of the same type | Grade 4 - | Grade 5 - |
Naming Convention
The convention used when naming variables, constants, functions, classes, methods, functions, files, packages, etc. For more information, see Wikipedia's article on naming convention.
Grade U No naming conventions have been used, or they are not always followed | Grade 3 The same coding style is consistently used across all files of the same type | Grade 4 - | Grade 5 - |
Mnemonic names
The names used (on variables, functions, classes, files, tables in the database, etc.) reflect what they represent. Optimal names are short and very descriptive. For more information, see Chapter 2.12 in Python for Everybody (Severance).
Grade U There exists names that are not mnemonic | Grade 3 All names are mnemonic | Grade 4 - | Grade 5 - |
Magic Numbers
Avoid using magic numbers in the code. Does not only apply to numbers, but all values that are better put in descriptive constants. Using constants like ZERO = 0
is of course meaningless.
Grade U Some magic numbers exists | Grade 3 No magic number exist | Grade 4 - | Grade 5 - |
Database Design
The quality of the design of the database. xkcd has a web comic about storing dates.
Grade U The design is inappropriate, for example storing all resources in the same table | Grade 3 Constraints are used properly | Grade 4 - | Grade 5 - |
Validation
Validation of resources on the website entered by a user.
Grade U Not all resources are validated | Grade 3 All resources are validated when created/updated, forms are pre-filled with latest input if errors occur | Grade 4 - | Grade 5 - |
Error Handling
Handling of various errors that can occur when the user is using your website, including database errors (connection errors, unique constraint violations, foreign key constraint violations, etc.) and validation errors.
Grade U Not all errors are handled | Grade 3 Errors are handled, and descriptive error messages are shown to the user | Grade 4 - | Grade 5 - |
Graphical User Interface
The logical placement and usage of components (menus, sub-menus, pagination, forms, buttons, etc.), the support for different screen sizes (small smartphones, medium tablets, large desktop screens, etc.), the support for different input methods (touch screen, mouse, keyboard, etc.), etc. Simply put, users should understand how to use the website.
Grade U The website contains components users don't understand how to use/can't use | Grade 3 The placement of components is logical and users understand how to use them on a desktop computer | Grade 4 The website do to some extent have support for smartphones (for example having support for just the screen size or just the input method) | Grade 5 The website have very good support for both smartphones and desktop computers |
HTML & CSS
Proper usage of HTML and CSS (semantic, etc.).
Grade U HTML and CSS are not used properly | Grade 3 HTML and CSS are used properly | Grade 4 - | Grade 5 - |
Security
Vulnerabilities such as SQL injections, XSS, CSRF, not checking authorization, storing password in plain text, improper implemented authentication, etc.
Grade U 3 or more security vulnerabilities exist | Grade 3 At most 2 security vulnerabilities exist | Grade 4 At most 1 security vulnerability exists | Grade 5 No security vulnerability exists |
OAuth 2.0 & OpenID Connect
The web application properly implements OAuth 2.0 (Resource Owner Password Credentials Grant) & OpenID Connect (follow the specifications).
Grade U 3 or more implementation details differ from the specifications | Grade 3 2 implementation details differ from the specifications | Grade 4 1 implementation detail differs from the specifications | Grade 5 The specifications are followed |
Docker
Docker is used properly.
Grade U Docker has not been used or one container is used to run multiple applications. | Grade 3 All applications/components can be started just by running the command 'docker-compose up'. | Grade 4 - | Grade 5 - |
Optional tasks
Complete the optional tasks required for Grade 4
and Grade 5
.
Grade U - | Grade 3 - | Grade 4 Complete the extra task 'SDK' and 'Supporting Multiple Data Formats' | Grade 5 Complete the extra task 'Supporting third-party authentication' |
Report
The quality of the report.
Grade U The reader does not get a good understanding of what the project is about (the problem and the solution), nor how the solution works/will be used/has been implemented | Grade 3 The reader gets a good understanding of what the project is about and how the solution works/will be used/has been implemented. Figures are used, they have been numbered and given descriptive captions, and they are referred to from the main text using their figure numbers. The text does not contain obvious spelling mistake nor incomprehensible sentences. At most 5 mistakes mentioned in the lecture Report Writing exists | Grade 4 Chapters and sub-chapters are properly used to give the report a good structure. The reader can easily find the specific information she's looking for in the expected chapter/sub-chapter. At most 3 mistakes mentioned in the lecture Report Writing exists | Grade 5 Everything with the report is great. At most 1 mistake mentioned in the lecture Report Writing exists |