From 71b012799f7081c80fe8a03a5862e316e22e6d93 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Wed, 16 Jul 2025 19:50:20 +0100 Subject: task-007 document architecture --- requirements/architecture/arch-v1.drawio | 185 +++++++++++++++++++++++++++++++ requirements/architecture/arch-v1.md | 29 +++++ requirements/architecture/arch-v1.png | Bin 0 -> 92795 bytes requirements/tasks/task-007.md | 5 + 4 files changed, 219 insertions(+) create mode 100644 requirements/architecture/arch-v1.drawio create mode 100644 requirements/architecture/arch-v1.md create mode 100644 requirements/architecture/arch-v1.png diff --git a/requirements/architecture/arch-v1.drawio b/requirements/architecture/arch-v1.drawio new file mode 100644 index 0000000..d6c1d3f --- /dev/null +++ b/requirements/architecture/arch-v1.drawio @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/requirements/architecture/arch-v1.md b/requirements/architecture/arch-v1.md new file mode 100644 index 0000000..a8b8b13 --- /dev/null +++ b/requirements/architecture/arch-v1.md @@ -0,0 +1,29 @@ +# Architecture + +![architecture diagram](./architecture.png) + +- There must be a desktop GUI +- The desktop GUI must persist domain entities to an SQLite file +- The desktop GUI must persist config and caches to files +- The desktop GUI must send and receive messages to the REST API via HTTPS +- There must be a REST API +- The REST API must send and receive messages to the CRDT sync server via Unix + sockets +- There must be a CRDT sync server +- The CRDT sync server must send and receive messages to the NoSQL database via + Unix sockets +- There must be a backup service +- The backup service must communicate to the backups bucket via HTTPS +- There must be a backups bucket +- The backups bucket and the server must live on different machines +- There must be a Web app server, which serves a Web GUI over HTTPS +- The Web GUI must save domain entities to IndexedDB +- The Web GUI must persist config and caches to Local Storage +- The Web GUI must send and receive messages to the REST API via HTTPS +- There must be an SMS API +- The SMS API must send and receive messages to the CRDT sync server via Unix + sockets + +## TBC + +- What kind of NoSQL database should be used on the server? diff --git a/requirements/architecture/arch-v1.png b/requirements/architecture/arch-v1.png new file mode 100644 index 0000000..d70ae86 Binary files /dev/null and b/requirements/architecture/arch-v1.png differ diff --git a/requirements/tasks/task-007.md b/requirements/tasks/task-007.md index 571167f..a8f27b2 100644 --- a/requirements/tasks/task-007.md +++ b/requirements/tasks/task-007.md @@ -16,3 +16,8 @@ Desiderata: - There should be a Web interface Sources: req-046 + +## Notes + +I have documented the architecture (arch-v1). Now I just need to create some +tasks. -- cgit v1.2.3