{"id":28761707,"url":"https://github.com/asyncapi/chatbot","last_synced_at":"2025-07-06T20:36:18.340Z","repository":{"id":37402320,"uuid":"371341718","full_name":"asyncapi/chatbot","owner":"asyncapi","description":"The project's aim is to develop a chatbot that can help people create spec documents without knowing the specification.To get started with, the bot will consume the spec, JSON schema and serves the user as an expert. So based on a set of questions and answers it will generate an AsyncApi spec document according to the use cases.","archived":false,"fork":false,"pushed_at":"2025-06-04T19:01:15.000Z","size":10682,"stargazers_count":16,"open_issues_count":6,"forks_count":23,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-06-20T10:25:26.314Z","etag":null,"topics":["chatbot","hacktoberfest","nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asyncapi.png","metadata":{"funding":{"github":"asyncapi","patreon":null,"open_collective":"asyncapi","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null},"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-05-27T10:57:55.000Z","updated_at":"2025-05-26T10:17:34.000Z","dependencies_parsed_at":"2023-12-15T22:04:44.025Z","dependency_job_id":"2d79efc0-c9ae-473b-b778-64d88268ccf9","html_url":"https://github.com/asyncapi/chatbot","commit_stats":{"total_commits":90,"total_committers":6,"mean_commits":15.0,"dds":0.0888888888888889,"last_synced_commit":"3febeaafe2dbfe364db84a76bd49fb11a99368f9"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/asyncapi/chatbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asyncapi%2Fchatbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asyncapi%2Fchatbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asyncapi%2Fchatbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asyncapi%2Fchatbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asyncapi","download_url":"https://codeload.github.com/asyncapi/chatbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asyncapi%2Fchatbot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262555107,"owners_count":23327851,"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":["chatbot","hacktoberfest","nodejs"],"created_at":"2025-06-17T07:40:31.135Z","updated_at":"2025-07-06T20:36:18.287Z","avatar_url":"https://github.com/asyncapi.png","language":"JavaScript","funding_links":["https://github.com/sponsors/asyncapi","https://opencollective.com/asyncapi"],"categories":[],"sub_categories":[],"readme":"# Asyncapi Chatbot Documentation\n\n# Overview\n\nThe AsyncApi chatbot is a way of exploring how we could help people to write the asyncapi spec document without knowing the specification. So based on a set of questions and answers it will generate an AsyncApi spec document according to the use cases.\n\n# Project Architecture\n\nThe Asyncapi chatbot was built using the following tech stack.\n\n1. [Wit.ai](http://wit.ai) —\u003e Used in building the bot's knowledge \n2. Node.js —\u003e Used in writing the server-side bot's code\n3. React.js —\u003e Used in writing the client-side bot's code\n4. Lerna —\u003e Used in making the project a monorepo, for ease of testing purpose \n\n## Project's Flow\n\nThe project has two flows which are Question flow and Generation flow\n\n1. Question Flow —\u003e This is the module that allows the bot to handle anything question-related(the bot can only handle asyncapi-related questions). This functionality also enables the bot to have the capacity to handle questions in the middle of a conversation without losing track of the conversation.\n2. Generator Flow —\u003e This is the module that gives the bot the capacity to generate asyncapi spec document based on the user input and also validates user input based on the question asked by the bot. The spec is generated in real-time during the conversation.\n\n## Project structuring\n\nThe project is structured in 3 parts which consist of the server, test-client, and client\n\n### Server\n\nThe server structure consists of all the code that allows the bot to communicate with the users effectively. Here is a detailed explanation of each substructure in the server.\n\n1.  Controllers —\u003e This folder consist of the code handler that determines if the user's input is a question or a spec related input\n2. Helpers —\u003e  This folder consists of all the external modules the bot is using for communication. E.g. wit.js(for communicating with the [wit.ai](http://wit.ai) NLP) and socket.js(used for real-time communication between the bot and users)\n3. Models —\u003e This folder consists of all data required by the bot. E.g the question models which consist of all the questions the bot asks the user. \n4. Services —\u003e This folder consists of codes that process the user's input. E.g the generatorFlow.js(this handles all the spec generation-related inputs), questionFlow.js(this handles all question-related inputs), and generator.js(this handles the generation of the final asyncapi specification in a YAML format\n5. Utils —\u003e This folder consists of all reusable codes used across the bots server-side e.g schema validation\n\n### Test Client\n\nThis is an Interactive CLI that can be used to interact with the bot... Nothing much here\n\n## Common bots vocabulary\n\n1. Skip or Not now —\u003e To tell the bot to skip a question\n2. Exit or Kill—\u003e To tell the bot to end the conversation [Not available yet]\n3. ? —\u003e To tell the bot to repeat the question [Not available yet]\n\n# Project's Todo\n\n- [ ]  An interactive user interface that can be plugged into the asycapi website, playground, and the upcoming studio\n- [ ]  Ability to readout specs and give info about channels that users ask for from the spec\n- [ ]  Handle and understand more vocabulary\n- [ ]  Ability to answer more asyncapi related questions\n- [ ]  Ability to modify an existing spec by parsing an existing spec link. So users can tell the bot they want to modify the specification\n\n# Getting started\n\n### Prerequisite\n\n1. Git\n2. Node: any 12.x version starting with v12.0.0 or greater\n3. Yarn\n4. A fork of the repo (for any contributions)\n5. A clone of the [chatbots](https://github.com/asyncapi/chatbot) repo on your local machine\n\n### Installation\n\n1. cd [chatbots](https://github.com/asyncapi/chatbot) to go into the project root\n2. run yarn to install the dependencies\n\n### Running locally\n**Note: Tell the bot \"i want to generate\" to trigger a conversation with the bot**\n\nFollow this step to run the project with the live server.\n\n1. Run yarn test-client to start the interactive CLI that communicates with the live server.\n\nFollow this step to run the project with local server\n\n1. yarn start:dev to start the project\n2. open [http://localhost:5000](http://localhost:5000/) to ensure the project server is running.\n3. open [http://localhost:3000](http://localhost:3000/) to open the chatbot's UI in your favorite browser[Not available yet]\n\n# Contributing\n\nRead more in [CONTRIBUTING.md](CONTRIBUTING.md).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasyncapi%2Fchatbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasyncapi%2Fchatbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasyncapi%2Fchatbot/lists"}