This project is a real-time chat application that allows users to create and join rooms, choose nicknames, and communicate instantly. The app supports features such as notifications when users join or leave, and the ability for new users to see previous messages in a room.
- Create and Join Rooms: Users can create unique chat rooms or join existing ones using a room code.
- Nickname Support: Each user can set a unique nickname.
- User Notifications: Shows messages when a user joins or leaves the room.
- Persistent Chat History: New users can see all previous messages in the room.
- Responsive UI: Chat bubbles are displayed on opposite sides of the screen for different users.
- Frontend: React (with React Router)
- Backend: Node.js with Express and Socket.IO
- Styling: Tailwind CSS
- Node.js and npm installed
- A modern web browser
-
Clone the repository:
git clone <repository_url> cd live-link
-
Install dependencies for both server and client:
cd Backend npm install cd live-link npm install
-
Start the server:
cd Backend node server.js -
Start the client:
npm run dev
-
Open the application in your browser at http://localhost:5173.
server.js- Handles room creation, user management, and message broadcasting.
-
src/App.jsx- Main entry point for routing between components.
-
src/components/MainMenu.jsx- Landing page with options to create or join a room.
-
src/components/Chat.jsx- Displays chat messages, and message sending.
- Navigate to the main menu.
- Click "Create Room."
- Copy the generated room code and share it with others.
- Enter a nickname and start chatting.
- Navigate to the main menu.
- Click "Join Room."
- Enter the room code and your nickname.
- Join the chat and view previous messages.
- "[User] joined the room" or "[User] left the room" messages are broadcasted to all users in the room.
- New users joining a room receive the room’s chat history immediately.
- Private Messaging: Enable one-on-one conversations.
- File Sharing: Allow users to share files.
- Enhanced UI: Improve chat bubble styling and add themes.
- Authentication: Require login for persistent user accounts.
This project is licensed under the MIT License.
- Dinesh (Developer)
Feel free to contribute to this project by submitting issues or pull requests!