diff --git a/Nodejs-redis-tutorial/app.js b/Nodejs-redis-tutorial/app.js
new file mode 100644
index 0000000..d519ffa
--- /dev/null
+++ b/Nodejs-redis-tutorial/app.js
@@ -0,0 +1,67 @@
+
+/**
+ * Module dependencies.
+ */
+
+var express = require('express');
+var routes = require('./routes');
+var user = require('./routes/user');
+var http = require('http');
+var path = require('path');
+var redis = require("redis"),
+ client = redis.createClient();
+var app = express();
+
+// all environments
+app.set('port', process.env.PORT || 3000);
+app.set('views', path.join(__dirname, 'views'));
+app.set('view engine', 'jade');
+app.use(express.favicon());
+app.use(express.logger('dev'));
+app.use(express.json());
+app.use(express.urlencoded());
+app.use(express.methodOverride());
+app.use(app.router);
+app.use(express.static(path.join(__dirname, 'public')));
+
+// development only
+if ('development' == app.get('env')) {
+ app.use(express.errorHandler());
+}
+
+app.get('/', routes.index);
+
+/*
+* Error handling if we are unable to connect to redis
+*/
+
+/*
+* Post request handler for add new key
+*/
+app.post('/new_key', function(req, res){
+ /*
+ * Error handling if we are unable to connect to redis
+ */
+ client.on("error", function (err) {
+ res.send("Error occurred");
+ });
+ client.set(req.body.key, req.body.value, redis.print);
+
+ res.send("Record has been added successfully");
+});
+/*
+* Post request handler for get new key
+*/
+app.post('/get_key', function(req, res){
+ client.on("error", function (err) {
+ res.send("No such key exist");
+ });
+ client.get(req.body.key, function(err, reply) {
+ res.send("The key value = "+reply.toString());
+ });
+
+});
+
+http.createServer(app).listen(app.get('port'), function(){
+ console.log('Express server listening on port ' + app.get('port'));
+});
diff --git a/Nodejs-redis-tutorial/package.json b/Nodejs-redis-tutorial/package.json
new file mode 100644
index 0000000..faa1661
--- /dev/null
+++ b/Nodejs-redis-tutorial/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "application-name",
+ "version": "0.0.1",
+ "private": true,
+ "scripts": {
+ "start": "node app.js"
+ },
+ "dependencies": {
+ "express": "3.4.4",
+ "jade": "*"
+ }
+}
\ No newline at end of file
diff --git a/Nodejs-redis-tutorial/public/stylesheets/style.css b/Nodejs-redis-tutorial/public/stylesheets/style.css
new file mode 100644
index 0000000..30e047d
--- /dev/null
+++ b/Nodejs-redis-tutorial/public/stylesheets/style.css
@@ -0,0 +1,8 @@
+body {
+ padding: 50px;
+ font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
+}
+
+a {
+ color: #00B7FF;
+}
\ No newline at end of file
diff --git a/Nodejs-redis-tutorial/routes/index.js b/Nodejs-redis-tutorial/routes/index.js
new file mode 100644
index 0000000..f296005
--- /dev/null
+++ b/Nodejs-redis-tutorial/routes/index.js
@@ -0,0 +1,8 @@
+
+/*
+ * GET home page.
+ */
+
+exports.index = function(req, res){
+ res.render('index', { title: 'Express' });
+};
\ No newline at end of file
diff --git a/Nodejs-redis-tutorial/routes/user.js b/Nodejs-redis-tutorial/routes/user.js
new file mode 100644
index 0000000..d5b34aa
--- /dev/null
+++ b/Nodejs-redis-tutorial/routes/user.js
@@ -0,0 +1,8 @@
+
+/*
+ * GET users listing.
+ */
+
+exports.list = function(req, res){
+ res.send("respond with a resource");
+};
\ No newline at end of file
diff --git a/Nodejs-redis-tutorial/views/index.jade b/Nodejs-redis-tutorial/views/index.jade
new file mode 100644
index 0000000..99e3219
--- /dev/null
+++ b/Nodejs-redis-tutorial/views/index.jade
@@ -0,0 +1,28 @@
+extends layout
+
+block content
+ h1 string operation using redis
+
+ h3 Add new String key (Note : key must be unique)
+
+ form(method="post" , action="/new_key")
+ p key:
+ input#title(type="text" , name="key")
+ p value:
+ input#body(type="text" , name="value")
+ p: button(type="submit") Add New Key/value to redis
+
+ h3 update String value (Note : key must Exist, If not a new record will be created)
+ form(method="POST" , action="/new_key")
+ p key:
+ input#title(type="text" , name="key")
+ p value:
+ input#body(type="text" , name="value")
+ p: button(type="submit") Edit value
+
+ h3 Enter key to see what the value stored
+ form(method="POST" , action="/get_key")
+ p key:
+ input#title(type="text" , name="key")
+ p: button(type="submit") Search Contact
+
\ No newline at end of file
diff --git a/Nodejs-redis-tutorial/views/layout.jade b/Nodejs-redis-tutorial/views/layout.jade
new file mode 100644
index 0000000..1b7b305
--- /dev/null
+++ b/Nodejs-redis-tutorial/views/layout.jade
@@ -0,0 +1,7 @@
+doctype 5
+html
+ head
+ title= title
+ link(rel='stylesheet', href='/stylesheets/style.css')
+ body
+ block content
\ No newline at end of file
diff --git a/nodejs-mysql-tutorial/app.js b/nodejs-mysql-tutorial/app.js
new file mode 100644
index 0000000..f713ac3
--- /dev/null
+++ b/nodejs-mysql-tutorial/app.js
@@ -0,0 +1,51 @@
+
+//module dependencies
+var express = require('express')
+ , http = require('http')
+ , mysql = require('mysql')
+ , path = require('path');
+var app = express();
+// all environments
+app.set('port', process.env.PORT || 3002);
+app.set('views', __dirname + '/views');
+app.set('view engine', 'jade');
+app.use(express.favicon());
+app.use(express.logger('dev'));
+app.use(express.bodyParser());
+app.use(express.methodOverride());
+app.use(app.router);
+app.use(express.static(path.join(__dirname, 'public')));
+
+app.get('/', function( req, res) {
+ res.render('index');
+});
+//connect to mysql database
+var connection = mysql.createConnection({
+ host : 'localhost',
+ user : 'root',
+ password : 'yourpasswordgoeshere',
+ database : 'nodejsmysql'
+});
+connection.connect();
+app.get('/users', function (req, res) {
+ connection.query('select * from nodejs', function(err, docs) {
+ res.render('users', {users: docs});
+ });
+});
+// Add a new User
+app.get("/users/new", function (req, res) {
+ res.render("new");
+});
+// Save the Newly created User
+app.post("/users", function (req, res) {
+ var fname=req.body.fname,
+ lname=req.body.lname;
+ connection.query('INSERT INTO nodejs (fname, lname) VALUES (? , ?);', [fname, lname], function(err, docs) {
+ if (err) res.json(err);
+
+ res.redirect('users');
+ });
+});
+http.createServer(app).listen(app.get('port'), function(){
+ console.log('Express server listening on port ' + app.get('port'));
+});
diff --git a/nodejs-mysql-tutorial/app.js.bak b/nodejs-mysql-tutorial/app.js.bak
new file mode 100644
index 0000000..a286d6d
--- /dev/null
+++ b/nodejs-mysql-tutorial/app.js.bak
@@ -0,0 +1,51 @@
+
+//module dependencies
+var express = require('express')
+ , http = require('http')
+ , mysql = require('mysql')
+ , path = require('path');
+var app = express();
+// all environments
+app.set('port', process.env.PORT || 3002);
+app.set('views', __dirname + '/views');
+app.set('view engine', 'jade');
+app.use(express.favicon());
+app.use(express.logger('dev'));
+app.use(express.bodyParser());
+app.use(express.methodOverride());
+app.use(app.router);
+app.use(express.static(path.join(__dirname, 'public')));
+
+app.get('/', function( req, res) {
+ res.render('index');
+});
+//connect to mysql database
+var connection = mysql.createConnection({
+ host : 'localhost',
+ user : 'root',
+ password : 'root',
+ database : 'nodejsmysql'
+});
+connection.connect();
+app.get('/users', function (req, res) {
+ connection.query('select * from nodejs', function(err, docs) {
+ res.render('users', {users: docs});
+ });
+});
+// Add a new User
+app.get("/users/new", function (req, res) {
+ res.render("new");
+});
+// Save the Newly created User
+app.post("/users", function (req, res) {
+ var fname=req.body.fname,
+ lname=req.body.lname;
+ connection.query('INSERT INTO nodejs (fname, lname) VALUES (? , ?);', [fname, lname], function(err, docs) {
+ if (err) res.json(err);
+
+ res.redirect('users');
+ });
+});
+http.createServer(app).listen(app.get('port'), function(){
+ console.log('Express server listening on port ' + app.get('port'));
+});
diff --git a/nodejs-mysql-tutorial/package.json b/nodejs-mysql-tutorial/package.json
new file mode 100644
index 0000000..d171cd6
--- /dev/null
+++ b/nodejs-mysql-tutorial/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "nodejsmongodb",
+ "version": "0.0.1",
+ "private": true,
+ "scripts": {
+ "start": "nodemon app.js"
+ },
+ "dependencies": {
+ "express": "3.2.5",
+ "jade": "*"
+ }
+}
\ No newline at end of file
diff --git a/nodejs-mysql-tutorial/package.json.bak b/nodejs-mysql-tutorial/package.json.bak
new file mode 100644
index 0000000..5b70151
--- /dev/null
+++ b/nodejs-mysql-tutorial/package.json.bak
@@ -0,0 +1,12 @@
+{
+ "name": "helloexpress",
+ "version": "0.0.1",
+ "private": true,
+ "scripts": {
+ "start": "nodemon app.js"
+ },
+ "dependencies": {
+ "express": "3.2.5",
+ "jade": "*"
+ }
+}
\ No newline at end of file
diff --git a/nodejs-mysql-tutorial/public/stylesheets/style.css b/nodejs-mysql-tutorial/public/stylesheets/style.css
new file mode 100644
index 0000000..30e047d
--- /dev/null
+++ b/nodejs-mysql-tutorial/public/stylesheets/style.css
@@ -0,0 +1,8 @@
+body {
+ padding: 50px;
+ font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
+}
+
+a {
+ color: #00B7FF;
+}
\ No newline at end of file
diff --git a/nodejs-mysql-tutorial/routes/index.js b/nodejs-mysql-tutorial/routes/index.js
new file mode 100644
index 0000000..f4d7542
--- /dev/null
+++ b/nodejs-mysql-tutorial/routes/index.js
@@ -0,0 +1,8 @@
+
+/*
+ * GET home page.
+ */
+
+exports.index = function(req, res){
+ res.render('index', { title: 'HelloExpress!!!' });
+};
\ No newline at end of file
diff --git a/nodejs-mysql-tutorial/routes/user.js b/nodejs-mysql-tutorial/routes/user.js
new file mode 100644
index 0000000..d1eb90a
--- /dev/null
+++ b/nodejs-mysql-tutorial/routes/user.js
@@ -0,0 +1,13 @@
+
+/*
+ * GET users listing.
+ */
+
+exports.list = function(req, res){
+ res.send("respond with a resource");
+};
+
+exports.mist = function(req, res) {
+ res.render('index',{title: 'HelloExpress'});
+};
+
diff --git a/nodejs-mysql-tutorial/views/articles/articles.jade b/nodejs-mysql-tutorial/views/articles/articles.jade
new file mode 100644
index 0000000..bd8fb44
--- /dev/null
+++ b/nodejs-mysql-tutorial/views/articles/articles.jade
@@ -0,0 +1,11 @@
+h1 Showing All Articles
+
+ul
+ - each article in articles
+ li article Title: #{article.title}
+ li article Body: #{article.body}
+ hr
+
+a(href="articles/new") Add New Article
+br
+a(href="/") Home
\ No newline at end of file
diff --git a/nodejs-mysql-tutorial/views/articles/edit.jade b/nodejs-mysql-tutorial/views/articles/edit.jade
new file mode 100644
index 0000000..eae7105
--- /dev/null
+++ b/nodejs-mysql-tutorial/views/articles/edit.jade
@@ -0,0 +1,12 @@
+h1 Edit User
+
+form(method="POST" , action="/users/#{user.name}")
+ p
+ input(type="hidden", name="_method" , value="PUT")
+ p Name:
+ input#name(type="text" , name="name" , value="#{user.name}")
+ p Email:
+ input#email(type="text" , name="email" , value="#{user.email}")
+ p Age:
+ input#age(type="number" , name="age" , value="#{user.age}")
+ p: button(type="submit") Update
\ No newline at end of file
diff --git a/nodejs-mysql-tutorial/views/articles/index.jade.bak b/nodejs-mysql-tutorial/views/articles/index.jade.bak
new file mode 100644
index 0000000..3badcf9
--- /dev/null
+++ b/nodejs-mysql-tutorial/views/articles/index.jade.bak
@@ -0,0 +1,11 @@
+h1 Showing All Articles
+
+ul
+ - each article in articles
+ li article Title: #{article.title}
+ li article Body: #{article.body}
+ hr
+
+a(href="articles/new") Add New Article
+br
+a(href="") Home
\ No newline at end of file
diff --git a/nodejs-mysql-tutorial/views/articles/new.jade b/nodejs-mysql-tutorial/views/articles/new.jade
new file mode 100644
index 0000000..f442821
--- /dev/null
+++ b/nodejs-mysql-tutorial/views/articles/new.jade
@@ -0,0 +1,9 @@
+h1 Add new Article
+
+form(method="POST" , action="/articles")
+ p Title:
+ input#title(type="text" , name="title")
+ p Body:
+ input#body(type="textarea" , name="body")
+
+ p: button(type="submit") Add New Article
\ No newline at end of file
diff --git a/nodejs-mysql-tutorial/views/articles/show.jade b/nodejs-mysql-tutorial/views/articles/show.jade
new file mode 100644
index 0000000..169e46d
--- /dev/null
+++ b/nodejs-mysql-tutorial/views/articles/show.jade
@@ -0,0 +1,29 @@
+h1 #{user.name}
+
+ul
+ li Email: #{user.email}
+ li Age: #{user.age}
+ li Id: #{user._id}
+ li vi: #{user.__v}
+
+ ul
+ li: a(href="/users/#{user.name}/edit") Edit
+
+form(method="POST" , action="/users/#{user.name}")
+ p
+ input(type="hidden", name="_method" , value="DELETE")
+ p: button(type="submit") Delete
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/nodejs-mysql-tutorial/views/index.jade b/nodejs-mysql-tutorial/views/index.jade
new file mode 100644
index 0000000..752fffa
--- /dev/null
+++ b/nodejs-mysql-tutorial/views/index.jade
@@ -0,0 +1,6 @@
+extends layout
+
+block content
+ p Welcome to nodejs mysql tutorial
+ p
+ a(href='/users') Show All users
\ No newline at end of file
diff --git a/nodejs-mysql-tutorial/views/layout.jade b/nodejs-mysql-tutorial/views/layout.jade
new file mode 100644
index 0000000..1b7b305
--- /dev/null
+++ b/nodejs-mysql-tutorial/views/layout.jade
@@ -0,0 +1,7 @@
+doctype 5
+html
+ head
+ title= title
+ link(rel='stylesheet', href='/stylesheets/style.css')
+ body
+ block content
\ No newline at end of file
diff --git a/nodejs-mysql-tutorial/views/new.jade b/nodejs-mysql-tutorial/views/new.jade
new file mode 100644
index 0000000..7114d7a
--- /dev/null
+++ b/nodejs-mysql-tutorial/views/new.jade
@@ -0,0 +1,9 @@
+h1 Add new Article
+
+form(method="POST" , action="/users")
+ p FirstName:
+ input#title(type="text" , name="fname")
+ p LastName:
+ input#body(type="text" , name="lname")
+
+ p: button(type="submit") Add New User
\ No newline at end of file
diff --git a/nodejs-mysql-tutorial/views/users.jade b/nodejs-mysql-tutorial/views/users.jade
new file mode 100644
index 0000000..91f7d5c
--- /dev/null
+++ b/nodejs-mysql-tutorial/views/users.jade
@@ -0,0 +1,11 @@
+h1 Showing All Users
+
+ul
+ - each user in users
+ li User FirstName: #{user.fname}
+ li User LastName: #{user.lname}
+ hr
+
+a(href="users/new") Add New User
+br
+a(href="/") Home
\ No newline at end of file
diff --git a/nodejs-pdf-example-tutorial/app.js b/nodejs-pdf-example-tutorial/app.js
new file mode 100644
index 0000000..3570e28
--- /dev/null
+++ b/nodejs-pdf-example-tutorial/app.js
@@ -0,0 +1,93 @@
+
+/**
+ * Module dependencies.
+ */
+
+var express = require('express');
+var routes = require('./routes');
+var http = require('http');
+var path = require('path');
+var fs=require('fs');
+var PDFDocument = require('pdfkit');
+
+var app = express();
+
+// all environments
+app.set('port', process.env.PORT || 3000);
+app.set('views', path.join(__dirname, 'views'));
+app.set('view engine', 'jade');
+app.use(express.favicon());
+app.use(express.logger('dev'));
+app.use(express.json());
+app.use(express.urlencoded());
+app.use(express.methodOverride());
+app.use(app.router);
+app.use(express.static(path.join(__dirname, 'public')));
+
+// development only
+if ('development' == app.get('env')) {
+ app.use(express.errorHandler());
+}
+
+app.get('/', function(req,res){
+ doc = new PDFDocument;
+ doc.fontSize(15);
+ //Use "\n" for breaking
+ // Add Randam text to be added in our pdf
+ lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in suscipit purus.\n';
+ lorem +='Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus nec hendrerit felis. Morbi aliquam facilisis risus eu lacinia. Sed eu leo in turpis fringilla hendrerit.\n ';
+ lorem +=' \n Ut nec accumsan nisl. Suspendisse rhoncus nisl posuere tortor tempus et dapibus elit porta. Cras leo neque, elementum a rhoncus ut, vestibulum non nibh.Phasellus pretium justo turpis. Etiam vulputate, odio vitae tincidunt ultricies, eros odio dapibus nisi, ut tincidunt lacus arcu eu elit. Aenean velit erat, vehicula eget lacinia ut, dignissim non tellus. Aliquam nec lacus mi, sed vestibulum nunc. Suspendisse potenti. Curabitur vitae sem turpis. Vestibulum sed neque eget dolor dapibus porttitor at sit amet sem. Fusce a turpis lorem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;';
+ doc.text(lorem);
+ //Add a new page for benzier curve and is part of second page
+ doc.addPage();
+ doc.moveTo(100, 200)
+ .lineTo(100, 160)
+ .quadraticCurveTo(130, 200, 150, 120)
+ .bezierCurveTo(190, -40, 200, 200, 300, 150)
+ .lineTo(400, 90)
+ .stroke()
+ //This creates our third page
+ doc.addPage();
+
+ grad = doc.moveTo(200, 200).linearGradient(50, 0, 150, 100);
+ grad.stop(0, 'green').stop(1, 'red');
+ doc.rect(50, 0, 100, 100);
+ doc.fill(grad);
+
+ grad = doc.radialGradient(300, 50, 0, 300, 50, 50);
+ grad.stop(0, 'orange', 0).stop(1, 'orange', 1)
+ doc.circle(300, 50, 50);
+ doc.fill(grad);
+ //This creates our Fourth page
+ doc.addPage();
+ doc.save()
+ .moveTo(100, 150)
+ .lineTo(100, 250)
+ .lineTo(200, 250)
+ .fill("#FF3300")
+ doc.scale(0.6)
+ .translate(470, -380)
+ .path('M 250,75 L 323,301 131,161 369,161 177,301 z')
+ .fill('red', 'even-odd')
+ .restore()
+ //This creates our Fifth page
+ doc.addPage()
+ .fillColor("blue")
+ .text('Here is a link!', 100, 100)
+ .link(100, 100, 160, 27, 'http://google.com/');
+ doc.write("output.pdf");
+ res.writeHead(200, {"Content-Type": "text/html"});
+ res.write('