{"id":18318758,"url":"https://github.com/xdevplatform/covid19-helper","last_synced_at":"2025-04-05T21:33:14.607Z","repository":{"id":80527544,"uuid":"251468747","full_name":"xdevplatform/covid19-helper","owner":"xdevplatform","description":"Chatbot template to help developer direct users towards useful COVID-19 resources in their own language.","archived":false,"fork":false,"pushed_at":"2020-04-21T23:21:50.000Z","size":12,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-03-21T12:22:09.021Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://developer.twitter.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xdevplatform.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-03-31T01:21:56.000Z","updated_at":"2025-02-25T06:44:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"25864dd1-9c1b-439d-8fa4-e90022a6de43","html_url":"https://github.com/xdevplatform/covid19-helper","commit_stats":null,"previous_names":["xdevplatform/covid19-helper"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xdevplatform%2Fcovid19-helper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xdevplatform%2Fcovid19-helper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xdevplatform%2Fcovid19-helper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xdevplatform%2Fcovid19-helper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xdevplatform","download_url":"https://codeload.github.com/xdevplatform/covid19-helper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247406076,"owners_count":20933803,"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-11-05T18:11:29.766Z","updated_at":"2025-04-05T21:33:14.351Z","avatar_url":"https://github.com/xdevplatform.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# COVID Helper Bot\n\nThis is the source code for the framework that powers [COVID Helper Bot](https://twitter.com/COVID_Helper).\n\nThe project is [running on Glitch](https://glitch.com/edit/#!/remix/covid-helper-bot). Feel free to remix it!\n\n## How does it work\n\nThe conversation flow logic is implemented as a finite-state machine. You can create set of YAML files containing chat bubbles and quick reply options. The `agent` module interprets the files and feeds the appropriate bubble to the conversation flow based on the quick reply option from the user. Keyboard input repeats the last message.\n\n```\n  scripts\n  |--- en-us (English - US)\n     |--- main.yaml (Welcome message and language selector)\n     |--- for-me.yaml (US main menu)\n     |--- help-others.yaml (US - how to help others)\n  |--- it-it (Italy - Italian)\n     |--- for-me.yaml (Italian main menu and options)\n     |--- telefoni.yaml (Italy's regional phone numbers)\n  |--- es-es (Spain - Spanish)\n     |--- for-me.yaml (Spain main menu and options)\n     |--- telefonos.yaml (Spain's regional phone numbers)\n```\n\nEach file contains one of more sections. Each section represents a chat bubble (complete with quick replies), and it is tagged with a label. The main label is `start`.\n\nTo advance the conversation, users will select a quick reply option. Each option contains metadata, which is the reference to the next script file and bubble\n\n## Building a YAML file for your language\n\nThis framework can support multiple conversation flows. This is useful for example to create multiple pathways based on language preferences, or to easily split a flow into smaller files for easier editing and maintenance. The `scripts` folder is organized in locales and sections.\n\n* Copy a folder (e.g. `it-it`) into the language you wish to support. For example, for France, you can copy the folder into `fr-fr`.\n* Localize the main menu (located in `for-me.yaml`)\n* Add the option for your language in `scripts/en-us/main.yaml`.\n\nNot all locales have the same files. This is because the information is localized for the specific country/language combination.\n\nEach file contains one or more chat bubbles. Each bubble is marked with a tag (e.g. `start`, or `regions`). Each bubble will list one or more `options`. Each option will have:\n\n- A `name` (up to 36 characters long)\n- A `description` (up to 72 characters long)\n- A `metadata` field that will trigger the next bubble. The format must be `path/to/filename.yaml#bubble-tag`, for example (`scripts/en-us/for-me.yaml#donate`)\n\nTake a look at the `scripts` folder for implementation examples.\n\n## Contributing\n\nYou're welcome to submit a pull request for new languages and functionality. If you are building a new language, make sure you include the following details in the pull request:\n\n- Your Twitter username\n- The name of the language (e.g. `French`)\n- The local name of the language (e.g. `François`)\n- The sources for your content. **Important:** only use authoritative official sources or the PR may not get merged.\n- The licensing information for your content. **Important:** ensure the content license allows repurposing content for non-commercial purposes.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxdevplatform%2Fcovid19-helper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxdevplatform%2Fcovid19-helper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxdevplatform%2Fcovid19-helper/lists"}