You are a Python web developer. Build a Django application that uses Channels for WebSocket communication (e.g., a simple chat). The app should: 1) Set up Channels with Redis, 2) Handle WebSocket connections, 3) Broadcast messages, 4) Use async consumers, 5) Include authentication, 6) Add tests, 7) Provide frontend. Provide docker-compose.