Back to projects page

WebRTC specialist needed to help complete project

$2000

We’re a Canadian auction house who are looking to supplement our internal development team with some external help.

This particular project is a bit of a skunkworks project, not part of our primary business, but may help to generate leads in the future.

The project is partially completed, so you will need to familiarise yourself with the existing code and processes. We would like you to fix outstanding issues.

Part of our motivation to get external help is to expedite the launch of the project. While we know attempting to speed up delivery of a project often results in less than ideal code, time to launch is something we would like you to keep in mind.

You will be working directly with the technology director, who will provide you with new APIs or code access as needed, and will review and QA your work.

* Project Overview

This is a web-based internal tool using WebRTC to allow our staff to communicate with clients, for the purpose of remotely reviewing and appraising the clients’ goods.

This is an evolution of existing RTC tools in use at our company such as Zoom, Google Meet, etc. The primary differences with our software are that the video is one-way (video only transmits from client to staff, while audio is both directions); the staff member can click on the local video element which creates a pointer / ping on the client’s video (to draw attention to a specific object or area to focus the camera on); and the staff member can remotely trigger the client’s phone to take a high-resolution picture which is automatically uploaded to the staff member’s admin tool.

This was a skunkworks project for us which we worked on periodically when time allowed, but we would like to see it completed while we are busy with other projects. You will be integral in taking the project to a launch-ready state.

The project currently has a simple signalling service (Node.js), a Python/Django backend, and a simple, custom JavaScript frontend. The project as-is can partially establish a WebRTC session between the staff and client devices, however it does not establish two-way communications properly (either the staff or the client device will not transmit depending on who initiates the session). We primarily need help with this aspect of the project — WebRTC and signalling. We also would like help polishing up both the staff and client front-end, particularly in the realm of user experience, but this is a secondary priority.

* Project Details

- Completely web-based, using WebRTC
- “Client” (web app on mobile device) must support both iOS and Android
- Uses a TURN/STUN server from Twilio; ICE credentials gathered automatically by backend
- Uses a Django-based backend (we are fine with the current backend and don’t require assistance with this aspect)
- Frontend for both “staff” and “client” is JavaScript written by hand internally, jQuery is also available but majority of code is ES6
- No video is sent from staff to client; the purpose of this tool is for staff to see the client’s “stuff” (using their back camera). Video is only client-to-staff.
- Audio should be sent both ways so staff and client can communicate in real-time
- Staff can click on the client video to “ping” a particular area they want the client to focus on; this is sent via signalling and is overlayed on the client’s local video stream
- Staff can remotely trigger the client’s device to take a high-res photo; the request is sent over signalling, and the client device uploads it automatically to the backend for staff to view later (iOS support needs to be added)
- Signalling is WebSocket-based, using a simple custom node.js app

* Project Tasks

- [PRIMARY] Fix (or refactor) WebRTC and signalling process so that the staff-to-client communication works as expected
- [PRIMARY] Develop an iOS-replacement / shim for the ImageCapture API to capture images using the client’s back-facing camera and tie into existing upload API
- [SECONDARY / OPTIONAL] QA the “start meeting” and “end meeting” experience; recommend, and optionally implement improvements
- [SECONDARY / OPTIONAL] Develop a warning system for minimum browser requirements (ie feature X is not supported in this browser, please upgrade)
- Run a successful test “meeting” with the technology director

* Primary Milestones

1. WebRTC / signalling works as expected
2. iOS-replacement / shim for ImageCapture API works and uploads to the existing upload API
3. Successful “meeting” with the technology director is completed

Project page in Upwork.com

Site: Upwork.com | Web, Mobile & Software Dev, Full Stack Development

Published by:

Similar projects

Ethereum Developer Experienced with NFTs

We are looking for an experienced developer to help with our NFT platform. We are currently worki...

PHP CodeIgniter Web App Speed Optimization, Page Speed Optimization, Performance Optimization.

*This Project Hosted on Digital Ocean. Using Google PageSpeed Insights, YSlow, GTMetrix, I am see...

Find emails - Youtube channel

Goal: Collects emails of Youtube channels on a specific category Steps: 1. Go to youtube.com 2. ...

Need a full LAMP stack developer

Job details: Advanced Laravel expertise Advanced PHP MySQL expertise Familiar with GitFlow, Jenk...

Develop a mobile-first app / web app

Help us fight social isolation! We are building an app to help families communicate with their of...

Data Scraping

From page 2 onwards on this website: https://www.europages.co.uk/companies/Germany/pg-2/injection...

Need someone who can integrate github login

Looking for full stack developer who can integrate github login Site is built in Django + bootstr...

Need a developer with experience with fastlane.tools to consult us with our project

Hi, our project is an app for iOS and Android (and web). It will help organizations collaborate w...