From 03c8a2891fe4f4997f0a76f4678806920f1da6a0 Mon Sep 17 00:00:00 2001 From: Ibrahim Mkusa Date: Sun, 2 Apr 2017 23:42:30 -0400 Subject: [PATCH] added an architecture diagram. --- README.md | 4 ++++ arch_diagram.png | Bin 0 -> 23853 bytes 2 files changed, 4 insertions(+) create mode 100644 arch_diagram.png diff --git a/README.md b/README.md index 062e5b2..169ecf8 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,10 @@ satisfactorily we would have met our goals . ## Architecture Diagram +### Preliminary design +![Architecture](https://github.com/oplS17projects/Hermes/blob/master/arch_diagram.png) + +### The Game plan ![Diagram](https://github.com/oplS17projects/Hermes/blob/master/architecture_diagram.png) diff --git a/arch_diagram.png b/arch_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..6bb88032bd397fb009a26936354df036929f640f GIT binary patch literal 23853 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