A modern, real-time cross-platform web application powering peer-to-peer WebRTC file transfers.
Overview • Demo • Features • Tech Stack • Getting Started
ConnectX is a beautifully crafted web application designed to instantly send and receive files across platforms using WebRTC-based peer-to-peer (P2P) file transfer.
No cloud storage, no intermediaries, and no waiting. Simply create a session, scan the QR code from your Android device, and establish a secure, direct connection for blistering-fast data transfer. Built using React and Vite, ConnectX acts as the fast and intuitive frontend to our high-performance Spring Boot signaling backend.
Experience the seamless connection process and lightning-fast transfer across platforms:
| Web View | Mobile View |
![]() |
![]() |
Sharing files instantly and wirelessly via WebRTC data channel from both perspectives.
|
|
|
|
| Component | Technology | Description |
|---|---|---|
| Frontend Framework | React 18 | Declarative component-based UI. |
| Build Tool | Vite | Next-generation fast bundler. |
| P2P Engine | WebRTC | Google's WebRTC library for raw P2P data channels. |
| Styling | Tailwind CSS | Utility-first styling for rapid UI development. |
| Networking | WebSockets | Persistent duplex connection to the Signaling Server. |
| Animations | Framer Motion | Production-ready motion library for React. |
The ConnectX Web app communicates seamlessly with the Android Client and Backend Infrastructure:
- Create Session: User clicks "Start Sharing" to generate a unique receiving QR code.
- Scan on Android: The companion Android app scans the QR code containing the
SessionId. - WebSocket Handshake: The Web App and Android App connect via the Spring Boot Signaling service.
- WebRTC Negotiation: The devices exchange
OFFER,ANSWER, andICE_CANDIDATES. - P2P Transfer: A direct DataChannel opens, and binary file chunks stream directly between devices.
Follow these steps to run the Web project locally.
Running the Project
-
Clone the Repository:
git clone https://github.com/Mahir-Agarwal/ConnectX-Web-Client.git cd ConnectX-Web-Client -
Install Dependencies:
npm install
-
Configure Environment: Create a
.envfile pointing to your backend signaling server.VITE_API_BASE_URL=http://192.168.x.x:8080/api VITE_MOBILE_URL=http://192.168.x.x:5173
-
Start Development Server:
npm run dev
ConnectX-WebApp/
├── Demo/ # Application Demo GIFs
├── src/
│ ├── api/ # API integration (Session Management)
│ ├── components/ # Reusable React UI components
│ ├── context/ # React Context (Session State)
│ ├── services/ # Core logic (Signaling & WebRTC)
│ ├── App.jsx # Application Entry Point
│ └── main.jsx # React DOM Mount
└── package.json # Project dependenciesEngineered and Developed by Mahir Agarwal

