I’m building an internal control panel that streamlines our customer-support workflow. The stack is Python with Streamlit for the UI, Redis for fast in-memory state and queueing, and Postgres as the source of truth for historical data. Core workflow The panel’s single purpose is to let our support team handle live customer interactions from one place. Agents must be able to launch or join an active chat, see who is waiting, review basic customer context pulled from Postgres, and hand the conversation off or close it. All updates to chat status should push instantly to every connected agent, so WebSocket or Streamlit’s native realtime features will be necessary. Key feature set • Live chat integration that plugs into our existing WebSocket gateway (or a lightweight alternative you propose) • Real-time queue visible to every agent, backed by Redis • Customer context sidebar that hydrates from Postgres with recent tickets, tags, and previous chat snippets • Role-based access so only support staff view chats while ops leaders can see high-level metrics Data flow at a glance Redis keeps transient chat states, agent presence, and typing indicators. A nightly job or on-close hook moves finished chat transcripts into Postgres. Streamlit pulls both live Redis data and historical Postgres records to render the dashboard. Deliverables 1. Streamlit app packaged in a clean repo with Dockerfile and requirements.txt 2. Redis models / helper scripts for chat state management 3. Postgres schema changes (DDL) and seed script for sample data 4. README covering local dev up to production deployment on Docker Compose 5. Brief Loom or similar walkthrough (≤10 min) showing the chat flow end-to-end Acceptance criteria • An agent can see a new customer appear in the queue within one second. • Chat messages persist in Postgres once a session closes, and a reload shows the transcript. • No blocking calls in the Streamlit app; UI stays responsive under three concurrent chats. • Code passes flake8 and simple pytest coverage for critical Redis functions. Let me know early if you need additional environment details; I’ll provide connection strings and sample data dumps as soon as the repo scaffold is ready.