Skip to content

Commit 71de964

Browse files
committed
docs(readme): update architecture diagram
Refactor architecture diagram to be an external image. The Graphviz DOT source is now commented out with regeneration instructions. The diagram itself has improved styling and clearer labels.
1 parent 04536ed commit 71de964

2 files changed

Lines changed: 45 additions & 37 deletions

File tree

README.adoc

Lines changed: 45 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -22,43 +22,51 @@ The backend is powered by a Node.js server that communicates with a Python scrip
2222

2323
== Architecture
2424

25-
[graphviz, ZestaArchitecture, png]
26-
----
27-
digraph ZestaArchitecture {
28-
rankdir="LR";
29-
node [shape=box, style=rounded, fontname="Helvetica"];
30-
edge [fontname="Helvetica"];
31-
32-
subgraph Client {
33-
label="Client (React Native / Expo)";
34-
rank=same;
35-
App [label="Mobile App (iOS/Android/Web)"];
36-
}
37-
38-
subgraph Server {
39-
label="Backend Server";
40-
rank=same;
41-
NodeJS [label="Node.js Server"];
42-
Python [label="Python ML Script"];
43-
}
44-
45-
subgraph ML_Model {
46-
label="Machine Learning Libraries";
47-
rank=same;
48-
YOLO [label="Ultralytics (YOLO)"];
49-
EasyOCR [label="EasyOCR"];
50-
OpenCV [label="OpenCV"];
51-
}
52-
53-
App -> NodeJS [label="Image (WebSocket)"];
54-
NodeJS -> Python [label="Image Data"];
55-
Python -> YOLO [label="Detect Plate"];
56-
Python -> EasyOCR [label="Recognize Text"];
57-
Python -> OpenCV [label="Process Image"];
58-
Python -> NodeJS [label="License Plate Number"];
59-
NodeJS -> App [label="Vehicle Info (WebSocket)"];
60-
}
61-
----
25+
image::ZestaArchitecture.png[Zesta Architecture Diagram, align="center"]
26+
27+
// Source: The diagram is generated from Graphviz DOT.
28+
// To regenerate: asciidoctor -r asciidoctor-diagram README.adoc
29+
//
30+
// [graphviz, ZestaArchitecture, png]
31+
// ----
32+
// digraph ZestaArchitecture {
33+
// rankdir="LR";
34+
// node [shape=box, style="rounded,filled", fillcolor=lightblue, fontname="Helvetica"];
35+
// edge [fontname="Helvetica", fontsize=10];
36+
//
37+
// subgraph cluster_client {
38+
// label="Client (React Native / Expo)";
39+
// style=filled;
40+
// fillcolor=lightgray;
41+
// App [label="Mobile App\n(iOS/Android/Web)"];
42+
// }
43+
//
44+
// subgraph cluster_server {
45+
// label="Backend Server";
46+
// style=filled;
47+
// fillcolor=lightgray;
48+
// NodeJS [label="Node.js Server"];
49+
// Python [label="Python ML Script"];
50+
// }
51+
//
52+
// subgraph cluster_ml {
53+
// label="Machine Learning Libraries";
54+
// style=filled;
55+
// fillcolor=lightgray;
56+
// YOLO [label="Ultralytics\n(YOLO)"];
57+
// EasyOCR [label="EasyOCR"];
58+
// OpenCV [label="OpenCV"];
59+
// }
60+
//
61+
// App -> NodeJS [label=" Image (base64) ", fontsize=9];
62+
// NodeJS -> Python [label=" Image Data "];
63+
// Python -> YOLO [label=" Detect Plate "];
64+
// Python -> EasyOCR [label=" Recognize Text "];
65+
// Python -> OpenCV [label=" Process Image "];
66+
// Python -> NodeJS [label=" License Plate # "];
67+
// NodeJS -> App [label=" Vehicle Info ", fontsize=9];
68+
// }
69+
// ----
6270

6371
== Features
6472

assets/ZestaArchitecture.png

6.78 KB
Loading

0 commit comments

Comments
 (0)