Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shub-garg/e2e-chat-application-with-encryption
A real-time chat application built with Node.js, Express, and Socket.io, featuring end-to-end encryption (E2EE) using RSA-OAEP. Users can join chat rooms, send encrypted messages, and use an emoji picker. Ensures privacy with sender-side encryption and recipient-side decryption. Future enhancements include user authentication and file sharing.
https://github.com/shub-garg/e2e-chat-application-with-encryption
Last synced: 3 days ago
JSON representation
A real-time chat application built with Node.js, Express, and Socket.io, featuring end-to-end encryption (E2EE) using RSA-OAEP. Users can join chat rooms, send encrypted messages, and use an emoji picker. Ensures privacy with sender-side encryption and recipient-side decryption. Future enhancements include user authentication and file sharing.
- Host: GitHub
- URL: https://github.com/shub-garg/e2e-chat-application-with-encryption
- Owner: shub-garg
- License: mit
- Created: 2024-06-20T08:45:05.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-06-20T09:29:21.000Z (8 months ago)
- Last Synced: 2024-06-21T22:32:59.999Z (8 months ago)
- Language: JavaScript
- Homepage:
- Size: 2.54 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Secure Chat Application
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.
## Features
- **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.![chat app](https://github.com/shub-garg/E2E-Chat-Application-with-Encryption/assets/52582943/ffa48cdc-c24b-4c0a-95e2-ca46d914834f)
## Technologies Used
- **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## Setup
1. Clone the repository:
```bash
git clone https://github.com/yourusername/secure-chat-app.git
cd secure-chat-app
```2. Install dependencies:
```bash
npm install name
```3. Start the server:
```bash
npm start
```4. Open your browser and navigate to:
```arduino
http://localhost:3000
```
## Usage
1. On the home page, enter your username and select a chat room or create a new one.
2. Join the chat room and start sending encrypted messages.
3. Use the emoji picker to add emojis to your messages.
4. See a list of current users in the chat room and the room name on the sidebar.## Future Enhancements
1. User Authentication: Implementing user authentication for added security.
2. Message History: Storing and retrieving past messages.
3. File Sharing: Enabling secure file sharing between users.