Course Calendar

Course Overview; Ruby I

Week One
  1. Monday, January 14

    1. Welcome & introductions
    2. Course policies & calendar
    3. Course technologies
    4. Blindingly fast tour of Ruby on Rails
  2. Wednesday, January 16

    1. Ruby syntax and structures
    2. Ruby style, source-formatting, and idioms
    3. Setting up devdocs.io
    4. Navigating and referencing Ruby documentation

Ruby II

Week Two
  1. Monday, January 21

    1. No Class; MLK Holiday
  2. Wednesday, January 23

    1. Online-only class meeting: attend class on Basecamp chat
    2. Ruby Q&A and discussion

Ruby: Classes & Objects, Procs & Blocks

Week Three
  1. Monday, January 28

    1. Thinking about common types and structures of data
    2. Ruby standard libraries and core classes
    3. Collections: arrays and hashes
    4. Iterators and blocks
  2. Wednesday, January 30

    1. No class. University closed for extreme cold

Conceptualizing Apps and Data; Rails Fundamentals I

Week Four
  1. Monday, February 4

    1. Introduce Project One: Alpha App
    2. Conceptualizing your alpha app and its data
  2. Wednesday, February 6

    1. Alpha App: Emphasis on user input and data
    2. The Rails project history and community; open-source practices generally
    3. Configuring your editor for Git commit messages (Atom as example)
    4. Using Git to understand what different Rails commands are doing
    5. The rails command suite
    6. MVC architecture as expressed in Rails
    7. Building an MVC app by beginning with the models

Models and the Strucure of Data

Week Five
  1. Monday, February 11

    1. Bespoke data structures and the primacy of models
    2. Object-relational mapping (ORM)
    3. Models and migrations
  2. Wednesday, February 13

    1. Models and associations
    2. Models and validations

Rails Fundamentals II

Week Six
  1. Monday, February 18

    1. No class; Stolley responding to drafts and posting comments
  2. Wednesday, February 20

    1. Rails environments (development, testing, production)
    2. Unit tests; fixtures
    3. Refactoring tests; setup method

Routes and Controllers

Week Seven
  1. Monday, February 25

    1. Agile development techniques: URL patterns
    2. Conceptualizing your Alpha App based on URLs/routes
    3. Routing in Rails
  2. Wednesday, February 27

    1. Scaffolded controllers
    2. Controllers and CRUD actions

From Controllers to Views and Layouts

Week Eight
  1. Monday, March 4

    1. Checking in on Alpha Projects
    2. ID-less fixtures and seeds.rb
    3. Working with params on associated models
  2. Wednesday, March 6

    1. Views and layouts in Rails
    2. Working with Haml

Views; Assets and Responsive Design in Rails

Week Nine
  1. Monday, March 11

    1. Refresher on controller-view relationships and convention over configuration
    2. Simple forms for nested models
    3. Revising params and instance methods
  2. Wednesday, March 13

    1. The asset pipeline in Rails
    2. Haml, Sass, and CoffeeScript
    3. Responsive design
    4. Functional, system, and integration tests

Spring Break; No Class

Week Ten

Review & Refresh

Week Eleven
  1. Monday, March 25

    1. Testing views and interactivity
    2. Open Q&A
  2. Wednesday, March 27

    1. Basecamp meeting. No in-person class.
    2. Final Q&A before project turn-in

Working Collaboratively in Git/GitHub; Sessions and Users, OAuth

Week Twelve
  1. Monday, April 1

    1. Upgrading Rails (5.2.3 is out)
    2. Introduce Project Two/Beta App
    3. Working collaboratively in Git/GitHub
  2. Wednesday, April 3

    1. OAuth-based user authentication

OAuth & Sessions; Active Storage and File Uploads

Week Thirteen
  1. Monday, April 8

    1. Session variables and persistence
    2. Building out routes and controllers
    3. Helper methods and maintaining session state
  2. Wednesday, April 10

    1. Active Storage overview
    2. Models and has_one_attached
    3. Views and controllers, file_field
    4. Installing and migrating Active Storage

Work Week

Week Fourteen
  1. Monday, April 15

    1. Redirecting users to original request after auth
    2. Writing tests for authentication
    3. Q&A and open lab time
  2. Wednesday, April 17

    1. Writing tests for Active Storage file uploads
    2. Q&A and open lab time

Final Project Presentations

Week Sixteen
  1. Monday, April 29

    1. Final Project presentations
  2. Wednesday, May 1

    1. NO CLASS MEETING. Stolley available electronically to provide help on final projects.