Open Wireless display using webrtc
This project is a cross-platform AAC (Augmentative and Alternative Communication) display app using Next.js. It includes WebRTC for real-time communication, BLE (Bluetooth Low Energy) support, and a QR code feature for device pairing.
- provide a demo sending page. pair with a display webrtc backend isubg the signalling webrtc backend. pair via ble or wifi using qr code. simole text box. type in it and presss send.
- a webrtc signalling server.
- a disolay SPA which privides a qr code and a way of pairing with the backend using webrtc. then when paired abd connected - deal with network changes - and disolay incoming text ib a large full screen beatiiful animated way. font size, colour, font, animation details etc all configurable.
- provide a way of sending a "im writing" from sender app (as you start entering texr but before you press send) and display on display app. eg "...." (animated)
- Cross-Platform: Works across devices including desktops, tablets, and mobile devices.
- WebRTC and BLE Support: Provides dual connectivity options for real-time communication.
- Customizable Display: Allows configuration of font size, color, and animation styles.
- QR Code Pairing: Generates QR codes to easily pair devices with the WebRTC server.
- Offline Support: Caches essential files for offline usage with a service worker.
- Node.js >= 20.9.0
- npm (usually bundled with Node.js)
-
Clone the Repository:
git clone https://github.com/acecentre/owd.git cd owd
-
Install Dependencies:
npm install
-
Run the Development Server:
npm run dev
Open http://localhost:3000 to view the app.
-
Build for Production:
npm run build
-
Start Production Server:
npm start
owd/
├── components/
│ ├── DisplayText.js # Text display component with custom styles
│ ├── SettingsPanel.js # Settings panel for configuring display options
│ └── QRCodeDisplay.js # QR code generator for pairing
├── pages/
│ ├── index.js # Main page displaying the AAC text
│ ├── sender.js # Page for sending text messages
│ └── api/
│ └── signaling.js # WebSocket signaling server for WebRTC
├── public/
│ ├── manifest.json # Web app manifest for PWA setup
│ └── service-worker.js # Service worker for offline support
├── services/
│ ├── WebRTCService.js # WebRTC connection management
│ ├── SocketService.js # WebSocket management
│ └── BLEService.js # BLE connection management
└── package.json # Project metadata and dependencies
To deploy this app to a platform like Heroku or DigitalOcean, ensure you have:
• The engines field in package.json to specify Node.js version.
• A custom build command in your deployment settings:
npm run build
This project is licensed under the MIT License.
Created by Will Wade.