From e3656f9c640c5551b9d04de4a641e8ae71c87dd2 Mon Sep 17 00:00:00 2001 From: Clemens Wolff Date: Mon, 11 May 2020 19:19:08 -0400 Subject: [PATCH] Add list of key technologies --- README.rst | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index 8130d29e..713ce482 100644 --- a/README.rst +++ b/README.rst @@ -40,8 +40,7 @@ The Lokole email application is intended to run on low-spec Raspberry Pi 3 hardware (or similar). Read the "Production setup" section below for further information on how to set up the client devices. -The Lokole email server is implemented using `Connexion `_ -and has two main responsibilities: +The Lokole email server has two main responsibilities: 1. Receive emails from the internet that are addressed to Lokole users and forward them to the appropriate Lokole device. @@ -105,6 +104,19 @@ System overview :alt: Overview of the Lokole client email download flow :target: https://swimlanes.io/u/_QqT0iQx8 +Below is a list of some of the key technologies used in the Lokole project: + +- `Connexion `_ is the web framework for the Lokole email server API. +- `Flask `_ is the web framework for the Lokole email client application. +- `Dnsmasq `_ and `hostapd `_ are used to set up a WiFi access point on the Lokole device via which the Lokole email client application is accessed. +- `WvDial `_ is used to access the internet on the Lokole device to synchronize emails with the Lokole email server. +- `Celery `_ is used to run background workers of the Lokole email server in `Azure ServiceBus `_ (production) or `RabbitMQ `_ (development). Celery is also used to run background workers and scheduled tasks on the Lokole email client application in `SQLAlchemy `_. +- `Libcloud `_ is used to store emails in `Azure Storage `_ (production) or `Azurite `_ (development). +- `Sendgrid Inbound Parse `_ is used to receive emails from email providers and forward them to the Lokole email server. `Sendgrid Web API v3 `_ is used to deliver emails from the Lokole email server to email providers. The MX records for Sendgrid are automatically generated via `Cloudflare API v4 `_. +- `Github API v4 `_ is used to authenticate interactive calls to the Lokole email server API such as registering new clients or managing existing clients. Authorization is managed by Github team memberships on the Ascoderu organization. Management operations are exposed via the Lokole status page which is implemented in `React `_ with `Ant Design `_. +- `Travis CI `_ is used to verify pull requests and deploy updates to production. +- [ ~ Dependencies scanned by PyUp.io ~ ] + -------------------- Data exchange format -------------------- @@ -335,5 +347,3 @@ and a translation editor such as `poedit `_. Then follow th # finalize the translation file pybabel compile -d opwen_email_client/webapp/translations - -[ ~ Dependencies scanned by PyUp.io ~ ]