Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rails path. Milestone discussion #173

Open
CouchofTomato opened this issue Apr 26, 2022 · 7 comments
Open

Rails path. Milestone discussion #173

CouchofTomato opened this issue Apr 26, 2022 · 7 comments
Labels

Comments

@CouchofTomato
Copy link
Member

CouchofTomato commented Apr 26, 2022

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
Copy link
Member Author

CouchofTomato commented Apr 29, 2022

Possible Rails milestones:

  • Learners can set up and create a basic CRUD app with scaffolding commands
  • Learners can create a basic CRUD app without scaffolding commands
  • Learners can add validations to their models
  • Learners can add basic associations between their models
  • Learners can add advanced associations between their models
  • Learners can create custom migration files to add, remove or change columns etc
  • Learners can add authentication to their app and secure protected routes
  • Learners can use advanced ActiveRecord queries
  • Learners can create advanced forms such as nested fields
  • Leaners can use third party API's to add features / data to their apps
  • Leaners can write mailers and use them to send emails to app users
  • Learners can write units tests for their models
  • Learners can write system tests for core app functionality

@linkonsat
Copy link
Contributor

linkonsat commented May 2, 2022

Possible Rail milestones:

  • I do want to note that most of these would go in an advanced section in my mind.
  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
Copy link
Member

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
Copy link
Member

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.

  • Learners can debug incorrect behavior and errors throughout a Rails app.

@rlmoser99
Copy link
Member

  • Learners know how to use the seeds file in production, using methods like find_or_create_by.
  • Learners know how to create a custom rake task and how to schedule Heroku to run them (for example to delete their facebook database in case people leave inappropriate comments).

@KevinMulhern
Copy link
Member

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
Copy link
Member

ChargrilledChook commented Jun 10, 2022

  • Learners understand the basics of how and why to use different environments
    • Development, test, production
  • Learners know the basics of the Ruby / Rails tooling ecosystem
    • Understand the basics of what bundler is, what it does, how it works
    • How and why to put gems in different environments
    • Understand the basic risks of adding dependencies, how to select good gems
    • Understand the basics of rake, be able to make a basic rake task
    • Understand basics of rdoc / yard
    • Understand sensible use of linting / Rubocop, value of consistent style
  • Learners have some strategies for reading / learning / navigating an existing Rails app
    • Learners have some practice adding a small feature or fixing a bug in an app they didn’t build
    • Effective use of the console
    • Where and how to read logs / server console output
    • How to find and parse relevant documentation
    • Work flows / processes for working on a large, unfamiliar app
    • Effective use of editor features (intellisense, go to definition etc)
    • VSCode specific?
    • Solargraph?
    • Language server protocol? Limits of intellisense in a dynamic language

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants