Prof. Marco Porta
+39 0382 985214

Project Specifications

Basic Project Requirements

The basic requirements for the project are the following:

  • Website topic: the choice is completely free.
  • Development tools: especially for students who do not have any (real) experience in building websites, it is better not to use WYSIWYG tools (i.e., programs that allow visual composition of pages and automatically generate HTML/CSS/JavaScript code) or content management systems (such as WordPress): to properly master web languages, it is necessary to actually practice with them. It is not forbidden to use content management systems, but your contribution must be clearly evident (for example, in terms of changes to the basic CSS). To locally test PHP and MySQL/MariaDB server-side functionalities, the Apache web server, PHP application server and MySQL or MariaDB DBMS can be downloaded from their websites. Alternatively, the WAMP (Windows), MAMP (Windows and macOS) or XAMPP (Windows, macOS, and Linux) packages can be used, which install the different components from single executables.
  • Number of pages: there is not a specific rule (indicatively, at least five).
  • Code: the "look and feel" of the website, including the layout, must be defined through (external) CSS; no deprecated tags or attributes can be used. All links should be relative. The HTML code should be HTML5 (the W3C Markup Validation Service can be exploited to check the pages). The direct use of ready-made HTML/CSS templates is of course discouraged, unless a strong (and clearly identifiable) personalization is introduced. Similarly, frameworks (such as Bootstrap) can be used as long as there is a clear and explicit contribution from you, both in the structure of the page (HTML) and in the style/layout (CSS).
  • Layout: it should not be simply "linear" (i.e., at least one page should use a positioning different from normal flow).
  • Usability/Accessibility: the website should be designed according to the (very) basic usability and accessibility rules discussed in the course.
  • Client-side functionalities: JavaScript must be used in at least one page. Optionally, in addition, other technologies can be exploited (e.g., Angular, React, etc.). Ready-made examples (also based on the jQuery library) can be used, provided that they are personalized in some way.
  • Server-side functionalities: a server-side "behavior" resulting from the interaction with an application server and a remote database must be included in at least one page (e.g., to process data from a form). Instead of PHP and MySQL/MariaDB, other application servers or similar technologies (e.g., Node.js and CGI programs) and DBMSs can be used, if preferred. Like for client-side functionalities, ready-made examples can be employed, provided that they are personalized in some way.


Back to the Exam page