Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 15 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Olin.js - Spring 2015
Olin.js
===

##Course Description
Expand All @@ -12,29 +12,26 @@ This repository contains all of the lesson material and assignments to get you g
Feel free to submit a Github issue if you find any problems in the course and we'll do our best to fix it up.

##Course Contents
* [Class 0 - Getting Ready for the Course](./classes/class00)
* [Class 1 - Course Introduction and The Internet](./classes/class01)
* [Class 2 - Intro to Javascript](./classes/class02)
* [Class 3 - Express, Templating, and MongoDB](./classes/class03)
* [Class 4 - The Client](./classes/class04)
* [Class 5 - Flex Day](./classes/class05)
* [Class 6 - Sessions, Users, Errors, CSS, and Debugging](./classes/class06)
* [Class 7 - Application Integration](./classes/class07)
* [Class 8 - Unit Testing and Task Running](./classes/class08)
* [Class 9 - Architecture and Diagramming](./classes/class09)
* [Class 10 - Application Frameworks (Lab 1)](./classes/class10)
* [Class 11 - Security](./classes/class11)
* [Class 12 - Deployment and Scaling](./classes/class12)
* [Class 13 - Framework Reprise (Lab 2)](./classes/class13)
* [Class 14 - Project Planning](./classes/class14)
* [Class 15 - Agile Project Management](./classes/class15)
* [Lesson 0 - Getting Ready for the Course](./lessons/00-getting-ready)
* [Lesson 1 - Course Introduction and The Internet](./lessons/01-welcome-internet)
* [Lesson 2 - Intro to Javascript](./lessons/02-javascript)
* [Lesson 3 - Express, Templating, and MongoDB](./lessons/03-express-templates-mongo)
* [Lesson 4 - The Client](./lessons/04-client-jquery-ajax)
* [Lesson 5 - Sessions, Users, Errors, CSS, and Debugging](./lessons/05-css-development-grace)
* [Lesson 6 - Application Integration](./lessons/06-apis-debugging)
* [Lesson 7 - Unit Testing and Task Running](./lessons/07-tests-tasks)
* [Lesson 8 - Architecture and Diagramming](./lessons/08-designs-diagrams)
* [Lesson 9 - Application Frameworks (Lab 1)](./lessons/09-clientside-frameworks)
* [Lesson 10 - Security](./lessons/10-security)
* [Lesson 11 - Deployment and Scaling](./lessons/11-deployment-scaling)
* [Lesson 12 - Agile Project Management](./lessons/12-agile)
* [Lab 1](./lab1)
* [Lab 2](./lab2)
* [Final Project](./finalproject)


##Learning Objectives
1. Understand the modern internet and web applications
1. Understand the modern internet and web applications
2. Become adept with JavaScript, Node, and database technologies
3. Learn software design skills and strategies relevant to web infrastructure
4. Work effectively as a member of a project team
Expand Down
84 changes: 0 additions & 84 deletions classes/class05/README.md

This file was deleted.

1 change: 0 additions & 1 deletion classes/class06/homework
Submodule homework deleted from 343353
8 changes: 0 additions & 8 deletions classes/class13/README.md

This file was deleted.

1 change: 0 additions & 1 deletion classes/class14/README.md

This file was deleted.

85 changes: 85 additions & 0 deletions classes/class00/README.md → lessons/00-getting-ready/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,88 @@ To pull any new additions from the upstream remote, simply run
git pull upstream master
```
If everything is going according to plan, there shouldn't be any conflicts, but if there are, you will have to resolve them.

## Git Best Practices

In the real world (and in this class), it's not good practice to commit directly to the `master` branch. If a real project is under version control, committing a bug to `master` could break live code. The `master` branch is generally eserved for code that has been tested and shown to work in a branch.

Here's how to create a pull request:

1. Create a new branch on your `olinjs` repository.

```bash
$ git checkout -b branchname
```

2. Commit something on the branch.
3. Pull request that branch to `master` on **your fork** of `olinjs/olinjs` on GitHub.

With the pull request, you now have a nice interface for conducting code reviews and looking through any changes made n a branch.
You also get a merge button that will let you know if your branch has any merge conflicts.

## The Repo and `.gitignore`

This is the directory structure of the `olinjs` repo:

```bash
.
├── .git
├── .gitignore
├── README.md
├── lessons
├── finalproject
├── lab1
├── lab2

6 directories, 2 files
```

The `.gitignore` file lives in the root directory of the git repository. Each line is a pattern for a file to ignore.

###### .gitignore

```bash
# Logs
**/logs
**/*.log

# Runtime data
pids
**/*.pid
**/*.seed

# Directory for instrumented libs generated by jscoverage/JSCover
**/lib-cov

# Coverage directory used by tools like istanbul
**/coverage

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
**/.grunt

# node-waf configuration
**/.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
**/build/Release

# Dependency folders
**/node_modules

# Debug log from npm
**/npm-debug.log

# For Mac users without global gitignore
# http://islegend.com/development/setting-global-gitignore-mac-windows/
**/.DS_Store
```

This is worth perusing but we won't cover it in detail now. Your `.gitignore` can be as simple as:

###### .gitignore

```bash
node_modules
```

Which will ignore the `node_modules` folder — standard for a Node repository.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Class 1
#Lesson 1 - Welcome! The Internet and JavaScript

##Goals
After this class, you should:
Expand All @@ -21,7 +21,7 @@ With help from the course assistants:
- Josh Langowitz
- Sarah Walters

##Introduction to the Internet:
##Introduction to the Internet
![Series of tubes](http://crackerdiet.net/pub/Tedstevenstubesomgwhat.jpg)

This is obviously a comic misconception about the true nature of the internet, so let's dive deeper and have a look at the true nature of our old friend.
Expand Down Expand Up @@ -145,7 +145,7 @@ Acording to the official website,

What this really means is that it is JavaScript running on the server, accepting incoming requests and handling them. The thing that makes Node.js so awesome is that it is entirely **non-blocking**. To understand exactly what this means, realize that with other server frameworks, when a request comes in, the server has to process that request and send the response before it can accept the next incoming request. Node is structured in such a way that when a request comes in, it can immediately continue listening for other requests.

##Exercises:
##Exercises
Before moving on to the next lesson, go through the following introductory tutorials on JavaScript and Node.

####JavaScript Tutorial
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Class2 - JavaScript
#Lesson 2 - JavaScript

## JavaScript is Everywhere

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Class 3 - Express, Templating, and MongoDB
#Lesson 3 - Express, Templating, and MongoDB

##Express
Now that we've explored Node.js a little, we will abstract the details away with the [Express](http://expressjs.com/) development framework. Before, in the Node Beginner's Book, our code looked a lot like this:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Class 4 - The Client
# Lesson 4 - The Client, jQuery, and AJAX
Web Applications handle much of their database communication and logic on the server,
but the front-end is what the client actually sees and interacts with.
Without a clean, intuitive, responsive, and enjoyable client-side,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Class6 - CSS, Development Style and Grace
# Lesson 5 - CSS, Development Style and Grace

In this lesson we're going to cover some big ideas that span front-end and back-end development (and life!), and also round out our front-end knowledge by learning about CSS.

Expand Down
File renamed without changes
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Exercise 6
# Exercise 5

## Assignment

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Class 7: APIs and Debugging Strategies
#Lesson 6 - APIs and Debugging Strategies
##APIs: Your *real* on-ramp to the information superhighway

![Take it to the moon, take it to the stars.](./images/tothemoon.jpg)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Exercise 7
#Exercise 6

##Passport and "Sign in using __"
One of the great features of OAuth is that it allows us to use another service to authenticate users of our service. This means we can piggy back on someone else to handle the hard parts of signing in to a service. The library `Passport` makes this really easy, if not a bit complicated.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Class 8 - Unit Testing and Task Running
#Lesson 7 - Unit Testing and Task Running

##What is Unit Testing?

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Class 9 - Application Design and Diagramming
#Lesson 8 - Application Design and Diagramming

As we begin to develop larger and more complex applications, we'll want to start being methodical about how we design and plan them.
In this lesson we will talk about strategies for planning and documenting large applications to make developing and debugging as simple as possible.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Class 10 - Client-side Javascript Frameworks
#Lesson 9 - Client-side Javascript Frameworks

##Intro
So far we have seen how to organize an increasingly complex system of components on our node server.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Class 11 - Application Security
#Lesson 10 - Application Security
Hello and welcome to possibly the most important lesson you will have in this course.
All of the applications you make and all of the websites that you put out into the world will be vulnerable to some sort of attack, and it's important for you to know what those attacks are, and how you can mitigate against them.
Before we get started, I'll take a moment to acknowledge one of the authoritative sources for all matters web security, [OWASP](https://www.owasp.org/index.php/Main_Page), the Open Web Application Security Project.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Class 12 - Deployment and Scaling
#Lesson 11 - Deployment and Scaling

Once your applications are ready you will need a way to share them with the world.
There is more to consider than just running your app on a remote server with its own URL.
Expand Down
2 changes: 1 addition & 1 deletion classes/class15/README.md → lessons/12-agile/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Class 15: Agile
#Lesson 12 - Agile

##Intro
In the most simple interpretation, agile is a project management methodology and attitude.
Expand Down