This is my chat side project type-0: A Random Chat Room implemented by FastAPI.
Implemented features:
- JWT authentication
- User registration
- User match a random user and unmatch (Redis set)
- User send and recieve message (Redis stream)
- User recieve notification (Redis stream)
This project are implemented base on:
- Clean architecture and Domain-Drvien Design concept
- Message bus
demo.mov
make dc
Gen RSA Key pair
openssl genrsa -out private.pem 2048
openssl rsa -in private.pem -pubout -out public.pem
paste them to .env
DATABASE_DSN=postgres://postgres:[email protected]:5432/postgres
REDIS_DSN=redis://localhost:6379?decode_responses=True
PUBLIC_KEY="here"
PRIVATE_KEY="here"
poetry install
Create DB schema (first time)
aerich upgrade
Run Server
make run
make test