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.
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.
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)
Log in or sign up for Devpost to join the conversation.