Closed soniasusanto closed 3 weeks ago
Planning: Django Channels to be installed. Update ASGI configuration (asgi.py) to include WebSocket support. Use Redis as the channel layer. Create an asynchronous WebSocket consumer to handle connections and broadcast messages. Use JavaScript to establish a WebSocket connection Append incoming messages to the chat box dynamically, with an option for users to submit messages using the "Enter" key. Update Elastic Beanstalk configuration (.ebextensions) to enable WebSocket support in the environment. Configure Nginx to manage WebSocket connections properly. Deploy Redis(can use AWS ElastiCache or run Redis on the EC2 instance) for message handling
Goal: As a user of the web application, I want to have access to a real-time group chatroom so that I can communicate and collaborate with other users seamlessly.
Acceptance Criteria: Users should be able to send and receive messages instantly within the chatroom without refreshing the page. Messages should be broadcasted in real time to all active participants in the chatroom. The chatroom must support concurrent users. All users can see messages sent by other users in the chatroom. All messages must be stored in the database, including metadata like timestamp and room name. Users should be able to view all previous messages when they join the chatroom. A simple text box should allow users to type and send messages by pressing the "Enter" key. Incoming messages should automatically be appended to the chat log, providing a real-time conversation experience.