• Skip to primary navigation
  • Skip to main content
  • Skip to footer
Code The Dream School
Code the Dream Labs Logo

Code The Dream School

Main hub for class materials for Code the Dream’s classes

  • Code the Dream Home

Search Code The Dream School

Dragonfish: Ruby on Rails Back End Class

Welcome to the Ruby on Rails Back End Class!

Below is a quick outline of this course. Remember to keep pace with the
mentor groups, and don’t hesitate to ask lots of questions! Slack is the best place for your questions, and you have a Slack channel for that purpose. Get oriented on the Student Resources page. Students are expected to attend at least two Mentor Sessions a week. Sign up for mentor sessions using the Calendly links below.

If you need assistance with non-curriculum items please contact your Cohort Instructional Leader on Slack or by this email: dragonfish@codethedream.org

Course Calendar

The calendar below shows the start date of each week of the course and includes breaks and special events.

Course Sections

WeekStart Date Due DateLessons
0Feb 28, 2023Mar 7, 2023Machine set-up
Git-hub Cookbook
AND
Pre-class
Information
1Mar 8, 2023Mar 14, 2023Lesson 1.1
SQL Basics
2Mar 15, 2023Mar 21, 2023Lesson 1.2
More SQL,
Introduction to
Ruby
3Mar 22, 2023Mar 28, 2023Lesson 2.1
Ruby
Collections, Loops,
and Conditional
Statements
4Mar 29, 2023Apr 4, 2023Lesson 2.2
Ruby Methods,
Classes, and
Blocks
5Apr 5, 2023Apr 11, 2023Lesson 2.3
Ruby Test First
Development
6Apr 12, 2023Apr 18, 2023Lesson 3.1
Rails Basics
7Apr 19, 2023Apr 25, 2023Lesson 3.2
Rails Active
Record
Associations
8Apr 26, 2023May 2, 2023Lesson 4.1
Additional Rails
Topics
9May 3, 2023May 9, 2023Lesson 4.2
Rails Testing with
RSpec
10May 10, 2023May 16, 2023Lesson 4.3
Bringing it All
Together
11May 17, 2023May 23, 2023Lesson 4.4
Bootstrap 4 Basics;
Bootstrap in Rails
12May 24, 2023May 30, 2023Lesson 5.1
Building an API,
Swagger
✔ Complete only
sections 5.1.1 and
5.1.2 this week
13May 31, 2023Jun 6, 2023Lesson 5.1
continued
Building an API,
Swagger
✔ Complete only
section 5.1.3 this
week
14Jun 7, 2023Jun 13, 2023Lesson 5.2
Calling the API
Using Fetch
15Jun 14, 2023Jun 20, 2023Final Project work
begins
Mindset
Curriculum
Assignment
16Jun 21, 2023Jun 27, 2023Final Project work
continues
Mindset
Curriculum
Assignment
17Jun 28, 2023Jul 4, 2023Final Project work
completed
Mindset Curriculum
Assignment
Jul 5, 2023Jul 7, 2023Final Project
Presentations
Two nights, Time TBD
—Jul 17, 2023Sept 12, 2023PRACTICUM

What You Will Be Learning

Rails is a widely used production grade web application framework. You will be learning to develop applications within that framework, which is based on the Ruby language. You will also learn some SQL, which is used by most back end frameworks to store and retrieve data. You will learn about

  • Basic SQL operations: Select, Insert Into, Update, Delete
  • Combining SQL table data using joins
  • Ruby syntax, variables, conditional statements, arrays, hashes, and loops
  • Ruby methods, classes, and blocks
  • Ruby test driven development
  • Rails simple applications using scaffolds
  • The Model/View/Controller organization of functions within Rails
  • Routes, and how you associate route URLs with controller methods
  • REST principles and operations: GET, POST, PUT, DELETE
  • Communicating with the database using the ActiveRecord Object/Relational Mapping
  • How data models affect the structure of your controllers and views
  • Assocations between data models: one to many, many to many.
  • Views that show dynamic web pages with embedded Ruby
  • Diagnosing problems and debugging
  • Communicating messages to the user
  • Logging
  • Testing
  • Styling your application using the Bootstrap framework
  • How to build a back end API
  • How to enable the back end API for Swagger testing/documentation
  • How to call the API from Ajax

Before You Begin

Please set up your machines for Ruby and Rails development, as described Here.

Submitting Your Assignments

For each lesson, you will have one or several assignments. Each assignment is provided to you as a git repository, and a link will be provided to you for that git repository. You should have basic familiarity with git before starting this course, but if you aren’t confident in your git skills, see this Github Cookbook. For each assignment, you will do the following steps:

  1. Fork the repository into your own git account. The fork should be public.
  2. Clone your fork onto your workstation. Important: Clone your fork, not the original repository.
  3. Create a branch for your lesson. Commit changes to that branch periodically, and push them to github.
  4. When the lesson is complete and all your work has been pushed to github, open a pull request for your branch.
  5. Then fill out your homework assignment submission form. Include a link to your pull request. (Be sure the link is for your pull request, not your github repository.) A mentor will then review your assignment, putting comments into the pull request.

Some of the git repositories will be used for several lessons. You should create a separate branch for each lesson. Each time you will create the new branch from the branch for the previous lesson, so that your work builds on previous steps.

After your assignment has been reviewed, you can, if you like, merge it into the main branch. It is best not to do this merge until your assignment has been reviewed, as your reviewer may recommend changes. You do the merge on Github, by merging your pull request. Then, on your workstation, check out the main branch and do a git pull.

When Submitting Your Code

When you submit your code, it should be working. If you are not able to get your code working, ask for help on Slack, or bring up questions in a mentor session, or ask for a special mentor session.

Ruby code should be readable. There are many aspects to good Ruby code style, but the most important for right now is indentation! The content of blocks, methods, and classes should be indented two spaces. The end statement should line up, being indented the same number of spaces, with the statement that begins the block, method, or class. Here’s an example:

def my_method(my_array,my_boolean)
  if my_boolean
    my_array.each do |entry|
      puts(entry)
    end
  else
    puts("The boolean was false.")
  end
end

We need proper indentation in order to be able to review your assignments. You need proper indentation to make sure your code is structured correctly.

Mentor Information

Traditional / Group Mentors

Traditional Mentors are volunteer mentors who will host one or more one-hour long group sessions weekly. Typically these sessions are question-answer format so be sure to bring your questions from covering your learning materials or working on your coding assignment to the session. To sign up for a group mentor session:

  1. Click this link to be taken to the Mentor Session Sheet – a Google Spreadsheet
  2. Find the session(s) you wish to attend for the week and list your name in that column. The document auto-saves so other than typing your name, there’s nothing else you need to do!
  3. By appointment mentor Calendly links are also listed in the first column of that spreadsheet. You can use those links or the links below to sign up for one on one sessions.

If you need help finding your way around the spreadsheet, watch the video below.
NOTE: This recording was for a previous class, so dates and names in the video will not match dates and names for this class!

1:1 / By Appointment Mentors

By Appointment Mentors are volunteer mentors who will help you one-on-one. If you’re unable to make a group session, or would just like to have one-on-one assistance, use the links below. To sign up for a one on one session:

  1. Click on the orange “Sign Up with this Mentor” button under the mentor with whom you want to meet
  2. This will open their Calendly page in a new window. Click on the blue circled date for the day you want to meet with them. A list of times they’re available that day will appear on the right side of the calendar. If a day does not have a blue circle, they are not available that day.
  3. Click on the time to the right of the calendar to select what time you want to meet with them
  4. Click Confirm
  5. Use the instructions or link in the email confirmation you receive after clicking Confirm to join your session on the day and at the time you selected

Footer

Copyright © 2025 Code the Dream School | All Rights Reserved | Privacy Policy