# 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).
