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
- 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! |
- 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.
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.
- Real-time chat with multiple users.
- Secure user authentication.
- End-to-end encryption for messages.
- Unique encryption keys for each conversation.
To set up this chat application on your local machine, follow these steps:
-
Clone the repository:
git clone https://github.com/skyber71/wave-app.git cd wave-app
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.
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.