diff --git a/pom.xml b/pom.xml
index aeb9aaa..a714fa2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,7 +41,7 @@
com.mailgun
mailgun-java
- 2.1.1
+ 2.3
io.jsonwebtoken
diff --git a/src/docs/asciidocs/index.adoc b/src/docs/asciidocs/index.adoc
index d34fde5..0318b3a 100644
--- a/src/docs/asciidocs/index.adoc
+++ b/src/docs/asciidocs/index.adoc
@@ -28,5 +28,8 @@ and the parts that need more attention.
* https://github.com/lfir/http-validator/network/dependencies[Dependency graph]
+**UML diagram**
+
+* https://raw.githubusercontent.com/lfir/http-validator/refs/heads/main/src/docs/classDiagram.png[Class Diagram]
==== Thank you for using the HTTP Validator!
diff --git a/src/docs/classDiagram.png b/src/docs/classDiagram.png
new file mode 100644
index 0000000..d25e9f9
Binary files /dev/null and b/src/docs/classDiagram.png differ
diff --git a/src/docs/classDiagram.txt b/src/docs/classDiagram.txt
new file mode 100644
index 0000000..623199b
--- /dev/null
+++ b/src/docs/classDiagram.txt
@@ -0,0 +1,260 @@
+@startuml classDiagram
+
+title HTTP Validator - Class Diagram
+
+' Main Application Entry Point
+class HTTPValidatorWebApp {
+ - RUN_SCHEDULE_PROPERTY: String
+ - context: ConfigurableApplicationContext
+ --
+ + main(args: String[]): void
+ + restartAppContextWithNewRunSchedule(cronExpression: String): void
+ - setContext(context: ConfigurableApplicationContext): void
+}
+
+' Controllers (REST endpoints)
+class AppInfoController {
+ - START_TIME_KEY: String
+ - TIME_ELAPSED_KEY: String
+ - TASKS_TOTAL_KEY: String
+ - TASKS_OK_KEY: String
+ - TASKS_FAILED_KEY: String
+ - TASKS_ERRORS_KEY: String
+ - NO_LASTRUN_DATA_ERROR_MSG: String
+ - STATUS_ENDPOINT: String
+ - LAST_RUN_ENDPOINT: String
+ - ERROR_VALUE: String
+ - OK_VALUE: String
+ - DATAFILE_STATUS_KEY: String
+ - CONFIG_STATUS_KEY: String
+ - dao: XMLValidationTaskDao
+ - mailServ: EmailNotificationService
+ - valServ: ValidationService
+ - eventServ: EventListenerService
+ --
+ + informLastRunData(): ResponseEntity