ember-learn/super-rentals

Ember Tutorial

toddjordan opened this issue · 0 comments

This is a continuation of what started in issue emberjs/guides#445

Goal: to create guided tutorial, geared towards people new to Ember. This will be some people's first experience with the techology, so we want to make it show off the basics of creating an application from scratch. At the end of the tutorial the developer should have an understanding of the basic concepts of ember and ember-cli and be able to create and deploy a basic ember application from scratch.

The tutorial will lead the user through the process of creating a vacation rental app called "Super Rentals". MVP of the app will be to allow perspective renters to browse available properties.

  • Creating a new app
  • Routes and Templates
  • The Model Hook
  • A Simple Component
  • Handlebars Helper
  • A Complex Component
  • Service
  • Nested Routes
  • Using Addons
  • Integrate testing into existing tutorials
  • Links to the super-rentals repo
  • Update tutorial to new page design

Standards for Each Tutorial Page

  • Clear language adhering to guides contributing standards: https://github.com/emberjs/guides/blob/master/CONTRIBUTING.md
  • Each Tutorial Page should be written in a step-by-step format, guiding the user through how they would build it themselves
  • Examples tailored to someone new to ember, showing off basic concepts while not diving into complex approaches
  • Testing should be incorporated into each functionality described.
  • The super-rentals repo should be updated with working code (and tests): https://github.com/emberjs/super-rentals

Complex Component

the autocomplete section already exists, but it needs to be improved. Right now it does an autocomplete dropdown of the properties that are already right below it. Also the dropdown is unstyled and looks pretty bad. I'd like to tweak the component to just be a filter of the list below, so no "search" button and no dropdown.

Service

There's a current PR out there emberjs/guides#1289 , but in hindsight I think its a bit complicated for a first time ember app. I'm going to simplify this into a basic map display of the location

Nested Routes

Right now we just do index route and and the about route. I'd like to add a route for rental details and then a nested route under that, maybe for editing a rental, or for displaying picture vs a map.

Using addons

For an addon example the original issue has using pagefront and dotenv. I'm fine with this as it will get a first time ember using deploying their app somewhere. Would like some feedback on whether the pagefront plugin is still the thing to suggest.

An alternative is creating an addon for adding styles into the addon (suggested by tom dale) This would show how to install the addon, plus give the app a nice look and feel without having to include css in the tutorials.

Integrate testing into existing tutorials

As test is a first class citizen in Ember, we need to incorporate testing into each tutorial page. That means test is a must for any new section we add, and we also need to go back to sections we've already done and add it as well. We should make use of Unit, Integration, and Acceptance tests to give developers a good idea of what each does and when to use them.

Links to super-rentals

The completed tutorial lives in its own repo, and we should link back to that repo so developers can download and try for themselves, or use as a reference.

Update to new Page Design

Here's a rough drawing of the screen flow. Trying to keep it really simple so that the CSS work is light Not sure how I'll handle nested routes. Ideas appreciated. I was thinking Edit would be a good place, or a reserve page. I could also open a bigger view of the map when you click on it.

image