digraph G { /* Ruby I */ subgraph cluster_0 { label = "Ruby I"; "Data Types" [style=filled]; "Return Values & Side Effects" [style=filled]; "Methods & Arguments" [style=filled]; "Loops & Conditions" [style=filled]; "Strings" [style=filled]; "Arrays" [style=filled]; "Enumeration" [style=filled]; "Symbols" [style=filled]; "Hashes" [style=filled]; "Testing (RSpec)" [style=filled]; "Variable Scope"; "Gems" [style=filled]; "Gemfile + Bundler" [style=filled]; "Ruby I Project" [shape=box; style=filled]; "Loops & Conditions" -> "Enumeration"; "Data Types" -> "Arrays"; "Data Types" -> "Symbols"; "Arrays" -> "Hashes"; "Arrays" -> "Enumeration"; "Symbols" -> "Hashes"; "Ruby I Project"; "Return Values & Side Effects" -> "Methods & Arguments"; "Data Types" -> "Methods & Arguments"; "Methods & Arguments" -> "Variable Scope"; "Testing (RSpec)"; /* "Enumeration" -> "Encryptor"; */ /* "Hashes" -> "Encryptor"; */ "Enumeration" -> "Ruby I Project"; "Methods & Arguments" -> "Ruby I Project"; "Data Types" -> "Strings"; } /* Ruby II */ subgraph cluster_4 { label = "Ruby II" "Object Attributes"; "Object Methods"; "Time In Ruby"; "Object Inheritance"; "Blocks, Procs and Lambdas"; "Ruby II Project" [shape=box]; "Ruby I Project" -> "Classes & Objects"; "Classes & Objects" -> "Object Attributes"; "Classes & Objects" -> "Object Methods"; "Object Methods" -> "Object Inheritance"; "Object Attributes" -> "Object Inheritance"; "Object Inheritance" -> "Ruby II Project"; } /* Databases */ subgraph cluster_1 { label = "Databases" "SQL"; "Architecting a DB Schema"; "SQL Joins & Primary Keys"; "ActiveRecord CRUD"; "ActiveRecord 1:many"; "ActiveRecord many:many"; "ActiveRecord many:many through"; "SQL Indexes and Foreign Keys"; "ActiveRecord Project" [shape=box]; "CSV Import/Export" [style=dotted]; "Ruby II Project" -> "ActiveRecord CRUD"; "SQL" -> "ActiveRecord CRUD"; "SQL" -> "Architecting a DB Schema"; "Architecting a DB Schema" -> "SQL Joins & Primary Keys"; "SQL Joins & Primary Keys" -> "SQL Indexes and Foreign Keys"; "ActiveRecord CRUD" -> "ActiveRecord 1:many"; "ActiveRecord 1:many" -> "ActiveRecord many:many"; "ActiveRecord many:many" -> "ActiveRecord many:many through"; "ActiveRecord many:many through" -> "ActiveRecord Project"; } /* HTML & CSS */ subgraph cluster_2 { label = "HTML & CSS"; "DOM" [style=filled]; "Classes & IDs" [style=filled]; "Importing CSS and JS files" [style=filled]; "HTML Tags" [style=filled]; "CSS Selectors" [style=filled]; "CSS Styles" [style=filled]; "The Box Model" [style=filled]; "Positioning & Layout"; "Pseudoselectors"; "CSS Animations"; "Good Design" [style=filled]; "Responsive Design Patterns"; "Twitter Bootstrap (Frameworks)"; "HTML & CSS Project" [shape=box]; "Importing CSS and JS files"; "Classes & IDs" -> "CSS Selectors"; "HTML Tags" -> "CSS Styles"; "HTML Tags" -> "DOM"; "HTML Tags" -> "Classes & IDs"; "CSS Selectors" -> "The Box Model"; "CSS Styles" -> "The Box Model"; "The Box Model" -> "Positioning & Layout"; "CSS Selectors" -> "Pseudoselectors"; "Pseudoselectors" -> "CSS Animations"; "CSS Animations" -> "HTML & CSS Project"; "Positioning & Layout" -> "Responsive Design Patterns"; "Good Design" -> "Twitter Bootstrap (Frameworks)"; "Responsive Design Patterns" -> "Twitter Bootstrap (Frameworks)"; "DOM" -> "The Box Model"; } /* The Web */ subgraph cluster_3 { label = "The Web" "Languages" [style=filled]; "Frameworks" [style=filled]; "Parameters vs Session/Cookies"; "Ruby I Project"; "ERB"; "How Does The Internet Work?"; "HTTP"; /* "Ruby I Project" -> "ERB"; */ "Sinatra Project" [shape=box]; "HTML Forms"; "How Does The Internet Work?" -> "HTTP"; /* "HTML Tags" -> "HTML Forms"; */ "HTTP" -> "Sinatra Basics"; "HTTP" -> "HTML Forms"; "Sinatra Basics" -> "Sinatra Project"; "HTML Tags" -> "ERB"; "ERB" -> "Sinatra Project"; "HTML Forms" -> "Sinatra Project"; /* "HTML & CSS Project" -> "Sinatra Project"; */ "REST" -> "Sinatra Project"; "Parameters vs Session/Cookies" -> "REST"; /* "Sinatra Project" -> "Deploy Sinatra App to Heroku"; */ } "Markdown" -> "Sinatra Project"; /* Rails I */ subgraph cluster_7 { label = "Rails I" "MVC Architecture"; "Routing Parameters in Rails"; "Rails Controllers & Routing"; "Rails Views and Layouts"; "Rails Models"; "Rails View and Form Helpers"; /* "ActiveRecord Relationships in Rails"; */ "Rake Tasks"; "Rails Model Validation"; "Simple Rails Project" [shape=box]; /*"Sinatra Project" -> "Rails Project I"; "ActiveRecord Project" -> "Rails Project I"; "HTML & CSS Project" -> "Rails Project I"; */ "Rake Tasks" -> "Rails Models"; "Rails Models" -> "Rails Model Validation"; "Sinatra Project" -> "MVC Architecture"; "MVC Architecture" -> "Rails Models"; "MVC Architecture" -> "Rails Controllers & Routing"; "MVC Architecture" -> "Rails Views and Layouts"; "ActiveRecord Project" -> "Rails Models"; "Rails Controllers & Routing" -> "Routing Parameters in Rails"; "Rails Controllers & Routing" -> "Custom Controller Actions"; "ERB" -> "Rails Views and Layouts"; "Rails Views and Layouts" -> "Rails View and Form Helpers"; "Rails Model Validation" -> "Simple Rails Project"; "Routing Parameters in Rails" -> "Simple Rails Project"; "Rails View and Form Helpers" -> "Simple Rails Project"; "Custom Controller Actions" -> "Simple Rails Project"; "User Authentication"; "Asset Pipeline"; /*"Simple Rails Project" -> "Deploy Rails App to Heroku";*/ } /* Rails II */ subgraph cluster_8 { label = "Rails II" "Rails Project II" [shape=box]; "Simple Rails Project" -> "Rails Project II"; } /* Javascript I */ subgraph cluster_9 { label = "Javascript I" "History of Javascript (JS)"; "JS Syntax & Data Types"; "JS Conditions & Loops"; "JS Functions"; "JS Variable Scope + 'this'"; "JS Objects and 'this'"; "JS Timers" [style=dotted]; "JS Anonymous Functions"; "JS Partially Applied Functions"; "JS Prototypal Inheritance"; "JS Closures"; "JS Project I" [shape=box]; "History of Javascript (JS)" -> "JS Syntax & Data Types"; "History of Javascript (JS)" -> "JS Functions"; "History of Javascript (JS)" -> "JS Conditions & Loops"; "JS Functions" -> "JS Variable Scope + 'this'"; "JS Variable Scope + 'this'" -> "JS Objects and 'this'"; "JS Functions" -> "JS Anonymous Functions"; "JS Anonymous Functions" -> "JS Partially Applied Functions"; "JS Functions" -> "JS Closures"; "JS Functions" -> "JS Prototypal Inheritance"; "JS Prototypal Inheritance" -> "JS Project I"; "JS Closures" -> "JS Project I"; "JS Partially Applied Functions" -> "JS Project I"; "JS Objects and 'this'" -> "JS Project I"; "JS Project I" -> "Rails Project II"; /*"Ruby II Project" -> "History of Javascript (JS)";*/ "Simple Rails Project" -> "History of Javascript (JS)"; } /* Command Line Interface */ subgraph cluster_5 { label = "Command Line Interface"; "CLI Scavenger Hunt" [shape=box; style=filled]; "Learn CLI The Hard Way" [shape=box; style=filled]; } /* Git & Github */ subgraph cluster_6 { label = "Git & Github"; "Git Immersion" [shape=box; style=filled]; "Git Branching Tutorial" [shape=box; style=filled]; "Deploy Github Personal Page" [shape=box; style=filled]; "Deploy Sinatra App to Heroku" [shape=box]; "Deploy Rails App to Heroku" [shape=box]; "Merging Group Assignment" [shape=box]; "Git Immersion" -> "Git Branching Tutorial"; "Git Immersion" -> "Deploy Github Personal Page"; "Deploy Github Personal Page" -> "Deploy Sinatra App to Heroku"; "Deploy Sinatra App to Heroku" -> "Deploy Rails App to Heroku"; "Git Branching Tutorial" -> "Merging Group Assignment"; } }