Skip to content

kirandevtn/wave-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chat Web App with Message Encryption and User Authentication

You can checkout the live website here:👉🏻 https://rebrand.ly/wavy-project.

Tech Used: Node.js, socket.io, crypto (node.js module), MongoDB, HTML, CSS, JavaScript, Ajax

Short Intro

  • A messenger like web-app to make conversations with other users, built with a user-friendly design.
  • Implemented end-to-end encryption of web app conversations using the crypto package; safeguarded user privacy and prevented unauthorized access to sensitive data, ensuring complete confidentiality.
  • Displayed online/offline status indicators for users, allowing real-time visibility of user availability. Leveraged MongoDB for scalability to accommodate a larger user base, enabling real-time conversations.
Login Page! You can register yourself!

Features

  • Real-time chat with multiple users.
  • Secure user authentication.
  • End-to-end encryption for messages.
  • Unique encryption keys for each conversation.
This is what your chat window looks like.

A real-time chat application built with Node.js and Socket.io that provides secure message encryption and user authorization.

Encryption

Messages exchanged between users are encrypted using a unique key for each conversation. The encryption process ensures that messages are secure and private. The key for encryption is generated based on the users involved in the conversation.

  • We have a key pre declared for everyone while registering. Our encryption is the combination of the two keys plus one public key.
  • User A Key: "poiuyt"
  • User B Key: "mnbvc"
  • Public Key: "KEY" Hence the key for our encryption will be: "poiuytmnbvcKEY", So that we can have a unique key for each conversation.

Features

  • Real-time chat with multiple users.
  • Secure user authentication.
  • End-to-end encryption for messages.
  • Unique encryption keys for each conversation.

Installation

To set up this chat application on your local machine, follow these steps:

  1. Clone the repository:

    git clone https://github.com/skyber71/wave-app.git
    cd wave-app

Usage

Create an account or log in with your credentials. Once logged in, you can: View a list of available chat rooms and users. Start a new chat by selecting a user from the list. Send and receive messages in real-time. Securely chat with end-to-end encryption.

Authentication

User authentication is implemented to ensure that only authorized users can access the chat rooms. It includes:

User registration: Create a new account with a unique username and password. User login: Log in using your registered username and password. Session management: Keep users logged in between sessions.