A demo app to illustrate core concepts in Ember
Important
What's new in v6
:
<template>
tag everywhere- Extracted reusable code to v2 addon
- Simplified writing tests
Install dependencies
-
Clone this repo.
git clone [email protected]:ijlee2/ember-workshop.git
-
Change directory.
cd ember-workshop
-
Use
pnpm
to install dependencies.pnpm install
Run the app
-
Once dependencies have been installed, you can run the app.
# From the workspace root pnpm start
-
Open the app at http://localhost:4200.
Check and fix errors
-
As you write code, please check that it meets formatting and linting rules.
# From the workspace root pnpm lint
-
You can run
lint:fix
to fix errors.# From the workspace root pnpm lint:fix
Run tests
-
When you write code, please check that all tests continue to pass.
# From the workspace root pnpm test
Each day (session) may 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.
Learning outcomes:
- Navigate the folder structure
- Familiarize with Ember CLI
- Understand syntax for components
- Write components that are accessible, extensible, and maintainable
- A brief look at helpers, modifiers, and utilities
Learning outcomes:
- Understand syntax for routes
- Make API requests
- Compare nested and sibling routes
- Run A/B testing
- A brief look at
ember-concurrency
Learning outcomes:
- Apply best practices for writing tests
- Create test helpers and custom assertions
- Extract business logic to a utility class
- Test
error
andloading
routes - A brief look at
miragejs
andsinon
I designed the app with 2 goals in mind:
- Help onboard developers to Ember.js
- Help existing users adopt newer patterns
Due 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.
For now, if you have a mentor role, please go over the commit history to decide what to cover in your onboarding.
To provide feedback, you can reach out to me on Discord at ijlee2
. Please star this project so that I can gauge its importance to you and the Ember community. ⭐