|
||
---|---|---|
dribdat | ||
.gitignore | ||
Dockerfile | ||
README.md | ||
asyncapi.yml | ||
conftest.py | ||
dribdee.png | ||
mock_data.json | ||
poetry.lock | ||
pyproject.toml |
README.md
dribdee
A next-gen API for hackathons, as a revision of the architecture of dribdat.
The idea is simple: let's massage our foundations. Start with a lightweight model that makes it easy to track the people, teams and projects, based on the most proven, battle-tested, standards-oriented data structures.
We need to be able to performantly search and filter the dribs (posts, short commit notes, screenshots) and other live data points from the event stream - # of paper napkins scribbled on, +/- lines committed to git, L of coffee or kW electricity consumed .. that we altogether might endearingly call our LASN (Local Area Social Network). We would love it if this LASN could play well with your choice of WASN: through subscriptions or integrations or otherwise.
For this, we are looking at either moving from Flask/SQLalchemy to the slightly more performant combination of Falcon/Peewee, or switching to a messaging bus like ØMQ or AsyncAPI, or using a timeseries database (Influx, Timescale), or another dev environment altogether (Go?).
This repository is currently a sandbox and everything is open for discussion.
Running
Get a copy of Python 3 or Podman/Docker to try the experimental dribdat app.
Or upload the AsyncAPI definition to play with it in the Studio.
Python
Create a virtual environment using Poetry (others supported later) .. and activate it.
poetry install
poetry run gunicorn dribdat.app:api --reload
Docker
docker build -t dribdee .
docker run -p 8000:8000 dribdat
Accessing
The API will be hosted by default at http://127.0.0.1:8000
You can find API docs at http://127.0.0.1:8000
Testing
Within your virtual environment, run pytest
in the project root.