RTC Terminal is a modern real-time chat application that enables users to create or join chat rooms and communicate instantly with other participants. The application features a clean, responsive interface and supports real-time message delivery using WebSocket technology.
-
Cloning the Repository:
git clone https://github.com/yashksaini-coder/relay-chat
-
Installing Dependencies:
npm install
-
Running the application:
npm run dev
-
Click on the local deployment URL of the Application:
https://localhost/5173
- 🆕 Create new rooms with auto-generated unique room IDs
- 🔗 Join existing rooms using room IDs
- 📋 Copy room IDs to clipboard for easy sharing
- 👥 Real-time user connection tracking
- ⚡ Real-time message delivery
- 🖼️ User-friendly message interface with distinct styling for sent/received messages
- 👨👩👧👦 Support for multiple users in the same room
- 📝 Username display for each message
- ⏎ Enter key support for sending messages
- 🌓 Clean, modern interface with dark theme
- 📱 Responsive design that works on mobile and desktop
- 🔔 Toast notifications for important actions
- 🎢 Smooth transitions and hover effects
- 📜 Scrollable message history
React | TypeScript | Tailwind CSS | Vite | React Toastify | Lucide React |
---|---|---|---|---|---|
The frontend is built as a single-page application (SPA) with React. Key components include:
- 🔗 Connection management with WebSocket
- 🗃️ State management using React hooks
- 📐 Responsive UI components
- ⚡ Real-time message handling and display
The backend implements a WebSocket server that handles:
- 👥 User connections and disconnections
- 🏠 Room management
- 📡 Message broadcasting to room participants
- 🔢 User count tracking
The application uses a simple message protocol over WebSocket:
{
"type": "join",
"payload": {
"roomid": "ROOM_ID"
}
}
{
"type": "chat",
"payload": {
"name": "USERNAME",
"message": "MESSAGE_CONTENT"
}
}
- 🔐 Secure WebSocket connections (WSS)
- 🛡️ Input validation
- 🚪 Room isolation (messages only broadcast to users in the same room)
- 🌐 Frontend deployed on Vercel
- 🖥️ Backend deployed on Render
- 🔧 WebSocket server configured for production use