🌍 The Odin Project · subject

The Odin Project Databases, Ruby on Rails & Node.js Syllabus

Every chapter and topic of Databases, Ruby on Rails & Node.js examined in The Odin Project — 8 chapters, 38 topics, plus 50 flashcards written against it.

8Chapters
38Topics
0Sub-topics
~30hEst. first pass
18%Of The Odin Project
50Flashcards

Databases, Ruby on Rails & Node.js syllabus — full chapter and topic list

Expand any chapter to see its topics and sub-topics. This is the whole examinable outline for Databases, Ruby on Rails & Node.js in The Odin Project, not a summary of it.

  1. Databases

    2 topics
    • Databases and SQL
    • Project: SQL Zoo
  2. Ruby on Rails Fundamentals

    6 topics
    • Introduction to Rails
    • Routing
    • Active Record Basics
    • Active Record Queries
    • Form Basics
    • Controllers and Views
  3. Advanced Rails

    6 topics
    • Associations
    • Nested Forms
    • Authentication
    • Sessions, Cookies and Authentication
    • Advanced Forms and APIs
    • Mailers and Advanced Topics
  4. Introduction to NodeJS

    6 topics
    • Introduction to the Back End
    • What is NodeJS?
    • Getting Started
    • Debugging Node
    • Environment Variables
    • Project: Basic Informational Site
  5. Express

    6 topics
    • Introduction to Express
    • MVC in Express
    • Forms and Data Handling
    • Deployment
    • PostgreSQL
    • Projects
  6. Authentication, ORMs & APIs

    7 topics
    • Authentication Basics
    • Project: Members Only
    • Prisma ORM
    • Project: File Uploader
    • API Basics
    • API Security
    • Project: Blog API
  7. Testing Express

    2 topics
    • Testing Routes and Controllers
    • Testing Database Operations
  8. Full Stack Projects

    3 topics
    • Project: Where's Waldo (Photo Tagging App)
    • Project: Messaging App
    • Project: Odin-Book

Databases, Ruby on Rails & Node.js flashcards for The Odin Project

23 of 50 cards from the Databases, Ruby on Rails & Node.js deck — real questions with worked answers.

  1. What is a relational database?

    A database that stores data in tables (relations) made of rows (records) and columns (attributes), where tables can be linked to each other through keys, and which is queried using SQL.

  2. What is a primary key in SQL?

    A column (or set of columns) that uniquely identifies each row in a table. It must be unique and non-NULL; in Rails it is conventionally an auto-incrementing integer column named `id`.

  3. What is a foreign key?

    A column in one table that references the primary key of another table, creating a link between the two tables (e.g., a `user_id` column on a `posts` table pointing to `users.id`).

  4. What are the main categories of SQL statements a web developer must know?

    Data definition: CREATE TABLE, ALTER TABLE, DROP TABLE. Data manipulation: INSERT, SELECT, UPDATE, DELETE. Plus clauses that shape queries: WHERE, ORDER BY, LIMIT, GROUP BY, HAVING, JOIN.

  5. What is the basic order of clauses in a SQL SELECT statement?

    SELECT columns FROM table [JOIN ... ON ...] [WHERE condition] [GROUP BY columns] [HAVING condition] [ORDER BY columns] [LIMIT n].

  6. What is the difference between WHERE and HAVING in SQL?

    WHERE filters individual rows before grouping/aggregation; HAVING filters groups after GROUP BY has been applied, so only HAVING can use aggregate functions like COUNT() or SUM().

  7. Name the five most common SQL aggregate functions.

    COUNT() (number of rows), SUM() (total), AVG() (mean), MIN() (smallest value), and MAX() (largest value); they are typically used with GROUP BY.

  8. What is the difference between an INNER JOIN and a LEFT (OUTER) JOIN?

    INNER JOIN returns only rows that have matching values in both tables; LEFT JOIN returns all rows from the left table plus matching rows from the right table, filling in NULLs where there is no match.

  9. In SQL, what do the LIKE operator and the % wildcard do?

    LIKE performs pattern matching on strings in a WHERE clause; % matches any sequence of zero or more characters (and _ matches exactly one character), e.g. WHERE name LIKE 'Al%' matches names starting with 'Al'.

  10. What is a subquery in SQL, as practiced in SQL Zoo?

    A SELECT statement nested inside another query (commonly in a WHERE clause) whose result is used by the outer query, e.g. SELECT name FROM world WHERE population > (SELECT population FROM world WHERE name = 'Russia').

  11. What does the DISTINCT keyword do in a SELECT statement?

    It removes duplicate rows from the result set, returning each unique value (or unique combination of the selected columns) only once.

  12. What is Ruby on Rails and what architectural pattern does it use?

    Rails is a full-stack server-side web framework written in Ruby. It uses the MVC (Model–View–Controller) pattern: models handle data and business logic, views render output (HTML), and controllers process requests and connect the two.

  13. What are the two core philosophies of Rails?

    Convention over Configuration (sensible defaults and naming conventions replace explicit setup) and DRY — Don't Repeat Yourself (every piece of knowledge should exist in one place).

  14. Trace the path of a request through a Rails app.

    Browser sends an HTTP request → the router matches the verb + URL to a controller#action → the controller action runs, usually querying models → the model reads/writes the database via Active Record → the controller renders a view (or redirects) → the HTML response is sent back to the browser.

  15. What does the Rails router do, and where are routes defined?

    The router matches an incoming HTTP verb and URL path to a specific controller action; routes are defined in config/routes.rb, and `rails routes` lists them.

  16. What seven routes does `resources :photos` create in Rails, and to which controller actions do they map?

    GET /photos → index; GET /photos/new → new; POST /photos → create; GET /photos/:id → show; GET /photos/:id/edit → edit; PATCH/PUT /photos/:id → update; DELETE /photos/:id → destroy.

  17. In Rails routing, what is the difference between a member route and a collection route?

    A member route acts on a single resource and includes an :id in the path (e.g., /photos/1/preview); a collection route acts on the whole set with no :id (e.g., /photos/search).

  18. What is Active Record in Rails?

    Rails' ORM (Object-Relational Mapping) layer: it maps database tables to Ruby classes and rows to objects, letting you query and persist data with Ruby methods instead of raw SQL. It is the M (model) in MVC.

  19. What are the Rails naming conventions linking models to database tables?

    Model class names are singular CamelCase (e.g., BookClub); the corresponding table is plural snake_case (book_clubs); foreign keys are singularized_table_id (e.g., item_id); the primary key column is `id`.

  20. In Active Record, what is the difference between `new` and `create`?

    `Model.new` instantiates an object in memory without saving it (you must call `save`); `Model.create` instantiates and saves it to the database in one step, running validations and returning the object.

  21. What is a Rails migration?

    A Ruby class that describes an incremental, reversible change to the database schema (creating tables, adding columns, indexes, etc.); migrations are run in order with `rails db:migrate` and can be rolled back with `rails db:rollback`.

  22. What are Active Record validations and when do they run?

    Rules declared in the model (e.g., validates :name, presence: true, uniqueness: true) that check data before it is written to the database; they run on save/create/update, and failures add messages to the object's `errors` collection and prevent saving.

  23. What is the difference between `find` and `find_by` in Active Record?

    `find(id)` looks up by primary key and raises ActiveRecord::RecordNotFound if nothing matches; `find_by(attribute: value)` returns the first record matching arbitrary conditions and returns nil if none is found.

See more Databases, Ruby on Rails & Node.js flashcards →

Planning Databases, Ruby on Rails & Node.js for The Odin Project

Databases, Ruby on Rails & Node.js is about 18% of the The Odin Project syllabus by topic count — 38 of 212 topics, spread over 8 chapters. At roughly 45 minutes per topic plus 12 minutes per sub-topic, a first pass runs to about 30 hours.

The heaviest chapters are Authentication, ORMs & APIs (7 topics), Ruby on Rails Fundamentals (6 topics), Advanced Rails (6 topics) . Front-load those while your energy is high; the short chapters are better revision filler later.

Work top-down: read the chapter, then tick topics off individually rather than marking the whole chapter done. Sub-topics are where silent gaps hide.

Databases, Ruby on Rails & Node.js (The Odin Project) FAQ

What is in the The Odin Project Databases, Ruby on Rails & Node.js syllabus?

Databases, Ruby on Rails & Node.js is split into 8 chapters — Databases, Ruby on Rails Fundamentals, Advanced Rails, Introduction to NodeJS, Express and Authentication, ORMs & APIs, and 2 more, containing 38 topics and 0 sub-topics in total.

How many chapters are there in Databases, Ruby on Rails & Node.js for The Odin Project?

8 chapters. Databases, Ruby on Rails & Node.js accounts for about 18% of the topics in the whole The Odin Project syllabus (38 of 212).

How long should I spend on Databases, Ruby on Rails & Node.js for The Odin Project?

Budget around 30 hours for a first pass through Databases, Ruby on Rails & Node.js — about 45 minutes per topic plus 12 minutes per sub-topic across its 38 topics. Add revision cycles on top.

Are there flashcards for The Odin Project Databases, Ruby on Rails & Node.js?

Yes — a 50-card Databases, Ruby on Rails & Node.js deck. Sample cards are printed on this page, and the full deck is free in the Examius app with spaced repetition scheduling.