├── docs ├── favicon.ico ├── images │ ├── arrow.png │ ├── event1.jpg │ ├── event2.jpg │ ├── event3.jpg │ ├── logo.png │ ├── top-bg.jpg │ ├── top-bg.png │ ├── contact-bg.jpg │ ├── services-bg.jpg │ ├── shutterbug.jpg │ ├── clients │ │ ├── bower.png │ │ ├── grunt.png │ │ ├── opera.png │ │ ├── angular.png │ │ ├── buffer.png │ │ ├── codepen.png │ │ ├── dribbble.png │ │ ├── dropbox.png │ │ ├── envato.png │ │ ├── evernote.png │ │ ├── firefox.png │ │ ├── github.png │ │ ├── jQuery.png │ │ ├── joomla.png │ │ ├── magento.png │ │ ├── mozilla.png │ │ ├── pocket.png │ │ ├── spotify.png │ │ ├── messenger.png │ │ └── wordpress.png │ ├── sample-image.jpg │ ├── avatars │ │ ├── user-01.jpg │ │ ├── user-02.jpg │ │ ├── user-03.jpg │ │ ├── user-04.jpg │ │ └── user-05.jpg │ ├── ns-karachi-logo.png │ ├── portfolio │ │ ├── salad.jpg │ │ ├── minimalismo.jpg │ │ ├── shutterbug.jpg │ │ ├── skaterboy.jpg │ │ ├── yellowwall.jpg │ │ ├── architecture.jpg │ │ └── gallery │ │ │ ├── g-salad.jpg │ │ │ ├── g-minimalismo.jpg │ │ │ ├── g-shutterbug.jpg │ │ │ ├── g-skaterboy.jpg │ │ │ ├── g-yellowwall.jpg │ │ │ └── g-architecture.jpg │ ├── team │ │ ├── ahsan-ayaz.jpg │ │ └── kamran-qadri.jpg │ ├── node_school_event1.jpg │ ├── node_school_event2.jpg │ └── lightgallery │ │ ├── loading.gif │ │ ├── video-play.png │ │ ├── vimeo-play.png │ │ └── youtube-play.png ├── fonts │ ├── lightgallery │ │ ├── lg.eot │ │ ├── lg.ttf │ │ ├── lg.woff │ │ └── lg.svg │ ├── montserrat │ │ ├── montserrat-bold-webfont.woff │ │ ├── montserrat-bold-webfont.woff2 │ │ ├── montserrat-regular-webfont.woff │ │ └── montserrat-regular-webfont.woff2 │ └── librebaskerville │ │ ├── librebaskerville-bold-webfont.woff │ │ ├── librebaskerville-bold-webfont.woff2 │ │ ├── librebaskerville-italic-webfont.woff │ │ ├── librebaskerville-italic-webfont.woff2 │ │ ├── librebaskerville-regular-webfont.woff │ │ └── librebaskerville-regular-webfont.woff2 ├── css │ ├── micons │ │ ├── fonts │ │ │ ├── icomoon.eot │ │ │ ├── icomoon.ttf │ │ │ └── icomoon.woff │ │ └── micons.css │ ├── font-awesome │ │ └── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ ├── fonts.css │ └── base.css ├── inc │ └── sendEmail.php ├── readme.txt ├── js │ ├── modernizr.js │ ├── pace.min.js │ └── main.js └── styles.html ├── events └── meetup-2__rest-apis-workshop │ ├── workshop-content │ ├── 4-file-uploads-multer │ │ ├── tmp │ │ │ └── .gitkeep │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── config │ │ │ └── default.json │ │ ├── public │ │ │ └── favicon.ico │ │ ├── README.md │ │ ├── core │ │ │ ├── controllers │ │ │ │ └── files.js │ │ │ ├── routes │ │ │ │ └── files.js │ │ │ ├── middlewares │ │ │ │ └── files.js │ │ │ ├── app.js │ │ │ └── bin │ │ │ │ └── www │ │ ├── Dockerfile │ │ ├── package.json │ │ └── index.html │ ├── 1-node-express-mongodb │ │ ├── .gitignore │ │ ├── README.md │ │ ├── config │ │ │ ├── environment.js │ │ │ └── dbConnection.js │ │ ├── app │ │ │ ├── car │ │ │ │ ├── model.js │ │ │ │ ├── route.js │ │ │ │ └── controller.js │ │ │ └── app.js │ │ ├── app.js │ │ ├── package.json │ │ └── package-lock.json │ ├── 3-parsing-url-params │ │ ├── server │ │ │ ├── modules │ │ │ │ ├── index.js │ │ │ │ └── post │ │ │ │ │ ├── index.js │ │ │ │ │ ├── model.js │ │ │ │ │ ├── routes.js │ │ │ │ │ └── controller.js │ │ │ ├── config │ │ │ │ ├── middleware.js │ │ │ │ └── db.js │ │ │ └── index.js │ │ ├── app.js │ │ ├── README.md │ │ └── package.json │ └── 2-parsing-json-payload │ │ ├── views │ │ ├── error.ejs │ │ └── index.ejs │ │ ├── public │ │ ├── stylesheets │ │ │ └── style.css │ │ └── javascripts │ │ │ └── main.js │ │ ├── README.md │ │ ├── models │ │ └── user.js │ │ ├── routes │ │ ├── index.js │ │ └── users.js │ │ ├── config │ │ └── db.js │ │ ├── package.json │ │ ├── .gitignore │ │ ├── app.js │ │ ├── bin │ │ └── www │ │ └── package-lock.json │ └── media-assets │ └── cover.jpeg ├── README.md └── code-of-conduct.md /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/favicon.ico -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/4-file-uploads-multer/tmp/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/images/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/arrow.png -------------------------------------------------------------------------------- /docs/images/event1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/event1.jpg -------------------------------------------------------------------------------- /docs/images/event2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/event2.jpg -------------------------------------------------------------------------------- /docs/images/event3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/event3.jpg -------------------------------------------------------------------------------- /docs/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/logo.png -------------------------------------------------------------------------------- /docs/images/top-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/top-bg.jpg -------------------------------------------------------------------------------- /docs/images/top-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/top-bg.png -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/1-node-express-mongodb/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules -------------------------------------------------------------------------------- /docs/images/contact-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/contact-bg.jpg -------------------------------------------------------------------------------- /docs/images/services-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/services-bg.jpg -------------------------------------------------------------------------------- /docs/images/shutterbug.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/shutterbug.jpg -------------------------------------------------------------------------------- /docs/images/clients/bower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/bower.png -------------------------------------------------------------------------------- /docs/images/clients/grunt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/grunt.png -------------------------------------------------------------------------------- /docs/images/clients/opera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/opera.png -------------------------------------------------------------------------------- /docs/images/sample-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/sample-image.jpg -------------------------------------------------------------------------------- /docs/fonts/lightgallery/lg.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/fonts/lightgallery/lg.eot -------------------------------------------------------------------------------- /docs/fonts/lightgallery/lg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/fonts/lightgallery/lg.ttf -------------------------------------------------------------------------------- /docs/fonts/lightgallery/lg.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/fonts/lightgallery/lg.woff -------------------------------------------------------------------------------- /docs/images/avatars/user-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/avatars/user-01.jpg -------------------------------------------------------------------------------- /docs/images/avatars/user-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/avatars/user-02.jpg -------------------------------------------------------------------------------- /docs/images/avatars/user-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/avatars/user-03.jpg -------------------------------------------------------------------------------- /docs/images/avatars/user-04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/avatars/user-04.jpg -------------------------------------------------------------------------------- /docs/images/avatars/user-05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/avatars/user-05.jpg -------------------------------------------------------------------------------- /docs/images/clients/angular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/angular.png -------------------------------------------------------------------------------- /docs/images/clients/buffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/buffer.png -------------------------------------------------------------------------------- /docs/images/clients/codepen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/codepen.png -------------------------------------------------------------------------------- /docs/images/clients/dribbble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/dribbble.png -------------------------------------------------------------------------------- /docs/images/clients/dropbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/dropbox.png -------------------------------------------------------------------------------- /docs/images/clients/envato.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/envato.png -------------------------------------------------------------------------------- /docs/images/clients/evernote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/evernote.png -------------------------------------------------------------------------------- /docs/images/clients/firefox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/firefox.png -------------------------------------------------------------------------------- /docs/images/clients/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/github.png -------------------------------------------------------------------------------- /docs/images/clients/jQuery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/jQuery.png -------------------------------------------------------------------------------- /docs/images/clients/joomla.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/joomla.png -------------------------------------------------------------------------------- /docs/images/clients/magento.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/magento.png -------------------------------------------------------------------------------- /docs/images/clients/mozilla.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/mozilla.png -------------------------------------------------------------------------------- /docs/images/clients/pocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/pocket.png -------------------------------------------------------------------------------- /docs/images/clients/spotify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/spotify.png -------------------------------------------------------------------------------- /docs/images/ns-karachi-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/ns-karachi-logo.png -------------------------------------------------------------------------------- /docs/images/portfolio/salad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/portfolio/salad.jpg -------------------------------------------------------------------------------- /docs/images/team/ahsan-ayaz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/team/ahsan-ayaz.jpg -------------------------------------------------------------------------------- /docs/css/micons/fonts/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/css/micons/fonts/icomoon.eot -------------------------------------------------------------------------------- /docs/css/micons/fonts/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/css/micons/fonts/icomoon.ttf -------------------------------------------------------------------------------- /docs/css/micons/fonts/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/css/micons/fonts/icomoon.woff -------------------------------------------------------------------------------- /docs/images/clients/messenger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/messenger.png -------------------------------------------------------------------------------- /docs/images/clients/wordpress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/clients/wordpress.png -------------------------------------------------------------------------------- /docs/images/node_school_event1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/node_school_event1.jpg -------------------------------------------------------------------------------- /docs/images/node_school_event2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/node_school_event2.jpg -------------------------------------------------------------------------------- /docs/images/team/kamran-qadri.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/team/kamran-qadri.jpg -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/3-parsing-url-params/server/modules/index.js: -------------------------------------------------------------------------------- 1 | export * from './post'; -------------------------------------------------------------------------------- /docs/images/lightgallery/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/lightgallery/loading.gif -------------------------------------------------------------------------------- /docs/images/portfolio/minimalismo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/portfolio/minimalismo.jpg -------------------------------------------------------------------------------- /docs/images/portfolio/shutterbug.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/portfolio/shutterbug.jpg -------------------------------------------------------------------------------- /docs/images/portfolio/skaterboy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/portfolio/skaterboy.jpg -------------------------------------------------------------------------------- /docs/images/portfolio/yellowwall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/portfolio/yellowwall.jpg -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/4-file-uploads-multer/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | 3 | npm-debug.log -------------------------------------------------------------------------------- /docs/images/lightgallery/video-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/lightgallery/video-play.png -------------------------------------------------------------------------------- /docs/images/lightgallery/vimeo-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/lightgallery/vimeo-play.png -------------------------------------------------------------------------------- /docs/images/portfolio/architecture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/portfolio/architecture.jpg -------------------------------------------------------------------------------- /docs/images/lightgallery/youtube-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/lightgallery/youtube-play.png -------------------------------------------------------------------------------- /docs/images/portfolio/gallery/g-salad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/portfolio/gallery/g-salad.jpg -------------------------------------------------------------------------------- /docs/css/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/css/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/4-file-uploads-multer/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/* 2 | 3 | 4 | node_modules/* 5 | 6 | .vscode/* -------------------------------------------------------------------------------- /docs/images/portfolio/gallery/g-minimalismo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/portfolio/gallery/g-minimalismo.jpg -------------------------------------------------------------------------------- /docs/images/portfolio/gallery/g-shutterbug.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/portfolio/gallery/g-shutterbug.jpg -------------------------------------------------------------------------------- /docs/images/portfolio/gallery/g-skaterboy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/portfolio/gallery/g-skaterboy.jpg -------------------------------------------------------------------------------- /docs/images/portfolio/gallery/g-yellowwall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/portfolio/gallery/g-yellowwall.jpg -------------------------------------------------------------------------------- /docs/images/portfolio/gallery/g-architecture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/images/portfolio/gallery/g-architecture.jpg -------------------------------------------------------------------------------- /docs/css/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/css/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /docs/css/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/css/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /docs/css/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/css/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/montserrat/montserrat-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/fonts/montserrat/montserrat-bold-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/montserrat/montserrat-bold-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/fonts/montserrat/montserrat-bold-webfont.woff2 -------------------------------------------------------------------------------- /docs/css/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/css/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /docs/fonts/montserrat/montserrat-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/fonts/montserrat/montserrat-regular-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/montserrat/montserrat-regular-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/fonts/montserrat/montserrat-regular-webfont.woff2 -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/3-parsing-url-params/app.js: -------------------------------------------------------------------------------- 1 | require('babel-register'); 2 | require('babel-polyfill'); 3 | require('./server'); -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/media-assets/cover.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/events/meetup-2__rest-apis-workshop/media-assets/cover.jpeg -------------------------------------------------------------------------------- /docs/fonts/librebaskerville/librebaskerville-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/fonts/librebaskerville/librebaskerville-bold-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/librebaskerville/librebaskerville-bold-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/fonts/librebaskerville/librebaskerville-bold-webfont.woff2 -------------------------------------------------------------------------------- /docs/fonts/librebaskerville/librebaskerville-italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/fonts/librebaskerville/librebaskerville-italic-webfont.woff -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/4-file-uploads-multer/config/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "port": 3000, 4 | "reqTimeout": 300000 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /docs/fonts/librebaskerville/librebaskerville-italic-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/fonts/librebaskerville/librebaskerville-italic-webfont.woff2 -------------------------------------------------------------------------------- /docs/fonts/librebaskerville/librebaskerville-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/fonts/librebaskerville/librebaskerville-regular-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/librebaskerville/librebaskerville-regular-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/docs/fonts/librebaskerville/librebaskerville-regular-webfont.woff2 -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/1-node-express-mongodb/README.md: -------------------------------------------------------------------------------- 1 | nodeschool-workshop 2 | name: Muhammdad Bilal Alam 3 | slides: https://slides.com/bilalalam/deck#/ 4 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/1-node-express-mongodb/config/environment.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports={ 3 | port:3000, 4 | mongoUrl:"mongodb://localhost/test" 5 | }; -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/2-parsing-json-payload/views/error.ejs: -------------------------------------------------------------------------------- 1 |
<%= error.stack %>4 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/3-parsing-url-params/server/modules/post/index.js: -------------------------------------------------------------------------------- 1 | import Post from './model'; 2 | import PostRoutes from './routes'; 3 | 4 | export { 5 | PostRoutes, 6 | Post 7 | }; -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/3-parsing-url-params/README.md: -------------------------------------------------------------------------------- 1 | ## Parsing URL Params and sending back appropriate data 2 | 3 | ## Name: Tehseen Ahmed 4 | 5 | ## Slides: http://slides.com/tehseensiddiq/parsing-url-params -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/4-file-uploads-multer/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nodeschool/karachi/HEAD/events/meetup-2__rest-apis-workshop/workshop-content/4-file-uploads-multer/public/favicon.ico -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/2-parsing-json-payload/public/stylesheets/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding: 50px; 3 | font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; 4 | } 5 | 6 | a { 7 | color: #00B7FF; 8 | } 9 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/2-parsing-json-payload/README.md: -------------------------------------------------------------------------------- 1 | # Parsing JSON payload and saving data in MongoDB 2 | # nodeschool-workshop 3 | # Name: Adeel Hussain 4 | # Slides: https://slides.com/adeelhussain/parsing-data-and-save-into-mongodb/ 5 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/2-parsing-json-payload/models/user.js: -------------------------------------------------------------------------------- 1 | var mongoose = require('mongoose'); 2 | 3 | var UserSchema = new mongoose.Schema({ 4 | name: String, 5 | age: String 6 | }, { timestamps: true }); 7 | 8 | 9 | module.exports = mongoose.model('User', UserSchema); -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/4-file-uploads-multer/README.md: -------------------------------------------------------------------------------- 1 | ## Understanding and implementing File Uploads with multer 2 | 3 | Slides: https://slides.com/aitchkhan/express-file-upload 4 | 5 | Presenter: Haroon Khan 6 | 7 | 8 | #Express File Upload Using Multer with DiskStorage option -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/4-file-uploads-multer/core/controllers/files.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | fileUpload: fileUpload 3 | } 4 | 5 | function fileUpload (req, res, next) { 6 | res.json({ 7 | success: true, 8 | msg: 'file(s) upload successful' 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/3-parsing-url-params/server/config/middleware.js: -------------------------------------------------------------------------------- 1 | import bodyParser from 'body-parser'; 2 | import morgan from 'morgan'; 3 | 4 | export default app => { 5 | app.use(bodyParser.json()); 6 | app.use(bodyParser.urlencoded({ extended: false })); 7 | app.use(morgan('dev')); 8 | } -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/1-node-express-mongodb/app/car/model.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const Schema = mongoose.Schema; 4 | 5 | const carSchema = new Schema({ 6 | model:String, 7 | name:String, 8 | color:String 9 | }); 10 | 11 | module.exports = mongoose.model("Car",carSchema); -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/2-parsing-json-payload/routes/index.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET home page. */ 5 | router.get('/', function(req, res, next) { 6 | res.render('index', { title: 'Sending Payload and Saving into DB' }); 7 | }); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/1-node-express-mongodb/app/app.js: -------------------------------------------------------------------------------- 1 | // import all component's router 2 | var carRouter =require('./car/route'); 3 | 4 | /* expose a function that will take express object ( app ) as parameter and add all component's 5 | * router middlewares to the app object 6 | */ 7 | module.exports = (app)=>{ 8 | 9 | app.use('/car',carRouter); 10 | }; -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/4-file-uploads-multer/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:8 2 | 3 | #create app directory 4 | WORKDIR /usr/src/file-upload-node 5 | 6 | #install dependencies 7 | COPY package.json package-lock.json ./ 8 | 9 | RUN npm install 10 | 11 | #bundle app src 12 | COPY . . 13 | 14 | #Expose port 15 | EXPOSE 3000 16 | 17 | #Start server 18 | CMD [ "npm", "start" ] 19 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/2-parsing-json-payload/config/db.js: -------------------------------------------------------------------------------- 1 | var mongoose = require("mongoose"); 2 | 3 | var mongoUrl = 'mongodb://localhost/test'; 4 | 5 | module.exports = function () { 6 | mongoose.connect(mongoUrl); 7 | mongoose.connection 8 | .once('open', function () { 9 | console.log('MongoDB running'); 10 | }) 11 | .on('error', function (err) { 12 | console.log(err); 13 | }); 14 | }; 15 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/3-parsing-url-params/server/config/db.js: -------------------------------------------------------------------------------- 1 | import mongoose from 'mongoose'; 2 | 3 | const mongoUrl = 'mongodb://localhost/test'; 4 | 5 | export default () => { 6 | // establish db connection 7 | mongoose.connect(mongoUrl); 8 | mongoose.connection 9 | .once('open', function() { 10 | console.log('MongoDB running'); 11 | }) 12 | .on('error', function(err) { 13 | console.error(err); 14 | }); 15 | }; 16 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/1-node-express-mongodb/app/car/route.js: -------------------------------------------------------------------------------- 1 | // get component's controller 2 | const ctrl = require('./controller'); 3 | 4 | // get express module from the node_modules 5 | const express = require('express'); 6 | 7 | // express.Router returns a express Router middleware 8 | const router = express.Router(); 9 | 10 | // we add our own custom middleware in the above middleware 11 | router.post('/add',ctrl.insert); 12 | 13 | // we expose the router as a module 14 | module.exports = router; -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/3-parsing-url-params/server/modules/post/model.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | 3 | let postSchema = new mongoose.Schema({ 4 | title: { 5 | type: String, 6 | required: true 7 | }, 8 | description: { 9 | type: String, 10 | required: true 11 | }, 12 | category: { 13 | type: String, 14 | required: true 15 | }, 16 | subCategory: { 17 | type: String, 18 | required: true 19 | } 20 | }, { timestamps: true }); 21 | 22 | 23 | module.exports = mongoose.model('Post', postSchema); -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/3-parsing-url-params/server/modules/post/routes.js: -------------------------------------------------------------------------------- 1 | import { Router } from 'express'; 2 | import * as PostController from './controller'; 3 | 4 | const routes = new Router(); 5 | 6 | // Route for creating post 7 | routes.post('/post', PostController.createPost); 8 | 9 | // Route for getting all Posts 10 | routes.get('/post', PostController.getAllPosts); 11 | 12 | // Route for getting single Post with the help of Url Param 13 | routes.get('/post/:id/:test', PostController.getPost); 14 | 15 | export default routes; 16 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/1-node-express-mongodb/app.js: -------------------------------------------------------------------------------- 1 | 2 | // require installed packages 3 | const dbConnection=require('./config/dbConnection'); 4 | const config = require('./config/environment'); 5 | const express = require('express'); 6 | 7 | // connect with the database 8 | dbConnection(); 9 | 10 | // initiate express 11 | const app = express(); 12 | 13 | // c 14 | require('./app/app')(app); 15 | 16 | // start a server on port 3000 17 | app.listen(config.port,function(){ 18 | console.log('server up and running at port '+config.port); 19 | }) -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/2-parsing-json-payload/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "2-parsing-json-payload", 3 | "version": "1.0.0", 4 | "private": false, 5 | "author": { 6 | "name": "Adeel Hussain", 7 | "email": "mr.adi180@gmail.com" 8 | }, 9 | "scripts": { 10 | "start": "node ./bin/www" 11 | }, 12 | "dependencies": { 13 | "cookie-parser": "~1.4.3", 14 | "debug": "~2.6.9", 15 | "ejs": "~2.5.7", 16 | "express": "~4.16.0", 17 | "http-errors": "~1.6.2", 18 | "mongoose": "^5.0.13", 19 | "morgan": "~1.9.0" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/2-parsing-json-payload/.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | 8 | # dependencies 9 | /node_modules 10 | 11 | # IDEs and editors 12 | /.idea 13 | .project 14 | .classpath 15 | .c9/ 16 | *.launch 17 | .settings/ 18 | *.sublime-workspace 19 | 20 | # IDE - VSCode 21 | .vscode/* 22 | !.vscode/settings.json 23 | !.vscode/tasks.json 24 | !.vscode/launch.json 25 | !.vscode/extensions.json 26 | 27 | 28 | # System Files 29 | .DS_Store 30 | Thumbs.db 31 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/4-file-uploads-multer/core/routes/files.js: -------------------------------------------------------------------------------- 1 | const router = require('express').Router() 2 | const fileMiddleware = require('../middlewares/files') 3 | const fileController = require('../controllers/files') 4 | 5 | router.post('/single', fileMiddleware.uploadSingle(), fileController.fileUpload) 6 | router.post('/profilePic', fileMiddleware.uploadProfilePic(), fileController.fileUpload) 7 | router.post('/array', fileMiddleware.uploadArray(), fileController.fileUpload) 8 | router.post('/fields', fileMiddleware.uploadFields(), fileController.fileUpload) 9 | 10 | module.exports = router 11 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/1-node-express-mongodb/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nodeschool-workshop", 3 | "version": "1.0.0", 4 | "description": "nodeschool-workshop", 5 | "main": "app.js", 6 | "scripts": { 7 | "test": "node app.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/BilalAlam173/nodeschool-workshop.git" 12 | }, 13 | "author": "Bilal Alam", 14 | "license": "ISC", 15 | "bugs": { 16 | "url": "https://github.com/BilalAlam173/nodeschool-workshop/issues" 17 | }, 18 | "homepage": "https://github.com/BilalAlam173/nodeschool-workshop#readme", 19 | "dependencies": { 20 | "express": "^4.16.3", 21 | "mongoose": "^5.0.11" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/3-parsing-url-params/server/index.js: -------------------------------------------------------------------------------- 1 | // require installed packages 2 | import express from 'express'; 3 | 4 | import middlewareConfig from './config/middleware'; 5 | import dbConnect from './config/db'; 6 | import { PostRoutes } from './modules'; 7 | const port = '3000'; 8 | 9 | // db connection 10 | dbConnect(); 11 | 12 | // initiate express 13 | const app = express(); 14 | 15 | // middleware 16 | middlewareConfig(app); 17 | 18 | app.use('/api', [PostRoutes]); 19 | 20 | // render index page 21 | app.get('/', function(req, res, next) { 22 | res.send('Express REST API Application is running!'); 23 | }); 24 | 25 | // start a server on port 3000 26 | app.listen(port, function() { 27 | console.log('server up and running at port ' + port); 28 | }); 29 | -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/1-node-express-mongodb/app/car/controller.js: -------------------------------------------------------------------------------- 1 | // import the component's model 2 | const Car=require('./model'); 3 | 4 | // expose a set of operations 5 | module.exports = { 6 | 7 | insert : (req,res)=>{ 8 | // create a new instance of the model 9 | const car = new Car({ 10 | model:'2000', 11 | name:'Mehran', 12 | color:'purple' 13 | }); 14 | 15 | // call save funtion on that model's instance 16 | car.save((err)=>{ 17 | if(err){ 18 | // return error 19 | res.status(500).json({message :"something went wrong"}); 20 | }else{ 21 | // return success 22 | res.status(200).json({message:"car added successfully"}); 23 | } 24 | 25 | }); 26 | } 27 | } -------------------------------------------------------------------------------- /events/meetup-2__rest-apis-workshop/workshop-content/3-parsing-url-params/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nodeschool-workshop", 3 | "version": "1.0.0", 4 | "description": "usage of URl and Query Params in nodejs", 5 | "main": "app.js", 6 | "scripts": { 7 | "start": "nodemon app.js" 8 | }, 9 | "repository": "https://github.com/ahmedtehseen/nodeschool-workshop.git", 10 | "author": "ahmedtehseen
Welcome to 20 | <%= title %> 21 |
22 | 23 | 24 | 25 | 26 | 27 |Lorem ipsum Officia elit ad tempor dolore est ex incididunt incididunt occaecat culpa deserunt sunt labore in cillum ullamco magna in Excepteur consequat in reprehenderit proident mollit incididunt officia commodo. 169 | Duis ea officia sed dolor pariatur enim dolore dolore quis incididunt nulla exercitation commodo veniam et ea incididunt.
170 | 171 |
182 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec libero. Suspendisse bibendum.Cras id urna. Morbi tincidunt, orci ac convallis aliquam, lectus turpis varius lorem, eu posuere nunc justo tempus leo. Donec mattis, purus nec placerat bibendum, dui pede condimentum odio, ac blandit ante orci ut diam. Cras fringilla magna. Phasellus suscipit, leo a pharetra condimentum, lorem tellus eleifend magna, eget fringilla velit magna id neque posuere nunc justo tempus leo.
185 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec libero. Suspendisse bibendum. Cras id urna. Morbi tincidunt, orci ac convallis aliquam, lectus turpis varius lorem, eu posuere nunc justo tempus leo. Donec mattis, purus nec placerat bibendum, dui pede condimentumodio, ac blandit ante orci ut diam. 186 |
187 | 188 |A link,
189 | abbrebation,
190 | strong text,
191 | em text,
192 | deleted text, and
193 | this is a mark text.
194 | .code
195 |
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, 204 | there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the 205 | Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. Morbi tincidunt, orci ac convallis aliquam, lectus turpis varius lorem, eu posuere nunc justo tempus leo. Donec mattis, purus nec placerat bibendum, dui pede condimentum odio, ac blandit ante orci ut diam. Cras fringilla magna. Phasellus suscipit, leo a pharetra condimentum, lorem tellus eleifend magna, eget fringilla velit magna id neque. 206 |
207 | 208 |Buy one widget, get one free! 211 | (While supplies last. Offer expires on the vernal equinox. Not valid in Ohio.) 212 |
213 | 214 |240 |248 | 249 |Your work is going to fill a large part of your life, and the only way to be truly satisfied is 241 | to do what you believe is great work. And the only way to do great work is to love what you do. 242 | If you haven't found it yet, keep looking. Don't settle. As with all matters of the heart, you'll know when you find it. 243 |
244 | 245 | Steve Jobs 246 | 247 |
250 |253 | 254 |Good design is as little design as possible.
251 | Dieter Rams 252 |
dl.dt may be followed by multiple dds.312 | Primary Button 313 | Default Button 314 |
315 | 316 |
Be sure to use properly formed table markup with <thead> and <tbody> when building a table.
| Name | 373 |Age | 374 |Sex | 375 |Location | 376 |
|---|---|---|---|
| Naruto Uzumaki | 381 |16 | 382 |Male | 383 |Konoha | 384 |
| Sakura Haruno | 387 |16 | 388 |Female | 389 |Konoha | 390 |
Quisque velit nisi, pretium ut lacinia in, elementum id enim. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi.
481 |
546 | 1600 Amphitheatre Parkway
547 | Mountain View, CA
548 | 94043 US
549 |
555 | someone@infinitysite.com
556 | info@infinitysite.com
557 |
563 | Phone: (+63) 555 1212
564 | Mobile: (+63) 555 0100
565 | Fax: (+63) 555 0101
566 |