aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md24
1 files changed, 24 insertions, 0 deletions
diff --git a/README.md b/README.md
index 2be62b6..36cc6e4 100644
--- a/README.md
+++ b/README.md
@@ -101,6 +101,30 @@ Tue Nov 28 11:53:01 PST 2023 - yuuta: Certificate 1 is revoked with reason KEY_C
Tue Nov 28 11:53:06 PST 2023 - yuuta: Signed CRL with 1 revoked certs.
```
+## Phase 4: Task 3
+
+[View complete UML diagram (may be too complex to read)](img/uml.all.pdf) |
+[View type hierarchy only](img/uml.type.pdf) |
+[View associations only](img/uml.assoc.pdf)
+
+## A note on UML
+
+The above UML diagrams are generated using a simple tool called UMLGen, and its source is located in the `umlgen/`
+directory. I am the author of the tool. The tool uses JavaParser to parse Java syntax into AST, and it generates Graphviz
+dot files using Apache Freemarker. The dot files are then rendered into the above PDFs using Graphviz. The whole process
+is driven by Gradle.
+
+To generate the files again, run the following command: (`dot(1)` and `gradle(1)` must present in PATH)
+
+```shell
+gradle uml
+```
+
+Please note that both codes in `umlgen/` and Gradle build scripts `*.gradle` are NOT part of the project submission.
+They do not subject to project requirements as they are not part of the project at all, either tests or UI. They are only
+local build tools. The project (both tests and UI) runs perfectly without any of these files. To run the project, clone it
+in IntelliJ Idea and press the green triangle in `Main`.
+
## Author
Yuuta Liang <yuutaw@student.ubc.ca>