https://github.com/ttyobiwan/esorcerer
Event sourcing dashboard powered with various plugins.
https://github.com/ttyobiwan/esorcerer
celery celerybeat ddd docker fastapi pytest python redis tortoise-orm
Last synced: 10 months ago
JSON representation
Event sourcing dashboard powered with various plugins.
- Host: GitHub
- URL: https://github.com/ttyobiwan/esorcerer
- Owner: ttyobiwan
- Created: 2023-01-24T18:42:51.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-08T19:03:39.000Z (over 2 years ago)
- Last Synced: 2025-01-12T14:47:49.565Z (12 months ago)
- Topics: celery, celerybeat, ddd, docker, fastapi, pytest, python, redis, tortoise-orm
- Language: Python
- Homepage:
- Size: 49.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🔮 esorcerer
[](https://www.python.org/)
[](https://github.com/python/black)
[](https://github.com/pre-commit/pre-commit)
[](https://mypy-lang.org/)
[](https://github.com/charliermarsh/ruff)

## 📝 Table of Contents
- [About](#about)
- [Installation](#installation)
Event sourcing dashboard powered with various plugins.
The basic functionalities are exposing API to create events and attaching hooks to react when a specific event occurs. It may look overengineered (and it probably is), but the main idea was to create an app that uses many popular technologies and tools and integrates them into FastAPI app using ports and adapters architecture. Maybe someone can find this setup useful as a boilerplate for another overengineered project.
List of plugins:
- Database ORM (Tortoise-ORM) ✅
- Tasks (Celery, Redis) ✅
- Caching (Redis) ✅
- Search (ElasticSearch) ❌
- Emails (Sendgrid) ❌
PS: I'm still working on it, so don't judge me.
Create a new virtual environment (assuming you already have Python installed e.g. via `pyenv`)
```bash
python -m venv venv
```
Activate it
```bash
source ./venv/bin/activate
```
Install requirements for local setup
```bash
pip install -r ./requirements/local.txt
```
Create `.env` file and populate it with proper values. Example file can be found in [here](./infra/example.env).
Build images
```bash
make build
```
Start containers
```bash
make up
```
After that you should be able to reach , which leads to the Swagger docs.