Cypher ChatApp

Published on
2 mins read
––– views

Background:

  • 🧠Think: Drawing inspiration from World War II, the German military with their Enigma machine caused headaches for the Allied forces. Despite being able to intercept messages, decrypting the content was a challenge.
  • 💡Idea: A chat application that encrypts messages on the user's side. Users will agree to use a common password (called enigma) to encrypt and send/receive messages. The chat room will allow anyone access with a URL BUT they cannot read the messages without the password.

Simplifies the access process while maintaining security.🔐

  • 🥇First time: The first application completed using NeoSocket (a framework for realtime apps designed by me).
  • 🏭Use case: This is not just another chat app. It should be used for private chats between two people who have agreed on a password (e.g., meeting in person). It can be embedded in another website to facilitate community chats, allowing people to express their opinions anonymously (I am also integrating it into my blog).

Features:

  • 🏙️Interface: Includes dark mode, responsive design. Webpage is mobile, tablet, and PC friendly.
  • 📱Access: No login required. Just need a URL or room name and a code to decrypt the messages.
  • 🚂Functionality: Meets the basic requirements of a messaging app. Messages are sent and received in real-time.
  • 🤝🏻Rules: Access any chat room. Need a matching password with others to decrypt messages.
  • 🔔Note: Messages are sent with a Nickname for identification. You can choose any Nickname, and anyone else can choose the same one. Of course, only those with the same password can communicate.
  • 💾Storage: Messages are stored on the server for 24 hours. But don't worry, the server won't know what you've messaged.
  • 📶Connectivity: Pings every 5 seconds. If a connection loss is detected, it automatically reconnects to the server.
  • 🎡Utility: Can be embedded in other websites to serve as a community chat room.

Technology Overview

CategoryDetails
Frontend (FE)React-Typescript, Redux-Thunk, MUI CSS framework, NeoSocketSDK(TS)
Backend (BE)NeoSocket (Dotnet8)
Database (DB)MongoDB
InfrastructureAWS serverless (FE), GCP VM Instance (BE, DB) packaged by Docker
DeploymentContinuous Integration/Continuous Deployment (CICD) for FE on AWS