A learning-focused real-time chat application built with FastAPI, WebSockets, JWT authentication, PostgreSQL, and Streamlit.
- FastAPI (Backend & REST APIs)
- WebSockets (Real-time messaging)
- JWT Authentication
- PostgreSQL (Persistent storage)
- Streamlit (Frontend UI)
- User authentication (signup/login) with JWT
- Authenticated WebSocket connections
- Real-time message broadcasting
- Message persistence in PostgreSQL
- Room-based chat support
- Minimal Streamlit frontend
- User logs in via REST API
- JWT is issued and stored client-side
- WebSocket connection established using JWT header
- Messages are broadcast and stored in database
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload
### Frontend
```bash
streamlit run app.py