ember-workshop icon indicating copy to clipboard operation
ember-workshop copied to clipboard

A demo app to illustrate core concepts in Ember

ember-workshop

A demo app to illustrate core and latest concepts in Ember.js

Setup

Installation
  1. Clone this repo.

    git clone [email protected]:ijlee2/ember-workshop.git
    
  2. Change directory.

    cd ember-workshop
    
  3. Use yarn to install dependencies.

    yarn install
    
Running demo app
  1. After following the installation step, you can run the app.

    ember serve
    
  2. Open the app at http://localhost:4200.

Linting
  1. When you write code, please check if it meets linter standards.

    yarn lint
    
  2. You can run yarn lint:fix to automatically fix CSS, HBS, and JS files.

Running tests
  1. When you write code, please check if all tests continue to pass.

    ember test --server
    
  2. You can add the flag --filter to run a subset of tests.

Syllabus

Each 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.

Day 1

Learning outcomes:

  • Navigate the folder structure
  • Familiarize with the Ember CLI
  • Understand syntax for components
  • Design components that are accessible, extensible, and maintainable
  • A brief look at helper, modifier, and utility

Day 2

Learning outcomes:

  • Load data and respond to the user
  • Understand syntax for routes
  • Analyze tradeoff between a nested and sibling route
  • Inject a service to run A/B testing
  • A brief look at ember-concurrency

Day 3

Learning outcomes:

  • Understand syntax for tests
  • Recognize what to test in a unit, rendering, or application test
  • Develop best practices for writing tests
  • Create test helpers and custom assertions
  • A brief look at ember-a11y-testing, ember-cli-mirage, and sinon.js

Day 4 (in planning)

Learning outcomes:

  • Create an addon
  • Create an engine
  • Server-side render with FastBoot

Target Audience

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.

Contributing

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. ⭐