{"id":23139071,"url":"https://github.com/circuit/circuit-firepad-integration","last_synced_at":"2025-04-04T10:11:40.705Z","repository":{"id":79430985,"uuid":"154408431","full_name":"circuit/circuit-firepad-integration","owner":"circuit","description":"Type \"/start co-edit\" in a conversation to start a firepad document collaboration session either on an attachment or a new doc","archived":false,"fork":false,"pushed_at":"2020-07-15T14:22:14.000Z","size":127,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-02-09T20:33:42.746Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/circuit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-23T23:11:22.000Z","updated_at":"2020-07-15T14:22:17.000Z","dependencies_parsed_at":"2023-03-29T13:20:45.617Z","dependency_job_id":null,"html_url":"https://github.com/circuit/circuit-firepad-integration","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/circuit%2Fcircuit-firepad-integration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circuit%2Fcircuit-firepad-integration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circuit%2Fcircuit-firepad-integration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circuit%2Fcircuit-firepad-integration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/circuit","download_url":"https://codeload.github.com/circuit/circuit-firepad-integration/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247157283,"owners_count":20893220,"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-17T13:13:12.728Z","updated_at":"2025-04-04T10:11:40.696Z","avatar_url":"https://github.com/circuit.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"circuit-firepad-integration\n==================================\n\n## Description\nType `/start co-edit` in a conversation to start a firepad document collaboration session either on an attachment or a new document (only supports text documents right now). Only users of the conversation will be able to join the session. The bot will monitor any conversation it is in and manage the co-edit sessions it creates. The application is implemented using the circuit-sdk as well as express to run the server. The application uses firepad to allow for co-editing of the document, you can find firepad at [https://firepad.io](https://firepad.io) if you are interested in using it for other applications.\n\n## Requirements\n[![NodeJS](https://img.shields.io/badge/Node.js-^7.6.0-brightgreen.svg)](https://nodejs.org) \u003cbr/\u003e\n* Developer account on circuitsandbox.net. Get it for free at [developer registration](https://circuit.github.io/).\n* OAuth 2.0 authorization code `client_id` and `client_secret`. Get if for free at [https://yourcircuit.typeform.com/to/sxOjAg](https://yourcircuit.typeform.com/to/sxOjAg).\n* Client credentials for bot `client_id` and optionally `client_secret`. Get if for free at [https://yourcircuit.typeform.com/to/sxOjAg](https://yourcircuit.typeform.com/to/sxOjAg).\n* Requires firebase API keys for their real time database you can get it from [https://console.firebase.google.com](https://console.firebase.google.com) for the client side application since firepad uses it for syncing the documents. You will need to select  `Project settings` which can be found by clicking the cog next to `Project Overview`. After doing so select `Add Firebase to your web app` and those credentials will be used for the client side firebase application.\n* Requires firebase admin API keys for their real time database you can get it from [https://console.firebase.google.com](https://console.firebase.google.com). You can obtain a user by going to the firebase console and navigating to `Users and permissions` (can also be found by clicking the cog next to Project Overview). After going there select the `Service accounts` tab and generate a new private key, these will be your credentials for the firebase admin user.\n\n## Usage\n1. Clone the respository.\n2. Run : `$ npm install`.\n3. Rename `config.json.template` to `config.json` after adding your circuit and firebase credentials. You will also need to add the firebase realtime database rules to your rules in the firebase console. The rules needed for this application are in `firebase-rules-template` file. You can add this to the rules of your firebase.console database rules. The rules can be added by going to, in the firebase console, Database then selecting rules then add the security rules there.\n4. Then Run `$npm start` and the bot will monitor any conversation it is in and manage sessions when a user of the conversation types `/start co-edit`. If a text document is uploaded with the item that is added it will begin the session with that text document. When the session ends the document will be posted to the conversation.\n* Note: The creator, the user who types `/start co-edit`, can end the session by typing `/stop co-edit` in the conversation or in the application itself. The session will also end automatically and the document will be uploaded once all users have left the session. \n* Note: The bot must be a part of the conversation it is listening to.\n\n## Demo\nYou can view a demo of this application here.\u003cbr\u003e\n[![picture](https://img.youtube.com/vi/h9y7qKKCs-M/0.jpg)](https://www.youtube.com/watch?v=h9y7qKKCs-M)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcircuit%2Fcircuit-firepad-integration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcircuit%2Fcircuit-firepad-integration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcircuit%2Fcircuit-firepad-integration/lists"}