From 43e6fe574918dd66663a99467a590894e6c8d5f5 Mon Sep 17 00:00:00 2001 From: Dario Date: Sun, 28 Apr 2024 19:12:37 +0200 Subject: [PATCH] docs: security and mantainability --- docs/images/codescene-general.png | Bin 0 -> 26063 bytes docs/src/10_quality_requirements.adoc | 14 +++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 docs/images/codescene-general.png diff --git a/docs/images/codescene-general.png b/docs/images/codescene-general.png new file mode 100644 index 0000000000000000000000000000000000000000..e2947572189d42580f0089b38cb2f0f6be6e2001 GIT binary patch literal 26063 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
4A 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 literal 0 HcmV?d00001 diff --git a/docs/src/10_quality_requirements.adoc b/docs/src/10_quality_requirements.adoc index e08c98c5..b9cb0680 100644 --- a/docs/src/10_quality_requirements.adoc +++ b/docs/src/10_quality_requirements.adoc @@ -35,7 +35,6 @@ To obtain a measurable system response to stimulus corresponding to the various |=== ==== Implementation -===== Testability ===== Performance efficiency The tests were done with a 2 core and 4 GB of memory system. @@ -60,6 +59,15 @@ image::Gatling_1000_users.png[align="center", title="Gatling results with 1000 u image::Gatling_10000_users.png[align="center", title="Gatling results with 10000 user"] +===== Security +The system is secured using Spring Security. The user data is stored in a database and the passwords are hashed using BCrypt. The API access points are secured with proper authorization. HTTPS is used to encrypt the data in transit. + +The system is also protected against SQL injection via using JPA repositories and prepared statements. + +The system is also designed in such a way that prevents cheating, by limiting the options available for the user and doing all validation in the backend, such as checking if the answer is correct, preventing request forgery. + +===== Testability + ===== Monitoring The system is monitored using Spring Boot Actuator and Prometheus. The monitoring data is visualized using Grafana. @@ -78,3 +86,7 @@ Make sure to put kiwiq.run.place:8443 as the Instance and WIQ API as the applica image::grafana.png[align="center", title="Graphana Spring Boot dashboard"] +===== Maintainability +In our CodeScene analysis we find that our knowledge distribution is well-balanced as well as a nice code health, excepting one hotspot on a test that is not relevant. + +image::codescene-general.png[align="center", title="CodeScene general view"]