{"id":18026828,"url":"https://github.com/yegor256/netbout","last_synced_at":"2025-03-16T03:05:28.901Z","repository":{"id":8159522,"uuid":"9580819","full_name":"yegor256/netbout","owner":"yegor256","description":"Private talks made easy ... for robots","archived":false,"fork":false,"pushed_at":"2024-09-07T12:52:31.000Z","size":18921,"stargazers_count":41,"open_issues_count":9,"forks_count":35,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-09-07T14:12:51.376Z","etag":null,"topics":["conversation","java","messaging","messenger"],"latest_commit_sha":null,"homepage":"https://www.netbout.com/","language":"Ruby","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/yegor256.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2013-04-21T14:49:21.000Z","updated_at":"2024-09-02T20:46:03.000Z","dependencies_parsed_at":"2024-01-29T15:29:54.930Z","dependency_job_id":"62218b0e-4990-4d78-82cb-b84b41450a6d","html_url":"https://github.com/yegor256/netbout","commit_stats":null,"previous_names":[],"tags_count":109,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yegor256%2Fnetbout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yegor256%2Fnetbout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yegor256%2Fnetbout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yegor256%2Fnetbout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yegor256","download_url":"https://codeload.github.com/yegor256/netbout/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243818194,"owners_count":20352629,"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":["conversation","java","messaging","messenger"],"created_at":"2024-10-30T08:08:12.064Z","updated_at":"2025-03-16T03:05:28.873Z","avatar_url":"https://github.com/yegor256.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"/public/logo.svg\" width=\"132px\"/\u003e\n\n[![EO principles respected here](https://www.elegantobjects.org/badge.svg)](https://www.elegantobjects.org)\n[![DevOps By Rultor.com](http://www.rultor.com/b/yegor256/netbout)](http://www.rultor.com/p/yegor256/netbout)\n[![We recommend RubyMine](https://www.elegantobjects.org/rubymine.svg)](https://www.jetbrains.com/ruby/)\n\n[![rake](https://github.com/yegor256/netbout/actions/workflows/rake.yml/badge.svg)](https://github.com/yegor256/netbout/actions/workflows/rake.yml)\n[![PDD status](http://www.0pdd.com/svg?name=yegor256/netbout)](http://www.0pdd.com/p?name=yegor256/netbout)\n[![Test Coverage](https://img.shields.io/codecov/c/github/yegor256/netbout.svg)](https://codecov.io/github/yegor256/netbout?branch=master)\n[![Hits-of-Code](https://hitsofcode.com/github/yegor256/netbout)](https://hitsofcode.com/view/github/yegor256/netbout)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/netbout/blob/master/LICENSE.txt)\n[![Availability at SixNines](https://www.sixnines.io/b/6fb0)](https://www.sixnines.io/h/6fb0)\n\nNetbout.com is a communication platform that enables smoothless integration\nof humans and software agents in a conversation-centered environment.\n\nThe original idea behind Netbout is explained in USPTO patent application [US 12/943,022](https://www.google.com/patents/US20120117164).\n\n## Functionality\n\nA user can (both via web interface and RESTful JSON API):\n\n  * Login by email, by Github, by Facebook, etc.\n  * Create a unique **identity**\n  * Start a **bout** with an immutable **title**\n  * Invite another user to a bout (can't kick him out)\n  * Post an immutable **message** to a bout (can't edit or delete it)\n  * Attach a **flag** to a message\n  * Drop a flag from a message\n  * Put an immutable **tag** to a bout with a value (can't remove or modify)\n  * List messages/bouts by search string\n\nA search string is similar to what GitHub uses:\n\n  * `title=Hello!` --- the title of the bout is exactly `Hello!`\n  * `owner=yegor256` --- the owner of the bout is `yegor256`\n  * `started\u003c2023-12-14` --- the bout was created before 14-Dec-23\n  * `guest=:yegor256` --- `yegor256` is one of the participants of the bout\n  * `#foo+` --- the bout has `foo` tag\n  * `#foo-` --- the bout doesn't have `foo` tag\n  * `#foo==bar` --- has `foo` tag with the value `bar`\n  * `$green+` --- the message has `green` flag\n  * `$green-` --- the message doesn't have `green` flag\n  * `body=Hello!` --- the body of the message is exactly `Hello!`\n  * `body=~the\u0026#x20;\u0026quot;world\u0026quot;!` --- the body of the message contains `the \"world\"!`\n  * `author=yegor256` --- the author of the message is `yegor256`\n  * `posted\u003e2023-12-14` --- the message was posted after 14-Dec-23\n\nPredicates may be groupped using `or`, `and`, and brackets, for example:\n\n```\nbody=important and (author=yegor256 or #hello+ or $bye+ or\n  (posted\u003c2023-12-14 and title=~something and body=~Hello))\n```\n\n## How to Test\n\nIn order to test it locally, run:\n\n```\n$ bundle update\n$ bundle exec rake\n```\n\nIn order to run it locally as a web service on your localhost, run:\n\n```\n$ bundle exec rake run\n```\n\nYou should be able to see it at `http://localhost:4567`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyegor256%2Fnetbout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyegor256%2Fnetbout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyegor256%2Fnetbout/lists"}