{"id":13471868,"url":"https://github.com/symblai/Symbl-powered-Agora-RTE-app","last_synced_at":"2025-03-26T15:30:44.152Z","repository":{"id":45995323,"uuid":"368178949","full_name":"symblai/Symbl-powered-Agora-RTE-app","owner":"symblai","description":"Build an app with Agora's Real-Time Engagement App Builder so you can add to your calls, meetings, or conferences transcripts and transcription, live captions and live captioning, contextual AI insight such as action-items, follow-ups \u0026 questions, vastly enhancing your real-time engagements.","archived":false,"fork":false,"pushed_at":"2021-11-22T04:19:00.000Z","size":13588,"stargazers_count":17,"open_issues_count":8,"forks_count":15,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-18T00:17:32.188Z","etag":null,"topics":["agora","ai","api","app","hacktoberfest","javascript","real-time","realtime","realtime-chat","realtime-messaging","rte","screen-sharing","sentiments","streams","symbl","topics"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/symblai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"Contributing.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2021-05-17T12:34:05.000Z","updated_at":"2024-10-02T16:22:46.000Z","dependencies_parsed_at":"2022-08-25T09:21:19.122Z","dependency_job_id":null,"html_url":"https://github.com/symblai/Symbl-powered-Agora-RTE-app","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/symblai%2FSymbl-powered-Agora-RTE-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symblai%2FSymbl-powered-Agora-RTE-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symblai%2FSymbl-powered-Agora-RTE-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symblai%2FSymbl-powered-Agora-RTE-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/symblai","download_url":"https://codeload.github.com/symblai/Symbl-powered-Agora-RTE-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245681184,"owners_count":20655148,"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":["agora","ai","api","app","hacktoberfest","javascript","real-time","realtime","realtime-chat","realtime-messaging","rte","screen-sharing","sentiments","streams","symbl","topics"],"created_at":"2024-07-31T16:00:49.931Z","updated_at":"2025-03-26T15:30:42.367Z","avatar_url":"https://github.com/symblai.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Symbl-powered-Agora-RTE-app\n\n[![Websocket](https://img.shields.io/badge/symbl-websocket-brightgreen)](https://docs.symbl.ai/docs/streamingapi/overview/introduction)\n\n![](https://symbl.ai/wp-content/uploads/2021/05/symbl_agora_pn.jpg)\n\nSymbl's APIs empower developers to enable: \n- **Real-time** analysis of free-flowing discussions to automatically surface highly relevant summary discussion topics, contextual insights, suggestive action items, follow-ups, decisions, and questions.\n- **Voice APIs** that makes it easy to add AI-powered conversational intelligence to either [telephony][telephony] or [WebSocket][websocket] interfaces.\n- **Conversation APIs** that provides a REST interface for managing and processing your conversation data.\n- **Summary UI** with a fully customizable and editable reference experience that indexes a searchable transcript and shows generated actionable insights, topics, timecodes, and speaker information.\n\n**This app is provided for demonstration purposes only. Please feel free to report any issue in the `Issues` section.**\n\n\u003chr /\u003e\n\n## Enable Symbl for Agora [RTE App][agorarte] \n\n\u003chr /\u003e\n\n * [Introduction](#introduction)\n * [Pre-requisites](#pre-requisites)\n * [Features](#features)\n * [Browser Support](#browsersupport)\n * [Setup and Deploy](#setupanddeploy)\n * [Dependencies](#dependencies)\n * [Conclusion](#conclusion)\n * [Community](#community)\n\n## Introduction\n\nThis is a multi-party video-conferencing application that demonstrates [Symbl's Real-time APIs](https://docs.symbl.ai/docs/streamingapi/overview/introduction). \n\n## Pre-requisites\n\n* [Node.js v10+](https://nodejs.org/en/download/)\n* [PostgreSQL Database](https://www.postgresql.org/)\n* [Go](https://golang.org/)\n* [Agora account](https://console.agora.io/)\n* [Symbl account](https://platform.symbl.ai/#/signup?utm_source=get-info\u0026utm_medium=marcelo\u0026utm_campaign=rep)\n\n## Features\n* Live Closed Captioning\n* Real-time Transcription\n* Real-time Insights: Questions, Action Items and Follow-ups\n* Real-time Topics with sentiments \n* Video conferencing with real-time video and audio\n* Enable/Disable camera\n* Mute/unmute mic\n* Screen sharing\n\n\n## Browser Support\nSupport for this application is available only for Chrome and Firefox.\n\n## Credentials\n\n1. Get your Symbl credentials (`App Id` and `App Secret`) from the [Symbl Platform Console](https://platform.symbl.ai).\n\n2. Get your Agora credentials (`App Id` and `App Certificate`) from the [Agora Platform Console](https://console.agora.io/). See [here](https://www.agora.io/en/blog/how-to-get-started-with-agora/) for more information on how to do that.\n\n### Setup the Database\n1. Download and install [PostgreSQL](https://www.postgresql.org/download/). You can follow these [steps to install PostgreSQL](https://www.postgresqltutorial.com/postgresql-getting-started/).\n2. Create a database with the name of your choice. See [here](https://www.postgresql.org/docs/13/manage-ag-createdb.html) for more information.\n3. Note the username, password, and database name that you have created. \n\n### Setup the Backend \n\n1. Clone the [repo](https://github.com/symblai/Symbl-powered-Agora-RTE-app).\n2. Navigate to the `Symbl-Powered-Agora-Backend-master` directory and open the `config.json` file.\n3. Add your Symbl `App Id` and `App Secret` values in the respective fields below:\n\n``` \n\"SYMBL_APPID\": \"\"\n\"SYMBL_SECRET\": \"\"\n``` \n4. Add your Agora `App Id` and `App Certificate` values in the respective fields below:\n\n``` \n\"APP_ID\": \"\",\n\"APP_CERTIFICATE\": \"\",\n``` \n\n5. Open the file models/db.go and replace the following line (19) within the CreateDB function:\n\n```\ndb, err := gorm.Open(\"postgres\", os.Getenv(\"PG_DB_DETAILS\"))\n```\n\nwith your PostgreSQL database user, password, host, and database name as described below:\n\n```\ndb, err := gorm.Open(\"postgres\",\"postgres://\u003cuser\u003e:\u003cpassword\u003e@\u003chost\u003e/\u003cdb_name\u003e?sslmode=disable\")\n```\n\nThis sample application uses GORM for connecting to the PostgreSQL database and you can learn more about it [here](https://gorm.io/docs/connecting_to_the_database.html).\n\n### Run the Backend server\n\n1. Navigate to the `Symbl-Powered-Agora-Backend-master` directory and run the following command:\n  \n```\ngo run server.go\n```\n\nYour backend server should be running on port `8080` and you should see a log message similar to the following:\n\n```\n{\"level\":\"debug\",\"time\":\"9999-99-99T99:99:99-07:00\",\"message\":\"Backend server running on port: 8080\"}\n```\n\nYou can also navigate to http://localhost:8080/test to make sure the server is up and running without any issues. You should see a sample web page as shown below.\n\n![](/sample-backend.png)\n\n### Setup the Frontend\n\n1. Open the file `config.json` under the folder `Symbl-Powered-Agora-Master` and provide your Agora project name, display name, and App Id in the respective fields below:\n\n```\n\"projectName\": \"\"\n\"displayName\": \"\"\n\"AppID\":\"\"\n```\n\n2. Add the Backend URL in the respective field below:\n\n```\n\"backEndURL\": \"http://localhost:8080\"\n```\n\n### Run the Frontend\n\n1. Navigate to the `Symbl-Powered-Agora-master` directory and run the following command:\n  \n```\nnpm install\n```\n\nThis command will install all the necessary frontend dependencies.\n\n2. Run the following command to start the frontend application:\n\n```\nnpm run web \n```\n    \nYour frontend server should be running on port 3000 (http://localhost:3000). You should see the web application ready to be used as shown below.\n\n![](/sample-frontend.png)\n\n### Testing the Application\nWith your backend and frontend servers up and running, navigate to [http://localhost:3000](http://localhost:3000), click on the `Create a meeting` button, enter a room name and click the `Create a meeting` button again.\n\nWhen the meeting URL is created, click on the `Enter Meeting (as host)` button to enter the meeting.\nSelect your camera, microphone and type your display name before clicking on the `Join Room` button.\n\n## Conclusion\nThis application allows you to join an Agora video conference meeting with Symbl Transcripts and Insights, Topics and Sentiments enabled and displayed it on the screen in real-time. \n\n## Community\n\nIf you have any questions, feel free to reach out to us at devrelations@symbl.ai or through our [Community Slack][slack] or our [forum][developer_community].\n\nThis guide is actively developed, and we love to hear from you! Please feel free to [create an issue][issues] or [open a pull request][pulls] with your questions, comments, suggestions, and feedback. If you liked our integration guide, please star our repo!\n\nThis library is released under the [Apache License][license]\n\n[license]: LICENSE.txt\n[telephony]: https://docs.symbl.ai/docs/telephony/overview/post-api\n[websocket]: https://docs.symbl.ai/docs/streamingapi/overview/introduction\n[developer_community]: https://community.symbl.ai/?_ga=2.134156042.526040298.1609788827-1505817196.1609788827\n[slack]: https://join.slack.com/t/symbldotai/shared_invite/zt-4sic2s11-D3x496pll8UHSJ89cm78CA\n[issues]: https://github.com/symblai/Symbl-powered-Agora-RTE-app/issues\n[agorarte]: https://appbuilder.agora.io/\n[pulls]: https://github.com/symblai/Symbl-powered-Agora-RTE-app/pulls\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsymblai%2FSymbl-powered-Agora-RTE-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsymblai%2FSymbl-powered-Agora-RTE-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsymblai%2FSymbl-powered-Agora-RTE-app/lists"}