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 styleopen in new window

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 styleopen in new window. xkcd has a web comic about it.open in new window

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 conventionopen in new window.

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)open in new window.

Grade U
There exists names that are not mnemonic
Grade 3
All names are mnemonic
Grade 4
-
Grade 5
-

Magic Numbers

Avoid using magic numbersopen in new window 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.open in new window

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.0open in new window (Resource Owner Password Credentials Grant) & OpenID Connectopen in new window (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