TheOdinProject / top-meta

TOP hub for ongoing support and improvement of the curriculum by the maintainers
32 stars 10 forks source link

Rails path. Milestone discussion #173

Open CouchofTomato opened 2 years ago

CouchofTomato commented 2 years ago
Title Author Date
Milestone Austin 26/04/2022

Milestone discussion

Summary

As part of the improvements to the Rails path we are considering listing out some milestones learners can hit which will drive the lesson content and structure. Using milestones ensures the course has all the relevant content for leaners to meet objectives at each stage.

Motivation

Giving learners objective milestones, such as being able to create a simple CRUD app or implement complex associations, lets them reflect on how far they've come which is sometimes lost because the field of web dev is really wide.

Suggested implementation

To be decided

Drawbacks

To be discussed

Alternatives

Not changing how the course is currently structured would be the alternative

Additional

CouchofTomato commented 2 years ago

Possible Rails milestones:

linkonsat commented 2 years ago

Possible Rail milestones:

  1. Have an understanding of why we choose one gem over another. For example, Devise over another authentication system that isn't maintained or doesn't have good documentation and thus they should use devise.
  2. Understand when to use background worker threads like Sidekiq and when it doesn't make sense.
  3. Learners are able to use mailers and send emails to app users.
  4. Using service objects, how and when to use them,
  5. Learners should be able to understand the design or be aware of the concepts needed to explain the design of their app. Such as how does OOP relate to Rails concepts, Separation of concerns, etc.
  6. Using AWS S3 for storage of images and videos and why we would use a service such as this vs rolling out our own.
  7. Possibly how to implement payment systems?
  8. All of the above listed by CouchofTomato
dm-murphy commented 2 years ago

Just spitballing here. Some of these are really simple and others are expanding on the above:

  1. Learners can deploy their app to Heroku
  2. Learners can talk through their CRUD app and the explain the basics of how/why it was set up
  3. Learners can explain the MVC pattern in Rails
  4. Learners can set up and explain RESTful routes
  5. Learners can talk through the very basics of Hotwire, Turbo and Stimulus
  6. Learners can style a project with vanilla CSS or a CSS framework
  7. Learners can mix HTML and Ruby in their views and understand the difference between executing Ruby code with <% %> syntax and executing while displaying results with <%= %> syntax
  8. Learners can explain the basic difference between using SQL and PostgreSQL
  9. Learners can set up and use RSpec, FactoryBot and Capybara
  10. Learners can set up a new Rails app with an application template
rlmoser99 commented 2 years ago

Great ideas. What about a milestone to do with debugging? I see people struggling with forms and strong parameters and I know that when I struggled with this, I had to learn a few debugging tricks to make sense of things. For example: I didn't realize that the error page had a console area that I could type into. I also didn't realize that I could raise 'any_string', which I found quite helpful.

rlmoser99 commented 2 years ago
KevinMulhern commented 2 years ago

Just a brain dump of everything I've got so far. I've gone with higher-level milestones that serve as what kind of apps users can create to guide things.

  1. Leaners have installed Rails and have created their first app
    • Walkthrough building a simple app
    • Explanation of MVC.
  2. Learners can create basic crud apps
    • Basics of models
    • ORM basics - show how it translates to SQL
    • Controllers and routes
    • Views
  3. Learners can style and make their Rails apps interactive with JS
    • Basics of the asset pipeline
    • Stimulus JS
  4. Learners can use authentication and Authorization within their apps
    • Building their own auth?
    • Using Devise
    • Authorizationn
  5. < I feel like there is something missing milestone I can't think of here >
  6. Learners can consume third party API's
  7. Learners can create their own API's
  8. Learners can architect Rails apps beyond crud
    • Rails design patterns - form, policy, query, presenter and service objects
    • Background jobs
ChargrilledChook commented 2 years ago