@@ -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
0 commit comments