To enter the application as a Data Subject: user=subject<number_between_0-49> password=subject<same_number> (e.g. user=subject25 password=subject25)
To enter the application as a Data Controller: user=controller<number_between_0-49> password=controller<same_number> (e.g. user=controller19 password=controller19)
To enter the application as a DPO: user=DPO<number_between_0-49> password=DPO<same_number> (e.g. user=DPO48 password=DPO48)
Once logged in, the pages the user can access depend on their role. This is the home page:
By clicking the button in the bottom left corner you access the profile modal, where you can change your credentials and log out.
For data subjects, there is the possibility to ask for the removal of their data from all of thier applications.
In this page all the contacts of the user are listed by name, role and email address. For each contact there is a link that takes the user to the conversation page and the list of the applications they have in common (by clicking on the name you are taken to the app's page).
For DPO/Data Controller, a contact is whoever has a common application with them.
For a data subject, a contact is a non-data subject who has a common application with them.
In this pages all the conversations of the user are listed. The user can also start a new conversation with another user.
In this page the user can check all the applications they have. For each application there is a description, the vote of the GDPR Questionnaire, a link for the privacy notice of the app and the contact list of those who also possess the app.
Data subjects also view the list of consenses they gave to the applications, with the possibility to cancel them.
This page is reserved for DPO/Data Controllers, where they can verify the adeherence to the GDPR of their applications. Once they selected an application, they are brought to the actual questionnaire page. It is divided into three sections, followed by a summary:
- Personale data
- Security
- Tests and Certifications
Votes are one of three colors:
- Green: the answer satisfies the GDPR completely
- Orange: The answer partially staisfies the GDPR
- Red: The answer is contrary to the GDPR
This page is vastly different depending on the role of the user.
For data subjects, this page allows them to request something of their right: access data, withdraw consent, ask information, compile a complaint and erase data. They can also view a list of thier handled requests and pending requests.
For DPO/Data Controllers, the page lists all the right requests of the data subjects, with the possibility to filter between handled and pending. By selecting a request they can answer it and change its status.
In this page the privacy notices for all of the user applications are listed.
For DPO/Data Controllers it si possible to create a privacy notice. They can either:
- Create a privacy notice from scratch
- Create a privacy notice from a template
- Upload a file containing the privacy notice
To run the test suite, run the command mvn clean test
. You can run all the tests in a class by adding the flag -Dtest=<class>
. You can also run a single test by using the flag like this -Dtest=<class>#methodName
.
To create a coverage report, run the command mvn jacoco:report
To create a production build use the following command:
mvn clean package -Pproduction
If you want to use privacy-dashboard as a dependency for other Maven applications in the local repository, use the following command:
mvn install -Pproduction
To build the project without being interrupted by eventual test failures, add the flag -DskipTests
.
The commands will create the JAR file and place it, together with the dependencies and front-end resources, in the target
folder after the build completes.
Once the JAR file is built, you can run it using
java -jar target/privacydashboard-1.0-SNAPSHOT.jar
You can also run the program by typing in the IDE terminal the mvn
command.
Once the application is running, it can be found at the url localhost:8080
.
MainLayout.java
insrc/main/java
contains the navigation setup (i.e., the side/top bar and the main menu). This setup uses App Layout.views
package insrc/main/java
contains the server-side Java views of your application.views
folder infrontend/
contains the client-side JavaScript views of your application.themes
folder infrontend/
contains the custom CSS styles.
- Maven Spring Framework is used to create the Model-View-Controller implementation and provides the Web Services.
- Vaadin is used to create the GUI of the web application.
- JUnit is used to create and execute the tests of the application.
- Jacoco is used to obtain the instruction coverage of the tests.
- Read the SIFIS-Home project document at SIFIS-Home
- Read the documentation at vaadin.com/docs.
- Follow the tutorials at vaadin.com/tutorials.
- Watch training videos and get certified at vaadin.com/learn/training.
- Create new projects at start.vaadin.com.
- Search UI components and their usage examples at vaadin.com/components.
- View use case applications that demonstrate Vaadin capabilities at vaadin.com/examples-and-demos.
- Discover Vaadin's set of CSS utility classes that enable building any UI without custom CSS in the docs.
- Find a collection of solutions to common use cases in Vaadin Cookbook.
- Find Add-ons at vaadin.com/directory.
- Ask questions on Stack Overflow or join our Discord channel.
- Report issues, create pull requests in GitHub.
To build the Dockerized version of the project, run
docker build . -t privacydashboard:latest
Once the Docker image is correctly built, you can test it locally using
docker run -p 8080:8080 privacydashboard:latest