Joseph M Mwania's Ruby on Rails Specialisation Certification Timeline.
JHU
- [Introduction to Ruby on Rails](#introduction-to-ruby-on-rails)
- [Rails with Active Record and Action Pack](#rails-with-active-record-and-action-pack)
- [Ruby on Rails Web Services and Integration with MongoDB](#ruby-on-rails-web-services-and-integration-with-mongodb)
- [HTML, CSS, and Javascript for Web Developers](#html-css-and-javascript-for-web-developers)
- [Single Page Web Applications with AngularJS](#single-page-web-applications-with-angularjs)
- [Capstone Project](#capstone-project)
- [Certificates](#url)
- Course Introduction.
- Setting Up the Development Environment.
- Github Repository for Module 1.
- Recommended Books.
- Software installation for Linux Users.
- Software installation for Mac Users.
- Software installation for Windows Users.
- Editors & IDEs for Ruby on Rails.
- the controller class will implement actions through internal service logic.
Git and Github
- Introduction to Git.
- Local Git Repository.
- Remote Repos and Github.
- Ruby Basics.
- Flow of Control.
- Functions.
- Blocks.
- Files.
- Programming Assignment - Case Statement.
- String.
- Arrays.
- Ranges.
- Hashes.
- Programming Assignment -Collections.
- Classes.
- Class Inheritance.
- Modules.
- Scope.
- Access Control.
- Practice Programming Assignment: Classes.
- Introduction to Unit Testing.
- Introduction to RSpec.
- RSpec Matchers.
- Programming Assignment -Caculating Maximum Word Frequency.
- Introduction to Ruby on Rails.
- Introduction to Rails.
- Creating your first application.
- Controller and View.
- Routes.
- Moving Business Logic Out of View.
- Helper.
- Introduction to HTTParty.
- Bundler.
- Rails & HTTParty Integration.
- CSS, Parameters & Root Path.
- Practice Programming Assignment: HTTP Client.
####Â Deploying to Heroku and Verification
- Deploying to Heroku.
- Blackbox Testing.
- Debugging Rails Applications.
- Programming Assignments: Coding Assignment - Recipe Hunter.
Beginning Databases in Rails
- Course Introduction
- Introduction to Active Record
- Scaffolding
- Database Setup and SQLite
- Introduction to Migrations
- Creating and Modifying Tables and Columns
Metaprogramming in Ruby
- Dynamic Dispatch
- Dynamic Methods
- Ghost Methods
Introduction to Active Record
- Introduction to Active Record
- Active Record CRUD: Part 1
- Active Record CRUD: Part 2
- Active Record Queries
- Deep Dive into Active Record.
- Seeding the Database.
- SQL Fragments and Dangers of SQL Injection
- Array and Hash Condition Syntax
- Advanced Querying
- Programming Assignment
- One-to-One Association
- One-to-Many Association
- Many-to-many Association
- Rich-to-Many Association
- Relationships
- Active Record Scopes
- Validations
- N+1 Queries Issue and DB Transactions
- Programming Assignment (Active Record Relationships)
###Introduction to Action Pack
- Introduction to Action Pack
- REST and Rails
- Creating your first application
- Action Park (Quiz)
- Restful Actions: Index
- Restful Actions: Show and Destroy
- Restful Actions: New and Create
- Strong Parameters and Flash
- Restful Actions: Edit and Update
- Restful Actions (Quiz)
- Partials
- Form Helpers and Layouts
- Programming Assignment (Action Pack)
- Security and Nested Resources in Action Pack
- Building an App with Multiple Resources
- Nested Resources: Part 1
- Nested Resources: Part 2
- Nested Resources: (Quiz)
- Authentication
- HTTP Sessions and Cookies
- Sessions Controller and View
- Authorization
- Authentication (Quiz)
- Pagination
- Deploying to Heroku and Enabling SSL
- Nested Resources, Security, and Pagination (Programming Assignment)
Introduction to NoSQL and MongoDB.
- Introduction to MongoDB, Mongo-Ruby API, and CRUD.
- Introduction to NoSQL.
- Introduction to MongoDB
- Mongo Installation.
- MongoDB Basics.
- Practice Programming Assignment - MongoDB Ruby Driver Connection.
CRUD
- Inserting Documents.
- Practice Programming Assignment - MongoDB Ruby Driver CRUD.
- Find.
- Paging.
- Advanced Field.
- Replace, Update and Delete.
Integrating MongoDB and Rails
- Introduction: Integrating MongoDB with Ruby Driver.
- Rails Setup.
- DAO Class Infrastructure.
- CRUD.
- Scaffolding.
- MVC Application.
- MongoLab Setup.
- Heroku Setup.
- Programming Assignment (Integrating MongoDB Ruby Driver and Rails).
- Aggregation Framework, Performance, and Advanced MongoDB.
- Introduction to Aggregation.
- Practice Programming Assignment - Aggregation Framework.
- $projetc.
- $group.
- $match.
- $unwind.
- Schema Design.
- Normalization.
- Relationships.
- Pratice Programming Assignment: (Schema Design).
- GridFS.
- GridFS Demo 1.
- GridFS Demo 2.
- GridFS Demo 3.
- Geospatial.
- Geospatial Demo.
- Introduction to Indexes.
- Creating Indexes.
- Listing and Deleting Indexes.
- Unique, Sparse & TTL Indexes.
- Programming Assignment: (Advanced MongoDB Ruby Driver Topics).
- Introduction to Mongoid.
- Document Class.
- Mongoid CRUD.
- Movie Application Setup.
- Practice Programming Assignment: (Mongoid Setup and Document CRUD.)
- 1:1 Embedded Relationships.
- M:1 Linked Relationships.
- 1:M Embedded Relationships.
- M:1 Embedded Relationships.
- 1:1 Linked Relationships.
- M:M Linked Relationships.
- Constraints and Validation
- Constraints and Validation: Demo.
- Practice Programming Assignment: (Mongoid Relationships).
- Queries (Find)
- Queries (Where)
- Pluck and Scope.
- Scaffolding.
- Programming Assignment: (Mongoid and Rails Scaffold).
- Introduction to Web Services.
- REST and RMM.
- Resources.
- URI's.
- Nested URI's.
- Query Parameters.
- Methods.
- Web Services and REST. (Quiz).
- Idempotence.
- Representations.
- Versioning.
- Content Negotiations.
- Headers and Status.
- Interfaces. (Quiz).
- Client Caching.
- Cache Revalidation Headers.
- Cache Controls.
- Server Caching.
- Caching. (Quiz)
- OAuth2.
- Assembly.
- Device.
- Integrated Authentication.
- OAuth Integration.
- Programming Assignment: (Web Services)
HTML Basics
- What is HTML5.
- Relevant History of HTML.
- Anatomy of an HTML Tag.
- Basic HTML Document Structure.
- HTML Content Models.
Essential HTML5 Tags
- Inserting Documents.
- Practice Programming Assignment - MongoDB Ruby Driver CRUD.
- Find.
- Paging.
- Advanced Field.
- Replace, Update and Delete.
Integrating MongoDB and Rails
- Heading Elements (and some new HTML5 semantic comments).
- Lists.
- HTML Character Entity References.
- Creating Links.
- Displaying Images.
- Quiz.
- Introduction to CSS3.
- Power of CSS.
- Anatomy of a CSS Rule.
- Element, Class and ID Selectors.
- Combining Selectors.
- Pseudo-Class Selectors.
- Quiz.
- Style Placement.
- Conflict Resolution Part 1.
- Conflict Resolution Part 2.
- Styling Text Part 1.
- Styling Text Part 2.
- Quiz
- The BoxModel Part 1.
- The BoxModel Part 2.
- The BoxModel Part 3.
- The background Property.
- Positioning Elements by Floating.
- Relative and Absolute Element Positioning Part 1.
- Relative and Absolute Element Positioning Part 2.
- Quiz.
- Media Queries (Part 1).
- Media Queries (Part 2).
- Responsive Design Part 1.
- Responsive Design Part 2.
- Quiz.
- Introduction to Twitter Bootstrap Part 1.
- Introduction to Twitter Bootstrap Part 2.
- The Bootstrap Grid System Part 1.
- The Bootstrap Grid System Part 2.
- Coding Assignment.
###Coding the Static Restaurant Site
- Design Overview.
- Ground Rules and Overview of Setup.
- Quiz.
- Coding Basics of Navbar Header Part 1.
- Coding Basics of Navbar Header Part 2.
- Coding Button for Future Collapsible Menu.
- Coding Nav Menu Buttons Part 1.
- Coding Nav Menu Buttons Part 2.
- Fixing Navbar Layout, Text and Dropdown Menus Part 1.
- Fixing Navbar Layout, Text and Dropdown Menus Part 2.
- Coding the Jumbotron.
- Coding Navigation Tiles Part 1.
- Coding Navigation Tiles Part 2.
- Coding the Footer Part 1.
- Coding the Footer Part 2.
- Coding the Menu Categories Part 1.
- Coding the Menu Categories Part 2.
- Coding the Single Menu Categories Part 1.
- Coding the Single Menu Categories Part 2.
- Testing the Mobile Version on a Real Phone.
- Coding Assignment.
- Introduction to Javascript.
- Adjusting Development Environment for Javascript Development.
- Where to Place Javascript Code.
- Defining Variables, Functions and Scope Part 1.
- Defining Variables, Functions and Scope Part 2.
- Quiz.
- Javascript Types Part 1.
- Javascript Types Part 2.
- Common Language Constructs Part 1.
- Common Language Constructs Part 2.
- Common Language Constructs Part 3.
- Handling Default Values.
- Quiz.
- Creating Objects Using 'new Object()' Syntax.
- Creating Objects Using Object Literal Syntax.
- Functions Explained.
- Passing Variables by Value vs by Reference Part 1.
- Passing Variables by Value vs by Reference Part 2.
- Function Constructors, Prototypes and the 'this' Keyword.
- Object Literals and the 'this' Keyword.
- Quiz.
- Arrays Part 1.
- Arrays Part 2.
- Closures.
- Fake Namespaces.
- Immediately Invoked Function Expressions (IIFES).
- Quiz.
- Coding Assignment.
- DOM Manipulation Part 1.
- DOM Manipulation Part 2.
- Handling Events.
- The 'event' Argument.
- Quiz.
- HTTP Basics.
- Ajax Basics Part 1.
- Ajax Basics Part 2.
- Ajax Basics Part 3.
- Quiz.
- Processing JSON.
- Quiz.
- Fixing Mobile Nav Menu Automatic Collapse.
- Dynamic Loading Home View Content.
- Dynamically Loading Menu Categories View Part 1.
- Dynamically Loading Menu Categories View Part 2.
- Dynamically Loading single Categories View.
- Changing 'active' Button Style Through Javascript.
- Coding Assignment.
## Course Contents.
- [Single Page Web Applications with AngularJS](#single-page-web-applications with-angularjs)
- [Introduction to AngularJS](#introduction-to-angularjs)
- [Filters, Digest Cycle, Controller Inheritance, and Custom Services](#filters-digest-cycle-controller-inheritance-and-custom-services)
- [Promises, Ajax, and Custom Directives](#promises-ajax-and-custom-directives)
- [Components, Events, Modules, and Routing](#components-events-modules-and-routing)
- [Form Validation, Testing, and Restaurant Site Development](#form-validation-testing-and-restaurant-site-development)
Why AngularJS? Why Not Keep Things Simple?
- Why Not Keep Things Simple?.
- Why Does Code Get Complex Part 1?.
- Why Does Code Get Complex Part 2?.
- Quiz.
- Model - View - View - Model (MVVM).
- Quiz
AngularJS Installation & Basics
- AngularJS Installation and First Simple App.
- Quiz.
- Sharing Data With The View Through Scope.
- Implementing NameCalculator Example in AngularJS.
- Whats Behind the 'Magic': Custom HTML Attributes.
- Quiz.
Dependency Injection, Interpolation
- Dependency Injection.
- How Dependency Injection Works in Javascript.
- Quiz.
- Protecting Dependency Injection from Minification.
- Quiz.
- Expressions and Interpolation Part 1.
- Expressions and Interpolation Part 2.
- Coding Assignment.
- Filters.
- Creating Custom Filters Part 1.
- Creating Custom Filters Part 2.
- Creating Custom Filters Part 3.
- Digest Cycle Part 1.
- Digest Cycle Part 2.
- Digest Cycle Part 3.
- $digest and $apply.
- 2-way, 1-way and 1-time Data Binding.
- Quiz.
- ng-repeat.
- Filtered ng-repeat.
- Prototypal Inheritance Part 1.
- Prototypal Inheritance Part 2.
- Scope Inheritance Part 1.
- Scope Inheritance Part 2.
- Controller AS Syntax.
- Quiz
- Custom Services Part 1.
- Custom Services Part 2.
- Custom Services with .factory() Part 1.
- Custom Services with .factory() Part 2.
- Custom Services with .provider() Part 1.
- Custom Services with .provider() Part 2.
- ng-if, ng-show and ng-hide.
- Quiz.
- Coding Assignment.
- Asynchronous Behavior with Promises and $q Part 1.
- Asynchronous Behavior with Promises and $q Part 2.
- Ajax with $http Service Part 1.
- Ajax with $http Service Part 2.
- Quiz.
- Directives: Dynamic HTML Part 1.
- Directives: Dynamic HTML Part 2.
- Restrict Property.
- Directive's Isolate Scope: "=" and "@" Part 1.
- Directive's Isolate Scope: "=" and "@" Part 2.
- Using Controllers Inside Directives Part 1.
- Using Controllers Inside Directives Part 2.
- Direcrtive APIs and "&" Part 1.
- Direcrtive APIs and "&" Part 2.
- Manipulating the DOM with link Part 1.
- Manipulating the DOM with link Part 2.
- Using Directive's translude to Wrap Other Elements Part 1.
- Using Directive's translude to Wrap Other Elements Part 2.
- Quiz.
- Coding Assignment.
- Components & Component-Based Architecture Part 1.
- Components & Component-Based Architecture Part 2.
- Components & Component-Based Architecture Part 3.
- Components & Component-Based Architecture Part 4.
- Quiz.
- AngularJS Event System Part 1.
- AngularJS Event System Part 2.
- Modules Part 1.
- Modules Part 2.
- Quiz.
- Routing Part 1.
- Routing Part 2.
- Routing State with Controller Part 1.
- Routing State with Controller Part 2.
- Quiz.
- Routing State with resolve Part 1.
- Routing State with resolve Part 2.
- Routing State with URL Parameters Part 1.
- Routing State with URL Parameters Part 2.
- Quiz.
- Routing State with Nested Views Part 1.
- Routing State with Nested Views Part 2.
- Router State TRansition Events Part 1.
- Router State TRansition Events Part 2.
- Quiz.
- Coding Assignment.
- Form Validation Part 1.
- Form Validation Part 2.
- Tetsing Javascript with Jasmine Part 1.
- Tetsing Javascript with Jasmine Part 2.
- Quiz.
- Testing AngularJS Controllers 1.
- Testing AngularJS Controllers 2.
- Testing AngularJS Controllers 3.
- Testing AngularJS Controllers 4.
- Quiz.
- Testing AngularJS Services and $http Part 1.
- Testing AngularJS Services and $http Part 2.
- Quiz.
- Testing AngularJS Directives Part 1.
- Testing AngularJS Directives Part 2.
- Testing AngularJS Directives Part 3.
- Testing AngularJS Directives Part 4.
- Quiz.
- Testing AngularJS Components Part 1.
- Testing AngularJS Components Part 2.
- Quiz
- Visit with the Client Part 1.
- Visit with the Client Part 2.
- Non-AngularJS Website Overview Part 1.
- Non-AngularJS Website Overview Part 2.
- Restaurant Server Setup Part 1.
- Restaurant Server Setup Part 2.
- Basic Structure of the Restaurant App Part 1.
- Basic Structure of the Restaurant App Part 2.
- Coding up a Loader/Spinner.
- Coding up $http Interceptor.
- Quiz.
- Coding up Menu Categories Part 1.
- Coding up Menu Categories Part 2.
- Coding up Menu Categories Part 3.
- Single Category View Part 1.
- Single Category View Part 2.
- Single Category View Part 3.
- Coding Assignment.