This project is a real-time chat application built with Node.js, Express, and Socket.io, featuring end-to-end encryption (E2EE) for secure messaging. Users can join chat rooms, send messages, and use emojis, all while ensuring that their conversations remain private and secure.
- Real-time Communication: Instant messaging using WebSockets via Socket.io.
- End-to-End Encryption: Messages are encrypted on the sender's side and decrypted on the recipient's side, ensuring privacy and security.
- Public Key Exchange: Each user generates a public/private key pair, with public keys exchanged to enable encryption.
- Multiple Chat Rooms: Users can join existing chat rooms or create new ones.
- Emoji Support: Users can include emojis in their messages using an emoji picker.
- User List and Room Information: Display of current users in the chat room and the room name.
- Node.js: Backend server
- Express: Web framework for Node.js
- Socket.io: Real-time communication library
- Web Cryptography API: Browser API for cryptographic operations
- HTML/CSS/JavaScript: Frontend technologies
- Clone the repository:
git clone https://github.com/yourusername/secure-chat-app.git
cd secure-chat-app
- Install dependencies:
npm install name
- Start the server:
npm start
- Open your browser and navigate to:
http://localhost:3000
- On the home page, enter your username and select a chat room or create a new one.
- Join the chat room and start sending encrypted messages.
- Use the emoji picker to add emojis to your messages.
- See a list of current users in the chat room and the room name on the sidebar.
- User Authentication: Implementing user authentication for added security.
- Message History: Storing and retrieving past messages.
- File Sharing: Enabling secure file sharing between users.