課程信息
4.7
18 個評分
7 個審閱
專項課程

第 6 門課程(共 6 門),位於

100% online

100% online

立即開始,按照自己的計劃學習。
可靈活調整截止日期

可靈活調整截止日期

根據您的日程表重置截止日期。
完成時間(小時)

完成時間大約為58 小時

建議:6 hours/week...
可選語言

英語(English)

字幕:英語(English)...

您將獲得的技能

Ruby On RailsAngularjsWeb Development
專項課程

第 6 門課程(共 6 門),位於

100% online

100% online

立即開始,按照自己的計劃學習。
可靈活調整截止日期

可靈活調整截止日期

根據您的日程表重置截止日期。
完成時間(小時)

完成時間大約為58 小時

建議:6 hours/week...
可選語言

英語(English)

字幕:英語(English)...

教學大綱 - 您將從這門課程中學到什麼

1
完成時間(小時)
完成時間為 7 小時

Technical Architecture and API Development Setup

In this module, we will start your journey into being part of an end-to-end application development as a Rails/AngularJS fullstack developer intern. You will learn the technical architecture and software requirements of the targeted application you will be a part of developing. You will also get a chance to shake off any rust that may have accumulated on your Rails development skills. As a part of the technical architecture, you will learn of the various layers, technologies, libraries, and services used in the development, deployment, and operation of the targeted application. You will get an early sense that this course is "no joke" when it comes to challenges, but you will be shown a path through most of them. You may be able to skip the application installation until the end if you are using the same computer that you used in the first five (5) courses of the specialization. None of the new software installations are required for this module -- but are included in a single lesson for modularity. You will develop an end-to-end, API-to-Database, resource solution for ActiveRecord/RDBMS and Mongoid/MongoDB using Rails scaffold generator. You will establish a Git repository for this work, provision database and Rails resources on the internet for staging and production deployments, and deploy your solution to the Heroku to be accessible from the Internet. If you are a seasoned Rails developer and competent with ActiveRecord, Mongoid, and Heroku -- you may want to initially skip the review lectures, review the final Git commit for module one (1), and try your hand at the optional assignment at the end. Aside from the technical architecture lesson, this module is mostly a quick breeze through many of the topics of courses one (1) through three (3). A similar, small-scale review of courses four (4) through five (5) will be covered in the next module. Please enjoy! Also, if you have not done so already I recommend that you read the Course Overview description which provides additional context on what you will be doing in this course. To access, please click the Resources tab on the left navigation. ...
Reading
21 個視頻(共 220 分鐘), 1 個測驗
Video21 個視頻
Module 1 Introduction3分鐘
Technical and Deployment Architecture (Part 1)11分鐘
Technical and Deployment Architecture (Part 2)14分鐘
Technical and Deployment Architecture (Part 3)14分鐘
Development Environment Setup4分鐘
Software Installation: MacOS13分鐘
Software Installation: Specifics for Windows29分鐘
Software Installation: Specifics for Linux and Docker15分鐘
Application Setup6分鐘
Application Setup Demo10分鐘
Example Requirements10分鐘
RDBMS-backed Resource12分鐘
MongoDB-backed Resource13分鐘
Regression Testing7分鐘
Web Service Finishing Touches3分鐘
CORS6分鐘
Alternate Web Servers4分鐘
Gemfile Summary8分鐘
Provisioning mLab MongoDB6分鐘
API Deployment13分鐘
2
完成時間(小時)
完成時間為 6 小時

SPA Development Setup

In this module, you will develop an AngularJS web application for the purposes of managing a resource hosted by a Rails server. As a part of that, you will learn the details of the Rails Asset Pipeline for hosting web applications, key features to address when moving from development to production, and different deployment options that you have within this course. You will complete an end-to-end AngularJS/Rails application to manage the resource on the Rails server you developed and deployed as a part of module one (1). This application will consist of AngularJS 1.x, UI-Router, and ngResource modules as well as a sample service, directive, controller, and web page to manage the resource. You will learn the details of the Rails Asset Pipeline as an option for deploying web assets like AngularJS web applications and what features it provides and how to conform to its conventions to get those features. Novice and intermediate developers are encouraged to use the Asset Pipeline approach in this module and throughout the course for simplicity and consistency with the examples in follow-on modules as this will be the development approach used by all follow-on modules. You will optionally learn how to leverage node package manager, bower, and gulp to establish an external development environment that parallels many of the capabilities provided by Asset Pipeline (e.g., minification to reduce bandwidth requirements and concatenation to reduce the number of separate server HTTP connections). You may leverage this environment to form a deployment to Github, like performed during courses four (4) and five (5) except with deployment considerations addressed. Although there is a functional gulpfile developed during the module, you are encouraged to treat this as an optional topic. Additionally, you can optionally learn how to use a hybrid of external development and Rails by using Rails as a web server and deploying your web application to the public directory and forming a single development tree and deployment artifact to Heroku. Like the pure external development approach, you are encouraged to treat this approach as an optional topic. ...
Reading
29 個視頻(共 208 分鐘), 1 個測驗
Video29 個視頻
Web Resources and Asset Pipeline Background12分鐘
Asset Pipeline Packaging11分鐘
Asset Pipeline Deployment2分鐘
External Web Client Packaging with Gulp7分鐘
Gulp Development Setup4分鐘
Gulp Installation7分鐘
Gulpfile Task Basics4分鐘
Gulpfile Definitions7分鐘
Gulp Build Tasks9分鐘
Gulp Development Runtime Tasks8分鐘
Gulp Distribution Tasks6分鐘
External Web Client Deployment4分鐘
External Web Client Rails Packaging12分鐘
External Web Client Rails Deployment3分鐘
Merging UI Branches6分鐘
SPA Application Module13分鐘
SPA Application Module External Packaging6分鐘
Sample Resource CRUD Module5分鐘
Sample Resource Service Skeleton8分鐘
Sample Resource CRUD Controller Skeleton4分鐘
Sample Directive and Template Page11分鐘
Sample CSS Styling5分鐘
List Resource Instances3分鐘
Create Resource Instance8分鐘
Select and Update/Delete Resource Instance6分鐘
Sample Application in External Environments2分鐘
SPA Application Deployments8分鐘
CORS Revisited7分鐘
3
完成時間(小時)
完成時間為 6 小時

Testing

In this module, you will learn how to development model, request, and feature specs using RSpec and to leverage gems like DatabaseCleaner, FactoryGirl, and Faker in building those specs. You will also learn how to DRY their tests using RSpec shared_contexts and shared_examples as well as Ruby modules for helper methods. All use of tests within the capstone will be "integration-style" tests, going to the database and back. We will not have time to implement pure unit tests for individual components. For model testing, we will focus tests on factories, query scopes, relationships, and facade methods interacting directly with PostgreSQL and MongoDB databases. We will address the general purpose and custom techniques for managing the database state during cleanup. For API testing, we will form a hefty set of RSpec shared_contexts and Ruby helper methods for the request specs that will take care of the details of many CRUD behaviors and other tedious, repetitive tasks. The API is not only easier to test than the Web UI, it is a first-class external interface deserving of separate testing. During test coverage, you will learn internal Rails error handling techniques that will provide the web client a proper and sane web reply in the face of errors. For Web UI testing, we will introduce Capybara for building feature tests and the role of the RackTest, Selenium, and Poltergeist/PhantomJS drivers for implementing UI testing with Javascript. Although Capybara provides a nice interface for expressing Web UI tests, the asynchronous nature of Web UIs make them extremely difficult to test without well thought out decisions during development. This course has a special emphasis on teaching you how to develop automated integration tests at all levels of the architecture, including the Web UIs. It is recommended that you review this module and sample further test-related lectures in follow-on modules to get a good understanding of how testing can best be leveraged in a full stack development (within constraints of the course). Except for the seasoned RSpec and Capybara user, there is no shortcut through this module....
Reading
32 個視頻(共 244 分鐘), 1 個測驗
Video32 個視頻
RSpec DSL11分鐘
Spec Anatomy Part 1: Database Interaction and Blocks6分鐘
Spec Anatomy Part 2: Thinning Examples5分鐘
Spec Anatomy Part 3: Pending Examples and Lazy/Eager Let Blocks6分鐘
RSpec with Mongoid9分鐘
DatabaseCleaner with ActiveRecord6分鐘
DatabaseCleaner and SharedContexts5分鐘
DatabaseCleaner with Mongoid5分鐘
DatabaseCleaner Optimizations5分鐘
FactoryGirl and Faker6分鐘
FactoryGirl Factories10分鐘
FactoryGirl and Faker Data9分鐘
Request Specs Overview5分鐘
First Request Spec5分鐘
API GET Resource Instances and Helper ApiModule9分鐘
API GET Instance and Not Found Error Reporting7分鐘
API Create and Wrapped Parameters8分鐘
API Update/Delete and DRYing with Ruby Metaprogramming7分鐘
DRYing API Tests with RSpec Shared Examples8分鐘
More Shared Examples with API GET Instance7分鐘
Capybara Setup6分鐘
Selenium Webdriver8分鐘
Debugging Capybara/Selenium Tests2分鐘
Poltergeist/PhantomJS Headless Webdriver6分鐘
Capybara Testing with Docker (Optional Lecture)14分鐘
Capybara Usage10分鐘
Capybara Waits6分鐘
Foo Feature Spec: Foo List10分鐘
Foo Feature Spec: Create Foo8分鐘
Foo UI Helper Module8分鐘
Code Coverage3分鐘
4
完成時間(小時)
完成時間為 13 小時

Security and the Photo Tourist Domain Model

In this module, you will learn how to implement authenticated interfaces providing role-based authorization required to protect web resources. You will also practice these techniques while implementing the core resources for the Photo Tourist application. You will learn how to manage user accounts with the Devise Ruby gem and how to implement token-based authentication with the devise_token_auth Ruby gem and ng-token-auth AngularJS module. With this starting point -- the student is on a straightforward path to implementing external authentication (e.g., via Facebook, Twitter, Github) through OAuth2 (not part of the capstone). Additionally, how to implement end-to-end account registration from the UI, through the API, to Devise through the intermediate libraries and implement an authenticated session component in Angular and make that available through a Navbar based on a Bootstrap implementation. You will learn how to add role-based security to their resources with the aid of the Pundit Ruby gem to determine access not only on authentication -- but also on assigned roles for the anonymous and authenticated user. The content and code-along exercises provide opportunities to implement role-based access checks within the Web UI to help guide a user to making authorized choices appropriate for their assigned roles. And how to write optimized SQL queries to implement compound, custom resource payloads for efficient expression of related object information -- including mapping roles to resources accessed by specific users. ************* This is a very long module with very important material relative to security and the targeted application. It will likely be broken up into two (2) or more modules in the future. You should budget extra time for this and treat it as if it were two (2) modules for the amount of time spent. Yes -- that means the novice developer could spend upwards to forty-eight (48) hours going through the lectures, performing the optional code-alongs, and completing the mandatory assignment. *************. The mandatory assignment for this module will be posted shortly after the last lectures are posted and there is a Git commit available in Github for that lecture. ...
Reading
49 個視頻(共 496 分鐘), 1 個測驗
Video49 個視頻
BTA Interview9分鐘
Token-based Authentication8分鐘
Server: Devise Token Auth Setup8分鐘
API: Authentication Requirements4分鐘
API: Account Signup5分鐘
API: Account Signup Failures and Error Payloads5分鐘
Server: Devise Setup Errors Discovered/Fixed7分鐘
API: Authenticated Access Control4分鐘
API: Authenticate6分鐘
API: Authenticated Access8分鐘
API: DRY Token Authentication Specs5分鐘
Server: Domain Model and Authn Policy4分鐘
Server: Image (Metadata) and Authn Policy15分鐘
Server: Things and Authn Policy5分鐘
DB: ThingImages Model15分鐘
DB: Custom SQL and Query Scopes8分鐘
API: ThingImages Resource and Authn Policy12分鐘
API: ThingImages Resource and Authn Specs7分鐘
UI: ng-token-auth Setup and Authentication Requirements8分鐘
UI: Signup15分鐘
UI: Signup Error Handling and Form Feedback11分鐘
UI: Navbar and Authn Session13分鐘
UI: Successful Login13分鐘
UI: Logout and Persisted Session13分鐘
UI: Login Error Handling and Styling10分鐘
UI: Authenticated Access12分鐘
DB: Populating Sample Data with Rakefile10分鐘
UI: Images Page and Image Selector Component14分鐘
UI: Display Image Metadata6分鐘
UI: Image Authz Directive10分鐘
UI: Image Authz Policy Enforcement10分鐘
UI: Authenticated Things Management2分鐘
UI: Displaying Thing/Image Links14分鐘
UI: Creating Thing/Image Links12分鐘
UI: Managing Thing/Image Links14分鐘
Server: Rule-based Authorization with Pundit Gem15分鐘
Server: Role Authorization Requirements5分鐘
Server: User Roles13分鐘
Server: Image Authorization Policy Enforcement10分鐘
DB: Image Authorization Policy Enforcement Queries14分鐘
Server: Thing Authorization Policy Enforcement14分鐘
Server: Thing/Image Links Authorization Policy Enforcement15分鐘
API: WhoAmI Service with User Roles8分鐘
UI: Authorization Architecture9分鐘
UI: Authz Service14分鐘
UI: Authorization Policy Services12分鐘
UI: Image Authorization9分鐘
UI: Thing Authorization8分鐘
4.7

熱門審閱

創建者 EAApr 15th 2017

Great Course Jim has really thought me more than enough to get my career started. All a student has to do is just study.

創建者 KTMay 4th 2017

Excellent course. Mr. Stafford is a very good teacher.

講師

Avatar

Jim Stafford

Adjunct Professor, Graduate Computer Science
Computer Science, Whiting School of Engineering

關於 Johns Hopkins University

The mission of The Johns Hopkins University is to educate its students and cultivate their capacity for life-long learning, to foster independent and original research, and to bring the benefits of discovery to the world....

關於 Ruby on Rails Web Development 專項課程

This Specialization covers the fundamentals of web development with Ruby on Rails. You’ll learn everything you need to develop your own web application using Ruby on Rails, SQL and NoSQL databases, and HTML/CSS, and Javascript. We will also touch on advanced topics such as security, services using HTTP/RESTful access patterns, and user access and user experience from multiple device platforms. In the final Capstone Project, you’ll apply your skills to develop a web application that hosts uploaded photos and displays them using a map....
Ruby on Rails Web Development

常見問題

  • 注册以便获得证书后,您将有权访问所有视频、测验和编程作业(如果适用)。只有在您的班次开课之后,才可以提交和审阅同学互评作业。如果您选择在不购买的情况下浏览课程,可能无法访问某些作业。

  • 您注册课程后,将有权访问专项课程中的所有课程,并且会在完成课程后获得证书。您的电子课程证书将添加到您的成就页中,您可以通过该页打印您的课程证书或将其添加到您的领英档案中。如果您只想阅读和查看课程内容,可以免费旁听课程。

還有其他問題嗎?請訪問 學生幫助中心