{"id":23578045,"url":"https://github.com/couchbaselabs/chatbase","last_synced_at":"2025-08-16T07:07:06.268Z","repository":{"id":38073691,"uuid":"195134085","full_name":"couchbaselabs/Chatbase","owner":"couchbaselabs","description":"A simple (mobile) chat app using Couchbase Lite, Sync Gateway, and Couchbase Server.","archived":false,"fork":false,"pushed_at":"2022-12-08T05:47:30.000Z","size":2766,"stargazers_count":7,"open_issues_count":4,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-05T23:49:10.814Z","etag":null,"topics":["android","chatapp","couchbase","couchbase-lite","couchbase-mobile","couchbase-server","couchbase-sync-gateway","ios","mobile","websockets","xamarin","xamarin-forms"],"latest_commit_sha":null,"homepage":null,"language":"C#","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/couchbaselabs.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}},"created_at":"2019-07-03T22:29:30.000Z","updated_at":"2025-04-16T13:13:10.000Z","dependencies_parsed_at":"2023-01-24T14:31:15.066Z","dependency_job_id":null,"html_url":"https://github.com/couchbaselabs/Chatbase","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/couchbaselabs/Chatbase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbaselabs%2FChatbase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbaselabs%2FChatbase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbaselabs%2FChatbase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbaselabs%2FChatbase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/couchbaselabs","download_url":"https://codeload.github.com/couchbaselabs/Chatbase/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbaselabs%2FChatbase/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270679283,"owners_count":24626932,"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","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["android","chatapp","couchbase","couchbase-lite","couchbase-mobile","couchbase-server","couchbase-sync-gateway","ios","mobile","websockets","xamarin","xamarin-forms"],"created_at":"2024-12-26T22:32:34.929Z","updated_at":"2025-08-16T07:07:06.245Z","avatar_url":"https://github.com/couchbaselabs.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chatbase\nChatbase is a simple (mobile) chat app powered by an embedded [Couchbase Lite](https://www.couchbase.com/products/lite) database, the synchronization enginee of [Sync Gateway](https://www.couchbase.com/products/sync-gateway), and a distributed [Couchbase Server](https://www.couchbase.com/products/server) database.\n\n\u003cimg src=\"media/chatbase_overview.gif\" /\u003e\n\n# Table of Contents\n1. [Couchbase Mobile Overview](#overview)\n2. [Setting up server-side components](#installation)\n    1. [Sync Gateway](#installation-sg)\n    2. [Couchbase Server](#installation-cbs)\n3. [Running the solutions](#running) \n4. [Support](#support)\n\n## Couchbase Mobile Overview \u003ca name=\"overview\"\u003e\u003c/a\u003e\n\nCouchbase Mobile brings the power of NoSQL to the edge and is comprised of three components:\n\n[Couchbase Lite](https://docs.couchbase.com/couchbase-lite/2.5/introduction.html), an embedded, NoSQL JSON Document Style database for your mobile apps\n\n[Sync Gateway](https://docs.couchbase.com/sync-gateway/current/introduction.html), an internet-facing synchronization mechanism that securely syncs data between mobile clients and server, and\n\n[Couchbase Server](https://docs.couchbase.com/server/6.0/introduction/intro.html), a highly scalable, distributed NoSQL database platform\n\n## Setting up server-side components \u003ca name=\"installation\"\u003e\u003c/a\u003e\n\nChatbase uses Couchbase's Sync Gateway and Server solutions. Both components can be installed locally, on on-premisis servers, and/or within the cloud. For this demo we'll be installing everything locally for testing.\n\n### Sync Gateway \u003ca name=\"installation-sg\"\u003e\u003c/a\u003e\n\nSync Gateway is the synchronization server in a Couchbase Mobile deployment.\n\nSync Gateway is designed to provide data synchronization for large-scale interactive web, mobile, and IoT applications. Commonly used features include:\n\n* User authentication, ensuring that only authorized users can connect to Sync Gateway (see user [authentication guide](https://docs.couchbase.com/sync-gateway/current/authentication.html)).\n\n* Access Control, guaranteeing that only relevant documents are synced. Sync Gateway accomplishes this by examining document and applying business logic to decide whether to assign the documents to channels. Access control and ensuring that only relevant documents are synced are achieved through the use of channels and the [Sync Function](https://docs.couchbase.com/sync-gateway/current/sync-function-api.html).\n\n#### Installation\n\nTo install Sync Gateway please follow the instructions [here](https://docs.couchbase.com/sync-gateway/current/getting-started.html).\n\n#### Running\n\nTo start using Sync Gateway execute the following command. \n\n```bash\n~/Downloads/couchbase-sync-gateway/bin/sync_gateway ~/path/to/basic-sync-function.json\n```\n\n**Note:** \"basic-sync-function.json\" is included within the repo [here](https://github.com/couchbaselabs/Chatbase/blob/master/src/Server/basic-sync-function.json).\n\n#### Settings\n\nTo learn more about how to modify the Sync Gateway configuration file please see the documentation [here](https://docs.couchbase.com/sync-gateway/current/config-properties.html).\n\n### Couchbase Server \u003ca name=\"installation-cbs\"\u003e\u003c/a\u003e\n\nCouchbase Server is an open source, distributed, NoSQL document-oriented engagement database. It exposes a fast key-value store with managed cache for sub-millisecond data operations, purpose-built indexers for fast queries and a powerful query engine for executing SQL-like queries. For mobile and Internet of Things environments Couchbase also runs natively on-device and manages synchronization to the server.\n\nCouchbase Server is specialized to provide low-latency data management for large-scale interactive web, mobile, and IoT applications. Common requirements that Couchbase Server was designed to satisfy include:\n\nUnified Programming Interface\n\n* Query\n* Search\n* Mobile and IoT\n* Analytics\n* Core database engine\n* Scale-out architecture\n* Memory-first architecture\n* Big data and SQL integrations\n* Full-stack security\n* Container and Cloud deployments\n* High Availability\n\n#### Installation\n\nTo install Couchbase Server please follow the instructions [here](https://docs.couchbase.com/server/6.0/getting-started/start-here.html).\n\n**Note:** I advise installing Couchbase Server _manually_ to start. If you install using Docker you will need to ensure that both Sync Gateway and Couchbase Server are running on the same Docker Host, and then you'll need to configure accordingly. You can find more instructions using Docker [here](https://blog.couchbase.com/using-docker-with-couchbase-mobile/).\n\n#### Running\n\nOnce Couchbase Server has been installed simply navigate to where it has been installed and start \"Couchbase Server\".\n\nTo start Couchbase Server using Docker please see the documentation [here](https://docs.couchbase.com/server/6.0/getting-started/do-a-quick-install.html).\n\n#### Admin Portal\n\nCouchbase Server can be accessed using\n * [CLI](https://docs.couchbase.com/server/6.0/cli/cli-intro.html)\n * [API](https://docs.couchbase.com/server/6.0/rest-api/rest-intro.html)\n * An [administration (web) portal](https://docs.couchbase.com/server/6.0/getting-started/look-at-the-results.html)\n\nWhen Couchbase Server has been started you'll be able to navigate directly to the admin portal at http://localhost:8091.\n\n## Running the solutions \u003ca name=\"running\"\u003e\u003c/a\u003e\n\nChatbase has two .NET solutions:\n\n* [Chatbase.API](https://github.com/couchbaselabs/Chatbase/tree/master/src/Server/Chatbase.API): A .NET Core Web API solution used for communicating with Sync Gateway via the [Admin API](https://docs.couchbase.com/sync-gateway/2.5/admin-rest-api.html).\n\n* [Chatbase](https://github.com/couchbaselabs/Chatbase/tree/master/src/Client/Chatbase): A Xamarin(.Forms) based solution containing several porjects\n\nYou will need to build and run the Chatbase.API solution before attempting to use the Chatbase mobile solution. You will also need to keep the Chatbase.API solution running. \n\nUsers are able to log into the app simply by entering a name and a Sync Gateway [channel](https://docs.couchbase.com/sync-gateway/current/data-routing.html#introduction-to-channels).\n\n\u003cp\u003e\n\u003cimg src=\"media/iOS_Login.png\" width=\"300px\" /\u003e\n\u003cimg src=\"media/Android_Login.png\" width=\"300px\" /\u003e\n\u003c/p\u003e\n\nAfter you've logged in you'll be taken to the channel's chat screen, and will be able to send messages.\n\n\u003cp\u003e\n\u003cimg src=\"media/iOS_Chat.png\" width=\"300px\" /\u003e\n\u003cimg src=\"media/Android_Chat.png\" width=\"300px\" /\u003e\n\u003c/p\u003e\n\nYou'll also be able to switch channels by tapping the navigation bar title, and entering in a new channel name.\n\n\u003cimg src=\"media/switch_channel.png\" width=\"300px\" /\u003e\n\n## Support \u003ca name=\"support\"\u003e\u003c/a\u003e\n\nIf you have any questions, comments, or would like to contribute to this projects please reach out to me directly at robert.hedgpeth@couchbase.com or on [Twitter](https://twitter.com/probablyrealrob).\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcouchbaselabs%2Fchatbase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcouchbaselabs%2Fchatbase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcouchbaselabs%2Fchatbase/lists"}