# BeMyEars 👂 **BeMyEars** is a real-time video communication platform designed to bridge the gap between **Deaf/Hard of Hearing (HoH)** individuals and **Sign Language Interpreters**. The application provides a seamless, one-to-one video chat experience, allowing Deaf users to instantly request assistance for daily tasks, conversations, or minor emergencies, and enabling Interpreters to provide remote support. --- ## 👥 User Roles & Experience ### For Deaf / Hard of Hearing Users * **Purpose**: Get on-demand access to a visual interpreter. * **What to Expect**: * **Dashboard**: A clear list of currently available (online) Interpreters. * **One-Tap Calling**: Simply tap an Interpreter's name to initiate a video call. * **High-Quality Video**: Optimized video connection (up to 1080p) to ensure sign language and facial expressions are clearly visible. ### For Interpreters * **Purpose**: Offer remote visual assistance and interpretation services. * **What to Expect**: * **Standby Mode**: Login and toggle your status between "Online" and "Offline". * **Incoming Call Alerts**: Full-screen notification when a user needs assistance. * **Two-Way Audio/Video**: Use your voice to translate for the Deaf user while signing back to them via video. * **Abuse Reporting**: Report inappropriate behavior immediately after a call. --- ## 🚀 Key Features * **Real-Time WebRTC Video**: Low-latency peer-to-peer video streaming. * **Bifunctional Login**: Single app supports both User and Interpreter workflows. * **Presence System**: Interpreters control their availability; Deaf users see live counts. * **Video Visibility**: Notifications confirm when video renders on the peer's device. * **Privacy First**: Direct device-to-device connection. --- ## 🛠 Technical Overview This project serves as a proof-of-concept for a modern IOS video chat application. * **iOS Client**: Built with **SwiftUI** and **WebRTC**. * **Backend**: Node.js + WebSocket signaling server. * **Connectivity**: STUN/TURN support (ICE) for traversing NATs. * **Optimization**: Custom video adaptation ("Feed the Beast" strategy) for iPad Pro compatibility. ## 📦 Setup & Build 1. **Install dependencies**: ```bash cd BeMyEars pod install ``` 2. **Open Workspace**: **CRITICAL**: You must open `BeMyEars.xcworkspace`, NOT `BeMyEars.xcodeproj`. ```bash open BeMyEars.xcworkspace ``` 3. **Build**: Select your target device and run (Cmd+R).