{"id":22615705,"url":"https://github.com/respoke/the-interview-backbone","last_synced_at":"2025-04-11T12:12:30.989Z","repository":{"id":30144250,"uuid":"33694396","full_name":"respoke/the-interview-backbone","owner":"respoke","description":"Demo application of how to use Respoke","archived":false,"fork":false,"pushed_at":"2015-10-02T17:49:34.000Z","size":2372,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-03-25T08:38:15.087Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.respoke.io/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/respoke.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-09T21:45:24.000Z","updated_at":"2016-01-10T12:47:27.000Z","dependencies_parsed_at":"2022-08-17T20:05:34.413Z","dependency_job_id":null,"html_url":"https://github.com/respoke/the-interview-backbone","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/respoke%2Fthe-interview-backbone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/respoke%2Fthe-interview-backbone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/respoke%2Fthe-interview-backbone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/respoke%2Fthe-interview-backbone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/respoke","download_url":"https://codeload.github.com/respoke/the-interview-backbone/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248398505,"owners_count":21097292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-08T19:09:08.593Z","updated_at":"2025-04-11T12:12:30.961Z","avatar_url":"https://github.com/respoke.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Interview room\n\nThis is an example app you can use to conduct an interview. It uses [Respoke](https://www.respoke.io), Node.js, and Backbone.\n\n#Install The Dependencies\n\n```bash\nnpm install # will also install bower dependencies\n\nsudo NODE_ENV=development APP_ID=YOUR_APP_ID APP_SECRET=YOUR_APP_SECRET ROLE_ID=YOUR_ROLE_ID gulp\n\nopen https://localhost/\n```\n\nDo not put quotes around YOUR_APP_ID, YOUR_APP_SECRET or YOUR_ROLE_ID. Signup for a [Respoke account](https://portal.respoke.io/#/signup) to create your credentials in less than 10 seconds.\n\n#How To Drive \"The Interview Room\"\n\n##Join\n1) Enter your full name and gravatar email address and hit \"Join Interview\":\n\n![Join](http://i.imgur.com/PoJYMMU.png)\n\n\n##Whiteboard\n2) Click \"Get Started\" to start using the Whiteboard function. You can draw on the whiteboard. When you do, the group will recieve your drawings in real-time:\n\n![Whiteboard](http://i.imgur.com/AX169KX.png)\n\n\n##Logout\n3) Click \"Logout\" to logout of the app:\n\n![Logout](http://i.imgur.com/eFpBWHR.png)\n\n\n##Toggle Video and Whiteboard\n4) Click the \"Toggle\" button to toggle the drawing whiteboard and video whiteboard:\n\n![Toggle](http://i.imgur.com/gGuAjfg.png)\n\n\n##Video Controls\n5) Hover over the video to show the video controls where you can \"Mute Audio\" or \"Mute Video\" or \"Stop Video\":\n\n![Video Controls](http://i.imgur.com/hQqf6XA.png)\n\n\n##Brokered Authentication\n6) Checkout server.js to see how Brokered Authentication is implemented for producton apps:\n\n![Authentication](http://i.imgur.com/fZHpnPz.png)\n\n\n##Messages\n7) Type a message and hit [enter] or click [send] to send the message:\n\n![Send Message](http://i.imgur.com/kb2vt70.png)\n\n![Chat Message](http://i.imgur.com/85Ps9YC.png)\n\nDo this from a second instance of the app and you can start an \"Audio Call\", \"Video Call\" or \"Screen Sharing\" session with the group member you selected:\n\n![Conversation](http://i.imgur.com/Mz8gAa8.png)\n\nNOTE: Screensharing requires https and our open source [chrome extension](https://github.com/respoke/respoke-chrome-screen-sharing-extension). Download the extension and add \"https://localhost\" to permissions and content_scripts#matches. Then [Load unpacked extension] at chrome://extensions/.\n\n\n##DirectConnection\n8) To see DirectConnection, click on the padlock to create a DirectConnection. Once connected, any messages you send will be to that user only instead of the entire group.\n\n![DirectConnection](http://i.imgur.com/2Q0VdcQ.png)\n\n\n##Group Discovery\n9) To see Group Discovery, open two tabs of the app and login as different users. Both users will show up for each other (or as many users that join the group really):\n\n![GroupDiscovery](http://i.imgur.com/zs5oybS.png)\n\n\n##Presence\n10) To see Presence, click on one of the logged in users to set their presence to away. Everyone in the group will see the presence updates:\n\n![Presence](http://i.imgur.com/dt73vYm.png)\n\n\n##Asterisk Integration\n11) To call your Asterisk server, click on the Asterisk ( * ) symbol to the left. Click the Asterisk (*) symbol again to hangup:\n\n![Asterisk](http://i.imgur.com/xew8mAc.png)\n\n\n##Call Cell Phones and Landlines\n12) To call a cell phone, voip phone or landline on the PSTN, click the dialpad symbol to the left of the Asterisk (*) symbol. An input dialpad will popup. Enter a phone number in the following format +15555555555 and hit enter. You will start to hear a ring in your app, then the phone you called will start to ring as well. Click the dialpad symbol again to hangup:\n\n![PSTN](http://i.imgur.com/YDak4Vv.png)\n\n\n##Outbound Caller Id\n\n13) Using the international number formatting format [E.164](http://en.wikipedia.org/wiki/E.164#DNS_mapping_of_E.164_numbers), the international public telecommunication numbering plan, you set your caller id using the callerId option for client.startPhoneCall:\n\n![client.startPhoneCall callerId](http://i.imgur.com/0F5Pvnb.png)\n\n##Inbound CallerId\n\n14) Call your app's assigned phone number. You'll trigger a call event. At which point the call object will be composed of a callerId object. The callerId object will consist of properties like number and name:\n\n![Inbound CallerId UI](http://i.imgur.com/hCvySQy.png)\n\n\n#Running The Test Suite\n\nMake sure your server is running:\n\n```\nsudo NODE_ENV=development APP_ID=YOUR_APP_ID APP_SECRET=YOUR_APP_SECRET ROLE_ID=YOUR_ROLE_ID gulp\n```\n\nDo not put quotes around YOUR_APP_ID, YOUR_APP_SECRET or YOUR_ROLE_ID.\n\nThen run your tests:\n```\ngulp tests\n```\n\n\n#Deploying To Heroku\n```\nheroku create YOUR_HEROKU_APP_NAME\n\nheroku config:set NODE_ENV=production\n\nheroku config:set APP_ID=YOUR_APP_ID\n\nheroku config:set APP_SECRET=YOUR_APP_SECRET\n\nheroku config:set ROLE_ID=YOUR_ROLE_ID\n\ngit push heroku master -f\n\nheroku ps:scale web=1\n\nheroku open\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frespoke%2Fthe-interview-backbone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frespoke%2Fthe-interview-backbone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frespoke%2Fthe-interview-backbone/lists"}