Certificate
Ruby track certificate: pass criteria, project brief, and a worked example marking sheet.
Ruby — certificate
EXAMPLE
# ===== Award criteria ===== # Pass: >= 70%; Distinction >= 85%. # # 1. Project structure (10) # 2. Ruby idioms (15) # 3. Rails app (or Sinatra) (15) # 4. ActiveRecord + migrations (15) # 5. Tests + factories (15) # 6. Background jobs + mailers (10) # 7. Deploy + CI (10) # 8. Communication (10) # ===== Project brief ===== # Ship a small Rails app with: # - Real domain (todo, blog, mini-shop, jobs board) # - 4+ models with associations + validations # - Authentication (Devise) or session login # - At least 1 background job (Sidekiq + Redis) # - At least 1 mailer (with preview) # - 70%+ test coverage (RSpec + factory_bot + Capybara) # - Deploy to Render / Fly.io / Heroku / Railway # - GitHub Actions CI (rubocop + tests on every PR) # - README with screenshots + architecture # ===== Sample structure ===== # shop/ # app/ # models/ # controllers/ # views/ # jobs/ # mailers/ # services/ # config/ # routes.rb # environments/ # db/ # migrate/ # schema.rb # spec/ # models/ # requests/ # features/ # factories/ # Gemfile + Gemfile.lock # .github/workflows/ci.yml # bin/setup # README.md # ===== Marking sheet (example) ===== # 1. Structure 9/10 service objects, no fat models / controllers # 2. Idioms 13/15 blocks, frozen strings, scopes, concerns # 3. Rails app 14/15 resourceful routes, partials, helpers # 4. ActiveRecord 13/15 associations + validations + scopes; no N+1 # 5. Tests 13/15 request + feature + system specs, factories # 6. Jobs + mailers 9/10 Sidekiq with retry; mailer previews # 7. Deploy + CI 9/10 GitHub Actions, deploy script, smoke test # 8. Communication 9/10 README, screenshots, runbook # Total: 89/100 -> Distinction # ===== Patterns to internalise ===== # - REST + resourceful routes # - includes / preload to avoid N+1 # - Service objects + concerns for fat-model fixes # - Strong params; never permit!(:all) # - Background jobs for anything > 100ms # - frozen_string_literal: true on every file # ===== Pitfalls ===== # - Mass assignment bugs (always strong params) # - SQL injection via string interpolation in where() # - Sending email synchronously in a controller # - Long migration that locks tables on deploy # - Forgetting to scope queries by current_user
Why it matters
Rails certificate: ship a small app with auth, jobs, mailer, tests, deploy, CI, README. Hit the rubric and you have a credible portfolio piece showing the Rails happy path — services, partials, jobs, factories, deploy.
Tip: Tweak the snippet with Try it Yourself », then sit the quiz at the bottom of the page.
Discussion
Loading…