April 2026
This project is a real-time chat application built using React and WebSockets. The goal of the application is to allow multiple users to join chat rooms and communicate instantly without refreshing the page. The system is designed using a client-server architecture, where the server manages connections, rooms, and message broadcasting, and the client handles user interaction and UI updates. The application uses socket.io to establish persistent WebSocket connections between the client and server. This allows continuous, bidirectional communication, enabling features like live messaging, message editing, deletion, and typing indicators. The server organizes users into rooms, allowing multiple chat sessions to run simultaneously. Each room maintains its own message history and active users, ensuring that communication is isolated per group. This project helped me understand real-time communication, event-driven programming, and how to manage shared state across multiple users in a live environment using React.
Frontend: React
Backend: Node.js, Express
Real-Time Communication: WebSockets using socket.io
Architecture: Client-server architecture with event-driven communication
Data: In-memory storage for chat logs and room data
Version Control: GitHub
One of the main challenges was understanding how WebSockets work compared to traditional HTTP requests.
The application was deployed using AWS Elastic Beanstalk as part of the school project. Due to resource limitations, the live deployment is not currently active. I am planning to redeploy the application using an alternative hosting platform in the future.
If you're interested in viewing the repository, feel free to reach out by email. I'd be happy to share it with you!