1. Backend Technologies (Node.js) Express.js: The core web framework used to handle HTTP requests, serve static files (the frontend), and manage server-side routing. Socket.io: The engine behind the real-time functionality. It enables instant, bi-directional communication between the server and clients for chat messages and notifications. SQLite3: A lightweight, serverless database used to store chat history, message metadata, and status updates. Multer: A middleware used specifically for handling multipart/form-data, which allows users to upload files (images, videos, and documents) to the server. Node.js Built-in Modules (https, fs, path): Used to create a secure server with SSL certificates, interact with the file system for storage, and manage file paths across different operating systems.
  2. Client-Side APIs (Browser) WebRTC (RTCPeerConnection): Used to implement peer-to-peer (P2P) audio and video calling features directly between browsers without routing media through the server. Web Crypto API (SubtleCrypto): This provides the End-to-End Encryption (E2EE). It uses the RSA-OAEP algorithm to encrypt private messages so that only the sender and recipient can read them. MediaRecorder API: Used to capture and record audio from the user's microphone to send voice messages. Intersection Observer API: Used to detect when a message is visible on the screen to trigger "Read" status updates automatically. LocalStorage: Used to persist user preferences like the selected language, theme (Dark/Light mode), and local encryption keys.
  3. Key Project Features Security: Password-protected entry with a "Secret Code" and IP-based lockout after failed attempts. Messaging: Supports public group rooms and encrypted private 1-to-1 chats. Multimedia: Seamless sharing of images, videos, voice notes, and various file types. UI/UX: Responsive design with multi-language support (English, Arabic, French) and real-time typing indicators. (The password is : 2013)
Share this project:

Updates