You create a sound or an image of an object within range that lasts for the duration.
If you create an image of an object it must be no larger than a 5-foot cube.
Fun fact: all backend repos at Noteable are named after DnD spells because lead backend engineer @nicholaswold made a joke one time and CTO @MSeal ran with it
This is a toy Todo
application that uses some of the same frameworks and concepts as our production code. For the Noteable engineering team, this repo can be useful for onboarding, reproducing bugs for external partners, and prototyping systemic changes. For anyone interested in Noteable, here's a peek into the stack you would be working with:
-
Backend:
- Hypercorn for the ASGI server
- FastAPI for the web framework
- Pydantic for data validation
- SQLAlchemy for database ORM
- sqlalchemy-cockroachdb + asyncpg for the database driver
- Alembic for database migration
- SQLModel (in development) for Pydantic + SQLAlchemy convergence!
- Structlog for logging
- Poetry for package management
- Pytest for writing tests
- tox for running tests
-
Database:
-
Prototyping, exploration, and integration tests:
-
Frontend:
-
Docs:
-
Reverse-Proxy:
- Traefik for reverse-proxy and load-balancing between backend instances
Clone this repository and docker-compose up -d
. See Docker and docker-compose documentation for installing those services if they aren't already on your development machine. You can tail the logs for all services with docker-compose logs -f
.
There are five services that will start up:
1. A reverse proxy / load-balance web-server (Traefik), transparent to an end user
2. Frontend (NextJS) UI that you can reach at http://localhost:5000
3. A pair of load-balanced Backend (FastAPI) apps that you can reach at http://localhost:5000/api
, see http://localhost:5000/api/docs
for OpenAPI/swagger
4. CockroachDB that is inacessible from outside of the Docker network
5. Jupyter Notebook container that you can reach at http://localhost:8888
, although you'll need to look at docker-compose logs jupyter
to get the url + access token (something like http://127.0.0.1:8888/?token=c2a1a877ca8ad47818bd76df917d7aaeca6d8f4a17cb462e
)
The backend app will not be accessible until after Cockroach DB is online, accepting connections, and has gone through Alembic migrations. Expect a 30-60 second delay between containers starting and being able to access http://localhost:5000/api/docs
See more documentation created with mkdocs
and hosted on Github pages, published through Github Actions.