{"id":15015795,"url":"https://github.com/ijlee2/ember-workshop","last_synced_at":"2025-04-12T09:30:46.277Z","repository":{"id":40623300,"uuid":"473213439","full_name":"ijlee2/ember-workshop","owner":"ijlee2","description":"A demo app to illustrate core concepts in Ember","archived":false,"fork":false,"pushed_at":"2025-02-24T11:29:03.000Z","size":845,"stargazers_count":26,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-06T07:01:56.074Z","etag":null,"topics":["ember","ember-polaris","ember-tutorial","emberjs","embroider","glint","typescript"],"latest_commit_sha":null,"homepage":"https://ember-workshop.netlify.app/","language":"TypeScript","has_issues":false,"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/ijlee2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2022-03-23T14:01:40.000Z","updated_at":"2025-02-24T11:29:14.000Z","dependencies_parsed_at":"2023-11-07T12:25:35.457Z","dependency_job_id":"e2d18ea4-6b6d-4643-9c75-aa224340ca32","html_url":"https://github.com/ijlee2/ember-workshop","commit_stats":{"total_commits":70,"total_committers":1,"mean_commits":70.0,"dds":0.0,"last_synced_commit":"4e2c7e88b2c04cca28a55fd65381f780b5ae2ddd"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ijlee2%2Fember-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ijlee2%2Fember-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ijlee2%2Fember-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ijlee2%2Fember-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ijlee2","download_url":"https://codeload.github.com/ijlee2/ember-workshop/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248545975,"owners_count":21122241,"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":["ember","ember-polaris","ember-tutorial","emberjs","embroider","glint","typescript"],"created_at":"2024-09-24T19:47:56.533Z","updated_at":"2025-04-12T09:30:45.474Z","avatar_url":"https://github.com/ijlee2.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ember-workshop\n\nA demo app to illustrate core concepts in Ember\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e What's new in `v5`:\n\u003e\n\u003e - [Embroider](https://github.com/embroider-build/embroider) on strict mode\n\u003e - TypeScript and [Glint](https://typed-ember.gitbook.io/glint/)\n\u003e - [`\u003ctemplate\u003e` tag](https://github.com/ember-template-imports/ember-template-imports)\n\u003e - Styling app with [`embroider-css-modules`](https://github.com/ijlee2/embroider-css-modules)\n\u003e - Creating a v2 addon\n\n\n## Setup\n\n\u003cdetails\u003e\n\n\u003csummary\u003eInstall dependencies\u003c/summary\u003e\n\n1. Clone this repo.\n\n    ```bash\n    git clone git@github.com:ijlee2/ember-workshop.git\n    ```\n\n1. Change directory.\n\n    ```bash\n    cd ember-workshop\n    ```\n\n1. Use `pnpm` to install dependencies.\n\n    ```bash\n    pnpm install\n    ```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\n\u003csummary\u003eRun the app\u003c/summary\u003e\n\n1. Once dependencies have been installed, you can run the [app](./my-app).\n\n    ```sh\n    # From the workspace root\n    pnpm start\n    ```\n\n1. Open the app at [http://localhost:4200](http://localhost:4200).\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\n\u003csummary\u003eLint files\u003c/summary\u003e\n\n1. When you write code, please check that it meets the linting rules.\n\n    ```sh\n    # From the workspace root\n    pnpm lint\n    ```\n\n1. You can run `lint:fix` to automatically fix linting errors.\n\n    ```sh\n    # From the workspace root\n    pnpm lint:fix\n    ```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\n\u003csummary\u003eRun tests\u003c/summary\u003e\n\n1. When you write code, please check that all tests continue to pass.\n\n    ```sh\n    # From the workspace root\n    pnpm test\n    ```\n\n\u003c/details\u003e\n\n\n## Syllabus\n\nEach day (session) is designed to take around 5 hours, not counting breaks. There is an optional homework at the end of each day. The sessions are spread apart by a week or two.\n\n\n### Day 1\n\nLearning outcomes:\n\n- Navigate the folder structure\n- Familiarize with the Ember CLI\n- Understand syntax for components\n- Design components that are accessible, extensible, and maintainable\n- A brief look at helper, modifier, and utility\n\n\n### Day 2\n\nLearning outcomes:\n\n- Load data and respond to the user\n- Understand syntax for routes\n- Analyze tradeoff between a nested and sibling route\n- Inject a service to run A/B testing\n- A brief look at `ember-concurrency`\n\n\n### Day 3\n\nLearning outcomes:\n\n- Recognize what to test in a unit, rendering, or application test\n- Develop [best practices for writing tests](https://crunchingnumbers.live/2019/10/11/write-tests-like-a-mathematician-part-3/)\n- Create test helpers and custom assertions\n- A brief look at `ember-a11y-testing`, `ember-cli-mirage`, and `sinon`\n- `error` and `loading` routes \n\n\n## Target Audience\n\nI designed the app with 2 goals in mind:\n\n- Help onboard developers to Ember.js\n- Help existing users adopt newer patterns\n\nDue to lack of time, I didn't write a step-by-step guide that would let you pursue self-learning. I hope to do so in the future.\n\nFor now, if you have a mentor role, please go over the [commit history](https://github.com/ijlee2/ember-workshop/commits/main) to decide what to cover in your onboarding.\n\n\n## Contributing\n\nTo provide feedback, you can reach out to me on [Discord](https://discord.gg/emberjs) at `ijlee2`. Please star this project so that I can gauge its importance to you and the Ember community. ⭐\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fijlee2%2Fember-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fijlee2%2Fember-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fijlee2%2Fember-workshop/lists"}