From f7f247f313fa3c483d081fecdf706a1ec8a0d691 Mon Sep 17 00:00:00 2001 From: victory Date: Sun, 7 Mar 2021 12:26:38 +0100 Subject: [PATCH 1/2] feat: project CI --- .github/FUNDING.yml | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 1d7b169..0000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -github: [ambianic] From 610ffe1413158feca14a4311bbe71a680524442a Mon Sep 17 00:00:00 2001 From: victory Date: Sun, 7 Mar 2021 22:20:07 +0100 Subject: [PATCH 2/2] feat: corrected docs and added architecture diagram to readme --- README.md | 11 +++++++---- assets/serverless-architecture.png | Bin 0 -> 53220 bytes 2 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 assets/serverless-architecture.png diff --git a/README.md b/README.md index 195256a..81442ef 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,10 @@ -# ambianic-subscriptions -Repo for ambianic premium subscription management +# Ambianic-subscriptions +## Repo for ambianic premium subscription management -This repo hosts [Netlify functions](https://www.netlify.com/products/functions/) that handle Ambianic premium user subscriptions. This is code that cannot run in the browser PWA, because it needs access keys to subscription and payment gateway services (Stripe) shared between all app users. If the code runs in the PWA, users will be able to see and manipulate each other's premium subscription data +

This repo hosts [Netlify functions](https://www.netlify.com/products/functions/) that handle Ambianic premium user subscriptions. This is code that cannot run in the browser PWA, because it needs access keys to subscription and payment gateway services (Stripe) shared between all app users. If the code runs in the PWA, users will be able to see and manipulate each other's premium subscription data

+ + +The image below shows the architecture of these serverless functions in connection with the Ambianic [PWA](https://github.com/ambianic/ambianic-ui/). +![serverless-functions-architecture](./assets/serverless-architecture.png) -A high level sketch of the functions can be found [here](https://drive.google.com/file/d/181etJhBye0u1zvqzAnBY0VtCS0A3SlQ-/view?usp=sharing). diff --git a/assets/serverless-architecture.png b/assets/serverless-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..4e7b01e4de30e1b97f442d3acde1744fc4ddb1f1 GIT binary patch literal 53220 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 literal 0 HcmV?d00001