Skip to content

tutorcruncher/morpheus

Repository files navigation

Morpheus

Build Status codecov.io pypi

MIT license, Copyright (c) 2021 TutorCruncher & Samuel Colvin. See LICENSE for details.

"The Greek God of Dreams who delivered messages from the gods to the mortal world"

Okay, chill. We're not normally that astronomically arrogant. Just the obvious mythological name for a messaging platform - "hermes" was already taken by a plethora of terrible nineties mail clients.

What morpheus does:

  • sends emails and SMSs fast using Mandrill, SES (TODO) and Messagebird (SMS). One http request to send 5000 emails or SMSs.
  • generate PDFs for attachments given HTML using wkhtmltopdf.
  • provide a searchable history of sent messages and delivery analytics.

Here's a picture to help explain:

Morpheus and Iris

Usage

Morpheus is built with FastAPI, using asyncpg to access a Postgres database and some really handy tools from foxglove.

Running locally

Set up your environment, run make install, create your database with make reset-db and you're ready to go.

You can run the web worker with

foxglove web

and the worker in a different terminal with

foxglove worker

You'll need postgres and redis installed.