Skip to content

A demo app to illustrate core concepts in Ember

License

Notifications You must be signed in to change notification settings

ijlee2/ember-workshop

Repository files navigation

ember-workshop

A demo app to illustrate core concepts in Ember

Important

What's new in v5:

Setup

Install dependencies
  1. Clone this repo.

    git clone git@github.com:ijlee2/ember-workshop.git
  2. Change directory.

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

    pnpm install
Run the app
  1. Once dependencies have been installed, you can run the app.

    # From the workspace root
    pnpm start
  2. Open the app at http://localhost:4200.

Lint files
  1. When you write code, please check that it meets the linting rules.

    # From the workspace root
    pnpm lint
  2. You can run lint:fix to automatically fix linting errors.

    # From the workspace root
    pnpm lint:fix
Run tests
  1. When you write code, please check that all tests continue to pass.

    # From the workspace root
    pnpm test

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:

  • 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
  • error and loading routes

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