SlideShare a Scribd company logo
METEOR FOR DOERS
URBANINNOVATORS.ORG
{VEGASJS}
TEXT
GOALS
▸ To help you prototype your first app by:
▸ understanding how to go from idea to prototype
▸ understanding basic web architecture
▸ understanding basic javascript
▸ understanding the basics of meteor framework
▸ learning a few basic design patterns
APP
ARCHITECTURE
CLIENT SERVER
HTML
CSS JavaScript
Request
Response
Web App
File System Database
▸ Your job is to use a programming language
to get the client to talk to the server
METEOR.JS
CORE
COMPETENCIES
BUILDING AN APP
bit.ly/M4DCOMP
JAVASCRIPT
JAVASCRIPT
BASIC CONCEPTS
▸ {} - object
▸ . - Property accessors provide
access to an object's properties by
using the dot notation or the
bracket notation
▸ =, ==, ===
▸ ( )
▸ var - A stored variable item
JAVASCRIPT
VAR
▸ stores a value for later
var x = 1;
keyword
operator
end statement
JAVASCRIPT
BASIC CONCEPTS
▸ global scope
▸ let - new to ECMA2015
▸ loop
▸ this - current data in iteration
▸ functions - Subprogram that can be
called by code. Group of instructions
▸ events
▸ click
▸ target
JAVASCRIPT
FUNCTION
▸ group of statements
function sayHi ( name, age ) {
console.log( “Hi “ + name + “ you
are “ + age );
}
sayHi( “Jayde”, 13);
JAVASCRIPT
OBJECT
▸ key value store
{
keyword : “article“,
description : “section of html“,
type : “html“,
saved : false,
creator: Meteor.userId()
}
JAVASCRIPT
IF / ELSE
▸ decision making
if ( num1 > num2 ) {
console.log( “The fist number is larger“ );
} else {
console.log( “The second number is larger“ );
}
is this true?
JAVASCRIPT
COMMON ERRORS
▸ syntax
▸ missing punctuation
▸ missing quotation marks
▸ misspelling commands
CHECK THE DOCS
WHEN IN DOUBT
Javascript Reference
METEOR.JS
FRAMEWORK
CLIENT SERVER
HTML
CSS JavaScript
Request
Response
Web App
File System Database
▸ Your job is to use a programming language
to get the client to talk to the server
CLIENT SERVER
HTML
CSS JavaScript
Request
DDP
Web App
File System Database
{{> templateName}}
<h3> {{ keyword}} </h3>
Templates
MiniMongo
Local Storage
Node.js
MongoDB
Collections
JavaScript
MongoDB
/posts/34.html
Publications
Terminal
$ meteor _____
METEOR.JS
METEOR.JS
WHAT DO YOU GET
▸ A whole host of function and methods to build your app faster:
▸ Templates & Helpers - Spacebars, React, Angular
▸ Accounts - {{> loginButtons}}, Meteor.userId, currentUser
▸ Publish & Subscribe
▸ Mongo Collections
▸ Packages - atmospherejs.com
▸ Command Line helpers
METEOR.JS
CREATE A NEW PROJECT
▸ terminal
$ meteor create keywords
CHECK THE DOCS
WHEN IN DOUBT
docs.meteor.com
PROCESS
STRUCTURE
Templates
Actions
Events
Save to DB
Collections
.insert( ) | .update( ) |
Display
Publish | Subscribe
APP DESIGN &
PLANNING
PROCESS
USER STORY
UX / UI DESIGN
DATA MODEL
WHAT DO YOU WANT TO
BUILD?
APP DESIGN & PLANNING
USER STORY
Structure your idea by
creating a user story
detailing every interaction
and goal the user
experiences
TEXT
APP DESIGN & PLANNING
THINGS TO CONSIDER
▸ Program one feature at a time
▸ Where is the interaction shown?
▸ What feedback does the user receive?
▸ What triggers it?
▸ Does it need to be saved?
▸ What happens if/when it fails what else should happen?
▸ Animations / user experience
▸ Who has access?
▸ What happens if…
▸ 5Ws
APP DESIGN & PLANNING
USER STORY: APP THAT STORES CODE SNIPPETS TO LEARN
▸ Monica is looking to learn to code. All the words look
confusing to her and the programming language
documents (or docs) are difficult to understand out of
context. She is looking for a resource where she can learn
what things mean easily.
▸ Monica finds Keywerd
APP DESIGN & PLANNING - UX
USER STORY: APP THAT STORES CODE SNIPPETS TO LEARN
▸ On the front page she see's a list of keywords in panels
with their:
▸ Definition
▸ Code snippet
▸ Person who created
▸ Number of people who saved for practice
APP DESIGN & PLANNING - UX
USER STORY: APP THAT STORES CODE SNIPPETS TO LEARN
▸ In the upper right corner there is a login button
▸ She registers with her email and password
▸ Maybe options for github and/or twitter
APP DESIGN & PLANNING - UX
USER STORY: APP THAT STORES CODE SNIPPETS TO LEARN
▸ Once she's logged in she is able to:
▸ Create a keyword
▸ Save a keyword for practice
▸ See her keywords
▸ See her keywords for practice
▸ See completed practiced keywords
▸ Mark saved keywords complete after practice
▸ Logout
UX / UI DESIGN
Structure your features by
showing visually how a
user would interact with the
software
MARVEL
FIRST RUN.
DID I INCLUDE ALL OF
THE FEATURES FROM
MY USER STORY?
DATA MODEL
Structure your software by
what pieces of information
it needs to remember and
analyze.
WORKFLOWY
APP DESIGN & PLANNING - UX
USER STORY: APP THAT STORES CODE SNIPPETS TO LEARN
▸ On the front page she see's a list of keywords in panels
with their:
▸ Definition
▸ Code snippet
▸ Person who created
▸ Number of people who saved for practice
FIRST RUN.
IF I CREATED A FORM,
WHAT FIELDS WOULD I
WANT TO HAVE?
WORKFLOWY
BIT.LY/M4DJS
GO TO:
METEOR.JS
PROCESS
STRUCTURE
Templates
Actions
Events
Save to DB
Collections
.insert( ) | .update( ) |
Display
Publish | Subscribe
PROCESS
STRUCTURE
Templates
Actions
Events
Save to DB
Collections
.insert( ) | .update( ) |
Display
Publish | Subscribe
HTML
< > </ >
CSS
. { : ; }
METEOR.JS
ADD PACKAGES - ATMOSPHEREJS.COM
▸ terminal
$ meteor add twbs:bootstrap
$ meteor add jquery
CLIENT SERVER
HTML
CSS JavaScript
Request
DDP
Web App
File System Database
{{> templateName}}
<h3> {{ keyword}} </h3>
Templates
MiniMongo
Local Storage
Node.js
MongoDB
Collections
JavaScript
MongoDB
/posts/34.html
Publications
Terminal
$ meteor _____
PROCESS
STRUCTURE
Templates
Actions
Events
Save to DB
Collections
.insert( ) | .update( ) |
Display
Publish | Subscribe
JS
( ) { }
HTML
< > </ >
Build out features
APP DESIGN & PLANNING - UX
USER STORY: APP THAT STORES CODE SNIPPETS TO LEARN
▸ On the front page she see's a list of keywords in panels
with their:
▸ Definition
▸ Code snippet
▸ Person who created
▸ Number of people who saved for practice
APP DESIGN & PLANNING - UX
USER STORY: APP THAT STORES CODE SNIPPETS TO LEARN
▸ In the upper right corner there is a login button
▸ She registers with her email and password
▸ Maybe options for github and/or twitter
APP DESIGN & PLANNING - UX
USER STORY: APP THAT STORES CODE SNIPPETS TO LEARN
▸ Once she's logged in she is able to:
▸ Create a keyword
▸ Save a keyword for practice
▸ See her keywords
▸ See her keywords for practice
▸ See completed practiced keywords
▸ Mark saved keywords complete after practice
▸ Logout
PROCESS
STRUCTURE
Templates
Actions
Events
Save to DB
Collections
.insert( ) | .update( ) |
Display
Publish | Subscribe
JS
( ) { }
Save to the Database
CLIENT SERVER
HTML
CSS JavaScript
Request
DDP
Web App
File System Database
{{> templateName}}
<h3> {{ keyword}} </h3>
Templates
MiniMongo
Local Storage
Node.js
MongoDB
Collections
JavaScript
MongoDB
/posts/34.html
Publications
Terminal
$ meteor _____
MONGODB
JS
( ) { }
METEOR
CREATE A
COLLECTION
METEOR.JS
CREATE A COLLECTION
▸ Keywerds = new Mongo.Collection(“keywerds”);
MONGODB
DATA MODEL
{
keyword: string
definition: string
link to docs: string
type: [
css,
html
meteor
javascript
mongo
programming werd
],
example code: string
save: boolean
practiced: boolean
date added: Date
}
MONGODB
DATA MODEL {
keyword: “Template.myTemplate.events()”,
definition: Specify event handlers for this template.
link to docs: “http://docs.meteor.com/#/full/...”,
type: [meteor],
example code: string,
}
MONGODB
DATA MODEL
{
keyword: “Template.myTemplate.events()”,
definition: ”Specify event handlers for this template.” ,
link to docs: “http://docs.meteor.com/#/full/template_events”,
type: [meteor],
example code: string,
save: true,
practiced: false,
date added: Date,
user: “user id” Meteor.userId();
}
MONGOLDB
CRUD FUNCTIONS
▸ Collection.insert( );
▸ Collection.update( );
▸ Collection.delete( );
METEOR.JS
INSERTING TO THE DB
▸ stores a value for later
Keywerds.insert({
keywerd: keywerd,
definition: definition,
snippet: snippet
});
var keywerd = event.target.keywerd.value;
var definition = event.target.definition.value;
var snippet = event.target.snippet.value;
Pull data from the form Save to the Database
PROCESS
STRUCTURE
Templates
Actions
Events
Save to DB
Collections
.insert( ) | .update( ) |
Display
Publish | Subscribe
JS
( ) { }
Save to the Database
HTML
< > </ >
METEOR.JS
HELPERS
Template.panel.helpers({
keywerds: function() {
return Keywerds.find();
}
})
}
METEOR.JS
DEPLOY
▸ terminal
$ meteor deploy appname.meteor.com
WRAPPING UP
RESOURCES
▸ docs.meteor.com
▸ Youtube:
▸ Meteor
▸ Josh Owens
▸ theMeteorChef.com
▸ Differential Blog
▸ crater.io
PROTOTYPE
FASTER!
gum.co/meteorcheatsheet
UrbanInnovators.com

More Related Content

What's hot

Google app engine - Overview
Google app engine - OverviewGoogle app engine - Overview
Google app engine - Overview
Nathan Quach
 
What is Google App Engine
What is Google App EngineWhat is Google App Engine
What is Google App Engine
Chris Schalk
 

What's hot (20)

Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Meteor js
Meteor jsMeteor js
Meteor js
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 
Google App Engine tutorial
Google App Engine tutorialGoogle App Engine tutorial
Google App Engine tutorial
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Cloud Computing Bootcamp On The Google App Engine v1.2.1
Cloud Computing Bootcamp On The Google App Engine v1.2.1Cloud Computing Bootcamp On The Google App Engine v1.2.1
Cloud Computing Bootcamp On The Google App Engine v1.2.1
 
Vaadin NYC Meetup
Vaadin NYC MeetupVaadin NYC Meetup
Vaadin NYC Meetup
 
Vaadin codemotion 2014
Vaadin codemotion 2014Vaadin codemotion 2014
Vaadin codemotion 2014
 
Vaadin 7 by Joonas Lehtinen
Vaadin 7 by Joonas LehtinenVaadin 7 by Joonas Lehtinen
Vaadin 7 by Joonas Lehtinen
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with Python
 
Google app engine - Overview
Google app engine - OverviewGoogle app engine - Overview
Google app engine - Overview
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 
Google App Engine: An Introduction
Google App Engine: An IntroductionGoogle App Engine: An Introduction
Google App Engine: An Introduction
 
Google App Engine (Introduction)
Google App Engine (Introduction)Google App Engine (Introduction)
Google App Engine (Introduction)
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Introduction to Firebase [Google I/O Extended Bangkok 2016]
Introduction to Firebase [Google I/O Extended Bangkok 2016]Introduction to Firebase [Google I/O Extended Bangkok 2016]
Introduction to Firebase [Google I/O Extended Bangkok 2016]
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
What is Google App Engine?
What is Google App Engine?What is Google App Engine?
What is Google App Engine?
 
Bucruiser ppt
Bucruiser pptBucruiser ppt
Bucruiser ppt
 
What is Google App Engine
What is Google App EngineWhat is Google App Engine
What is Google App Engine
 

Similar to Meteor.js for DOers

App engine devfest_mexico_10
App engine devfest_mexico_10App engine devfest_mexico_10
App engine devfest_mexico_10
Chris Schalk
 
Android crash course
Android crash courseAndroid crash course
Android crash course
Showmax Engineering
 
Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)
Oro Inc.
 

Similar to Meteor.js for DOers (20)

MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
 
Create an application with ember
Create an application with ember Create an application with ember
Create an application with ember
 
Google Apps Script for Beginners- Amazing Things with Code
Google Apps Script for Beginners- Amazing Things with CodeGoogle Apps Script for Beginners- Amazing Things with Code
Google Apps Script for Beginners- Amazing Things with Code
 
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch TutorialMongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
 
ASP.NET Core For The Agile Enterprise
ASP.NET Core For The Agile EnterpriseASP.NET Core For The Agile Enterprise
ASP.NET Core For The Agile Enterprise
 
Little Opinions, Big Possibilities: The Tools and Patterns for Building Larg...
 Little Opinions, Big Possibilities: The Tools and Patterns for Building Larg... Little Opinions, Big Possibilities: The Tools and Patterns for Building Larg...
Little Opinions, Big Possibilities: The Tools and Patterns for Building Larg...
 
Meteor.js Workshop by Dopravo
Meteor.js Workshop by DopravoMeteor.js Workshop by Dopravo
Meteor.js Workshop by Dopravo
 
App engine devfest_mexico_10
App engine devfest_mexico_10App engine devfest_mexico_10
App engine devfest_mexico_10
 
Build a notepad application with PHP, MongoDB, and IBM Bluemix - by Vikram Va...
Build a notepad application with PHP, MongoDB, and IBM Bluemix - by Vikram Va...Build a notepad application with PHP, MongoDB, and IBM Bluemix - by Vikram Va...
Build a notepad application with PHP, MongoDB, and IBM Bluemix - by Vikram Va...
 
Open event presentation.3 2
Open event presentation.3 2Open event presentation.3 2
Open event presentation.3 2
 
Multi-tenancy with Rails
Multi-tenancy with RailsMulti-tenancy with Rails
Multi-tenancy with Rails
 
Final ppt
Final pptFinal ppt
Final ppt
 
Wordpress as a framework
Wordpress as a frameworkWordpress as a framework
Wordpress as a framework
 
React django
React djangoReact django
React django
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
Android crash course
Android crash courseAndroid crash course
Android crash course
 
How to Implement Micro Frontend Architecture using Angular Framework
How to Implement Micro Frontend Architecture using Angular FrameworkHow to Implement Micro Frontend Architecture using Angular Framework
How to Implement Micro Frontend Architecture using Angular Framework
 
Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)
 
ASP.NET MVC3 RAD
ASP.NET MVC3 RADASP.NET MVC3 RAD
ASP.NET MVC3 RAD
 
MongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB.local Atlanta: MongoDB Stitch TutorialMongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB.local Atlanta: MongoDB Stitch Tutorial
 

Recently uploaded

Recently uploaded (20)

Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdf
 

Meteor.js for DOers