{"id":20290676,"url":"https://github.com/gocardless/coach-demo","last_synced_at":"2025-05-07T19:31:47.659Z","repository":{"id":33826934,"uuid":"103967651","full_name":"gocardless/coach-demo","owner":"gocardless","description":null,"archived":false,"fork":false,"pushed_at":"2023-03-09T22:35:28.000Z","size":77,"stargazers_count":3,"open_issues_count":23,"forks_count":1,"subscribers_count":67,"default_branch":"master","last_synced_at":"2023-03-10T20:18:35.108Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://gocardless.com/blog/getting-started-with-coach/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gocardless.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-18T17:04:21.000Z","updated_at":"2023-03-10T20:18:35.108Z","dependencies_parsed_at":"2023-02-10T20:16:12.554Z","dependency_job_id":null,"html_url":"https://github.com/gocardless/coach-demo","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gocardless%2Fcoach-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gocardless%2Fcoach-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gocardless%2Fcoach-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gocardless%2Fcoach-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gocardless","download_url":"https://codeload.github.com/gocardless/coach-demo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224641681,"owners_count":17345366,"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-14T15:08:41.488Z","updated_at":"2024-11-14T15:08:42.293Z","avatar_url":"https://github.com/gocardless.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Coach Demo [![CircleCI](https://circleci.com/gh/gocardless/coach-demo.svg?style=svg\u0026circle-token=16add89141d16a18ea566104ce62f9585e8f5e09)](https://circleci.com/gh/gocardless/coach-demo)\n\nThis repository is a demo project for [Coach](https://github.com/gocardless/coach).\n\nCoach makes it simple to build maintainable, testable, reliable and well-engineered HTTP\nendpoints (especially APIs) in Ruby, moving away from monolithic `ActionController`\ncontrollers towards chains of Coach middleware, each with a single responsibility.\n\nThis project is designed to make clear the challenges and pains that come from using\nActionController for anything beyond the most simple endpoints, and then show how you\ncan solve these problems using Coach.\n\n## Where do I start?\n\nThis project does not contain an application you'd actually want to run! It contains\na simple, tested API built using Rails's ActionController (see\n`app/controllers/attendees_controller.rb` and\n`spec/controllers/attendees_controller_spec.rb`), and then that same API built\nusing modular Coach middleware (see `app/routes`, `spec/routes` and `spec/requests`).\n\nAll we've built is a simple API for viewing attendees of an event. But including\ncommon functionality like authentication and internationalisation already begin to show\nthe growing pains that come with controllers.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgocardless%2Fcoach-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgocardless%2Fcoach-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgocardless%2Fcoach-demo/lists"}