{"id":16193083,"url":"https://github.com/slashdotdash/conduit","last_synced_at":"2025-04-06T21:15:59.506Z","repository":{"id":49442085,"uuid":"93396431","full_name":"slashdotdash/conduit","owner":"slashdotdash","description":"RealWorld example backend implementing the CQRS/ES pattern in Elixir and Phoenix","archived":false,"fork":false,"pushed_at":"2021-03-07T11:43:19.000Z","size":268,"stargazers_count":340,"open_issues_count":16,"forks_count":66,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-04-15T03:09:28.148Z","etag":null,"topics":["conduit","cqrs","cqrs-es","elixir","event-sourcing","phoenix"],"latest_commit_sha":null,"homepage":"","language":"Elixir","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/slashdotdash.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":"2017-06-05T11:20:58.000Z","updated_at":"2024-04-12T14:53:29.000Z","dependencies_parsed_at":"2022-08-12T20:11:31.992Z","dependency_job_id":null,"html_url":"https://github.com/slashdotdash/conduit","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slashdotdash%2Fconduit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slashdotdash%2Fconduit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slashdotdash%2Fconduit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slashdotdash%2Fconduit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slashdotdash","download_url":"https://codeload.github.com/slashdotdash/conduit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247550691,"owners_count":20956987,"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":["conduit","cqrs","cqrs-es","elixir","event-sourcing","phoenix"],"created_at":"2024-10-10T08:13:57.752Z","updated_at":"2025-04-06T21:15:59.466Z","avatar_url":"https://github.com/slashdotdash.png","language":"Elixir","funding_links":[],"categories":["Example applications"],"sub_categories":["2021"],"readme":"# Conduit\n\nDiscover why functional languages, such as Elixir, are ideally suited to building applications following the command query responsibility segregation and event sourcing (CQRS/ES) pattern.\n\nConduit is a blogging platform, an exemplary Medium.com clone, built as a Phoenix web application.\n\nThis is the full source code to accompany the \"[Building Conduit](https://leanpub.com/buildingconduit)\" eBook.\n\nThis book is for anyone who has an interest in CQRS/ES and Elixir. It demonstrates step-by-step how to build an Elixir application implementing the CQRS/ES pattern using the [Commanded](https://github.com/slashdotdash/commanded) open source library.\n\n---\n\nMIT License\n\n[![Build Status](https://travis-ci.com/slashdotdash/conduit.svg?branch=master)](https://travis-ci.com/slashdotdash/conduit)\n\n---\n\n## Getting started\n\nConduit is an Elixir application using Phoenix 1.4 and PostgreSQL for persistence.\n\n### Prerequisites\n\nYou must install the following dependencies before starting:\n\n- [Git](https://git-scm.com/).\n- [Elixir](https://elixir-lang.org/install.html) (v1.6 or later).\n- [PostgreSQL](https://www.postgresql.org/) database (v9.5 or later).\n\n### Configuring Conduit\n\n1. Clone the Git repo from GitHub:\n\n    ```console\n    $ git clone https://github.com/slashdotdash/conduit.git\n    ```\n\n2. Install mix dependencies:\n\n    ```console\n    $ cd conduit\n    $ mix deps.get\n    ```\n\n3. Create the event store database:\n\n    ```console\n    $ mix do event_store.create, event_store.init\n    ```\n\n4. Create the read model store database:\n\n    ```console\n    $ mix do ecto.create, ecto.migrate\n    ```\n\n5. Run the Phoenix server:\n\n    ```console\n    $ mix phx.server\n    ```\n\n  This will start the web server on localhost, port 4000: [http://0.0.0.0:4000](http://0.0.0.0:4000)\n\nThis application *only* includes the API back-end, serving JSON requests.\n\nYou need to choose a front-end from those listed in the [RealWorld repo](https://github.com/gothinkster/realworld). Follow the installation instructions for the front-end you select. The most popular implementations are listed below.\n\n- [React / Redux](https://github.com/gothinkster/react-redux-realworld-example-app)\n- [Elm](https://github.com/rtfeldman/elm-spa-example)\n- [Angular 4+](https://github.com/gothinkster/angular-realworld-example-app)\n- [Angular 1.5+](https://github.com/gothinkster/angularjs-realworld-example-app)\n- [React / MobX](https://github.com/gothinkster/react-mobx-realworld-example-app)\n\nAny of these front-ends should integrate with the Conduit back-end due to their common API.\n\n## Running the tests\n\n```console\nMIX_ENV=test mix event_store.create\nMIX_ENV=test mix event_store.init\nMIX_ENV=test mix ecto.create\nMIX_ENV=test mix ecto.migrate\nmix test\n```\n## Need help?\n\nPlease [submit an issue](https://github.com/slashdotdash/conduit/issues) if you encounter a problem, or need support.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslashdotdash%2Fconduit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslashdotdash%2Fconduit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslashdotdash%2Fconduit/lists"}