SlideShare a Scribd company logo
1 of 39
Download to read offline
What’s that? 
Full stack pure JS framework for 
building awesome apps in no time.
What’s inside? 
- MongoDB 
- Node JS 
- lots of packages 
- ...
Why is Meteor awesome? 
- Installation as simple as it can be 
- Build reactive(???) apps in no time 
- Build mobile(???) apps in no time 
- Deployment using 1 command
First things first 
Installing meteor takes a few seconds: 
curl https://install.meteor.com/ | sh
First things first 
Creating new app also takes couple of 
seconds 
meteor create app-name
What’s next? 
- Adding packages https://atmospherejs.com/ 
- Building your application 
- Deploying to server 
- Enjoying the app created in less than a day
Packages 
- Adding packages was made real simple just find your 
desired package and type meteor add <package> 
- There are some useful packaged that are required 
almost in every app: accounts-base, jquery, less 
- meteor remove to remove package 
- meteor list to list all added packages
Meteor app structure 
Basically it is up to you, but meteor has some 
standards anyways. 4 main entities: 
- lib 
- client 
- server 
- public
Meteor app structure 
- For code accessed both from server and 
client side these can be used 
Meteor.isClient and Meteor.isServer
Meteor templates 
- Uses Blaze template 
engine 
- Basically looks like this : 
- Forget about random 
logic in templates. 
- Everything happens with 
helpers
Meteor template helpers 
- Helpers help to store logic outside of templates making 
them super readable 
Template with name ‘user_view’ 
Helper
Meteor template helpers 
So basically this won’t work 
but 
+ will work 
Isn’t it a bit complicated?
Meteor template events 
- Events are assigned to elements only in 
particular template. 
- Structure similar to helpers
Meteor collections 
- Collections are defined really simple 
MyCollection = new Meteor.Collection('collection-name-in-mongo') 
- After that MyCollection.[insert|update|remove] methods 
are available both from client and server side. They can 
basically be fired by any user from console in browser 
(WHAT?)
Meteor collections 
“OMG Meteor must be so insecure if it lets 
anyone to fire insert events into database 
#notGonnaUseIt”
Meteor collections 
- “autopublish” and “insecure” - why these two 
packages are needed? 
- Both should be disabled in production 
- Publications and Subscriptions should be 
used.
Publications and Subscriptions 
Simple : publication describes what data user 
will be allowed to read from Mongo collection, 
and subscription subscribes to that data.
Publications and Subscriptions
Calling Meteor methods securely 
Client side 
Server side
Meteor as MVC framework? 
- This is actually possible to have javascript 
MVC framework. 
- meteor add iron:router 
- How does it work?
Meteor as MVC framework? 
Set global configs 
Define route 
Check out this great tutorial. It has basically everything you need to know in it: 
http://manuel-schoebel.com/blog/iron-router-tutorial
How to use iron router controller? 
Actions before 
Waiting for data 
from Mongo 
Data returned to 
view (defined in 
routes.js)
How to use iron router controller? 
ID passed from controller as data 

Recap 
So what do we have now? 
- can create new app 
- can create app structure 
- can create some views 
- can create collections 
- can create routes to views 
- Can we create a simple app?
Let’s create simple chat app 
1. meteor create chat-app 
2. Let’s add necessary 
packages 
a. meteor add accounts-facebook 
b. meteor add iron:router 
3. Lets think about this simple 
app structure
Let’s create simple chat app 
Let’s start with collections
Let’s create simple chat app 
Let’s add secure chat 
message add method. 
As we can see non-logged 
in user won’t able 
to post messages.
Let’s create simple chat app 
Let’s start with collections 
Here we have only subscription and 
publication. Usually they’re kept under 
publications on server.
Let’s create simple chat app 
Let’s define a route to our chat view (which will 
be created) (client/routes.js) | (client/controllers/ChatController.js)
Let’s create simple chat app 
We’ll need to create real simple template for 
our app (client/templates/chat/chat.html)
Let’s create simple chat app 
Binding events 
/ helpers to 
elements 
(client/templates/chat/ch 
at.js)
Let’s create simple chat app 
And that’s basically it. 
Apply some designs 
and enjoy your real 
time reactive chat app.
Deploy to server 
Two approaches known to me 
- use <appname>.meteor.com (if it is still free) 
- use your own server with MongoDB/node/.. 
- use Meteor-up (mup package)
Deploy to server 
The one I used is mup. Install it with 
npm install -g mup 
After install just “mup init” and change config in 
mup.json to match your setup. Full docs https: 
//github.com/arunoda/meteor-up
Is there anything else I can do? 
There’s one more cool feature in meteor that 
should be mentioned. It can wrap your web 
application (such as this simple chat) and 
create a mobile APP just with couple of 
commands.
Why do I need that? 
Q: Isn’t it better to write a native application? 
A: Well, probably. But if you are short on 
resources or just lazy you can use this option, 
basically it is the same as opening your web 
page in browser.
And thats it? 
Q: Simple wrapper for full screen browser? 
A: Yes and no. Meteor has access to almost all 
phone’s functions through Cordova plugins 
from Apache. http://plugins.cordova.io/#/
To wrap up 
- fast 
- easy development/prototyping 
- pure javascript 
- full stack 
- reactive 
- has lots of packages 
- easily portable to mobile platforms

More Related Content

What's hot

Module design pattern i.e. express js
Module design pattern i.e. express jsModule design pattern i.e. express js
Module design pattern i.e. express jsAhmed Assaf
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introductionRasheed Waraich
 
Introduction to jest
Introduction to jestIntroduction to jest
Introduction to jestpksjce
 
Adobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer IntroductionAdobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer IntroductionYash Mody
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 Yong Joon Moon
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - CoreDzmitry Naskou
 
[125]웹 성능 최적화에 필요한 브라우저의 모든 것
[125]웹 성능 최적화에 필요한 브라우저의 모든 것[125]웹 성능 최적화에 필요한 브라우저의 모든 것
[125]웹 성능 최적화에 필요한 브라우저의 모든 것NAVER D2
 
Hardware Acceleration in WebKit
Hardware Acceleration in WebKitHardware Acceleration in WebKit
Hardware Acceleration in WebKitJoone Hur
 
Emerging 3D Scanning Technologies for PropTech
Emerging 3D Scanning Technologies for PropTechEmerging 3D Scanning Technologies for PropTech
Emerging 3D Scanning Technologies for PropTechPetteriTeikariPhD
 

What's hot (20)

Jenkins
JenkinsJenkins
Jenkins
 
Module design pattern i.e. express js
Module design pattern i.e. express jsModule design pattern i.e. express js
Module design pattern i.e. express js
 
Node.js
Node.jsNode.js
Node.js
 
Pwa.pptx
Pwa.pptxPwa.pptx
Pwa.pptx
 
Progressive Web App
Progressive Web AppProgressive Web App
Progressive Web App
 
Angular 9
Angular 9 Angular 9
Angular 9
 
The WebKit project
The WebKit projectThe WebKit project
The WebKit project
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introduction
 
Web workers
Web workersWeb workers
Web workers
 
Introduction to jest
Introduction to jestIntroduction to jest
Introduction to jest
 
Introduction Node.js
Introduction Node.jsIntroduction Node.js
Introduction Node.js
 
Adobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer IntroductionAdobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer Introduction
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
PWA
PWAPWA
PWA
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
 
[125]웹 성능 최적화에 필요한 브라우저의 모든 것
[125]웹 성능 최적화에 필요한 브라우저의 모든 것[125]웹 성능 최적화에 필요한 브라우저의 모든 것
[125]웹 성능 최적화에 필요한 브라우저의 모든 것
 
Hardware Acceleration in WebKit
Hardware Acceleration in WebKitHardware Acceleration in WebKit
Hardware Acceleration in WebKit
 
Emerging 3D Scanning Technologies for PropTech
Emerging 3D Scanning Technologies for PropTechEmerging 3D Scanning Technologies for PropTech
Emerging 3D Scanning Technologies for PropTech
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
An Intro into webpack
An Intro into webpackAn Intro into webpack
An Intro into webpack
 

Viewers also liked

Meteorites and Meteoroids
Meteorites and MeteoroidsMeteorites and Meteoroids
Meteorites and Meteoroidsangelothumbs
 
Meteor, meteoroid and meteorites
Meteor, meteoroid and meteoritesMeteor, meteoroid and meteorites
Meteor, meteoroid and meteoritesJan Del Rosario
 
Meteor intro-2015
Meteor intro-2015Meteor intro-2015
Meteor intro-2015MeteorJS
 
Comets, Asteroids, And Meteors
Comets, Asteroids, And MeteorsComets, Asteroids, And Meteors
Comets, Asteroids, And MeteorsTeach5ch
 
Asteroids Powerpoint
Asteroids PowerpointAsteroids Powerpoint
Asteroids Powerpointguest47fc90
 
Lessons Learned About MeteorJS
Lessons Learned About MeteorJSLessons Learned About MeteorJS
Lessons Learned About MeteorJSAlmog Koren
 
Meteorjs - Futuristic web framework
Meteorjs - Futuristic web frameworkMeteorjs - Futuristic web framework
Meteorjs - Futuristic web frameworkTomáš Hromník
 
Meteor Rails-2015
Meteor Rails-2015Meteor Rails-2015
Meteor Rails-2015MeteorJS
 
Comets, asteroids & meteors
Comets, asteroids & meteorsComets, asteroids & meteors
Comets, asteroids & meteorsMarni Bunda
 
Other members of solar system
Other members of solar system Other members of solar system
Other members of solar system anjalik1804
 
Meteor um overview sobre a plataforma
Meteor   um overview sobre a plataformaMeteor   um overview sobre a plataforma
Meteor um overview sobre a plataformaCaio Ribeiro Pereira
 
Scaling a MeteorJS SaaS app on AWS
Scaling a MeteorJS SaaS app on AWSScaling a MeteorJS SaaS app on AWS
Scaling a MeteorJS SaaS app on AWSBrett McLain
 
Total Internal Reflection & Dispersion
Total Internal Reflection & DispersionTotal Internal Reflection & Dispersion
Total Internal Reflection & DispersionGrecia Falzon
 
Building a production ready meteor app
Building a production ready meteor appBuilding a production ready meteor app
Building a production ready meteor appRitik Malhotra
 

Viewers also liked (20)

Presentation .- meteors
Presentation  .- meteorsPresentation  .- meteors
Presentation .- meteors
 
Meteorites and Meteoroids
Meteorites and MeteoroidsMeteorites and Meteoroids
Meteorites and Meteoroids
 
Meteor, meteoroid and meteorites
Meteor, meteoroid and meteoritesMeteor, meteoroid and meteorites
Meteor, meteoroid and meteorites
 
Meteor intro-2015
Meteor intro-2015Meteor intro-2015
Meteor intro-2015
 
Meteor
MeteorMeteor
Meteor
 
Comets, Asteroids, And Meteors
Comets, Asteroids, And MeteorsComets, Asteroids, And Meteors
Comets, Asteroids, And Meteors
 
Asteroids Powerpoint
Asteroids PowerpointAsteroids Powerpoint
Asteroids Powerpoint
 
Lessons Learned About MeteorJS
Lessons Learned About MeteorJSLessons Learned About MeteorJS
Lessons Learned About MeteorJS
 
Meteoroids
MeteoroidsMeteoroids
Meteoroids
 
Meteor
MeteorMeteor
Meteor
 
Meteorjs - Futuristic web framework
Meteorjs - Futuristic web frameworkMeteorjs - Futuristic web framework
Meteorjs - Futuristic web framework
 
Meteor Rails-2015
Meteor Rails-2015Meteor Rails-2015
Meteor Rails-2015
 
Comets, asteroids & meteors
Comets, asteroids & meteorsComets, asteroids & meteors
Comets, asteroids & meteors
 
Other members of solar system
Other members of solar system Other members of solar system
Other members of solar system
 
Meteor um overview sobre a plataforma
Meteor   um overview sobre a plataformaMeteor   um overview sobre a plataforma
Meteor um overview sobre a plataforma
 
Scaling a MeteorJS SaaS app on AWS
Scaling a MeteorJS SaaS app on AWSScaling a MeteorJS SaaS app on AWS
Scaling a MeteorJS SaaS app on AWS
 
Total Internal Reflection & Dispersion
Total Internal Reflection & DispersionTotal Internal Reflection & Dispersion
Total Internal Reflection & Dispersion
 
Building a production ready meteor app
Building a production ready meteor appBuilding a production ready meteor app
Building a production ready meteor app
 
Understanding meteor
Understanding meteorUnderstanding meteor
Understanding meteor
 
What are stars made of?
What are stars made of?What are stars made of?
What are stars made of?
 

Similar to Meteor presentation

Get started with meteor | designveloper software agency meteor prime partner
Get started with meteor | designveloper software agency   meteor prime partnerGet started with meteor | designveloper software agency   meteor prime partner
Get started with meteor | designveloper software agency meteor prime partnerDesignveloper
 
Django simplified : by weever mbakaya
Django simplified : by weever mbakayaDjango simplified : by weever mbakaya
Django simplified : by weever mbakayaMbakaya Kwatukha
 
Meteor.js Workshop by Dopravo
Meteor.js Workshop by DopravoMeteor.js Workshop by Dopravo
Meteor.js Workshop by DopravoArabNet ME
 
Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)
Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)
Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)Maarten Balliauw
 
Angular kickstart slideshare
Angular kickstart   slideshareAngular kickstart   slideshare
Angular kickstart slideshareSaleemMalik52
 
MongoDB World 2019: In-App Bug Reporting
MongoDB World 2019: In-App Bug ReportingMongoDB World 2019: In-App Bug Reporting
MongoDB World 2019: In-App Bug ReportingMongoDB
 
Introduction to Docker and Containers- Learning Simple
Introduction to Docker and Containers- Learning SimpleIntroduction to Docker and Containers- Learning Simple
Introduction to Docker and Containers- Learning SimpleSandeep Hijam
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekDr. Felix Raab
 
Reactive application using meteor
Reactive application using meteorReactive application using meteor
Reactive application using meteorSapna Upreti
 
How to Build a Micro-Application using Single-Spa
How to Build a Micro-Application using Single-SpaHow to Build a Micro-Application using Single-Spa
How to Build a Micro-Application using Single-SpaRapidValue
 
1 app 2 developers 3 servers
1 app 2 developers 3 servers1 app 2 developers 3 servers
1 app 2 developers 3 serversMark Myers
 
Web worker in your angular application
Web worker in your angular applicationWeb worker in your angular application
Web worker in your angular applicationSuresh Patidar
 
How to implement Micro-frontends using Qiankun
How to implement Micro-frontends using QiankunHow to implement Micro-frontends using Qiankun
How to implement Micro-frontends using QiankunFibonalabs
 
Android howto hellowidget
Android howto hellowidgetAndroid howto hellowidget
Android howto hellowidgetHiron Das
 

Similar to Meteor presentation (20)

Meteor
MeteorMeteor
Meteor
 
Get started with meteor | designveloper software agency meteor prime partner
Get started with meteor | designveloper software agency   meteor prime partnerGet started with meteor | designveloper software agency   meteor prime partner
Get started with meteor | designveloper software agency meteor prime partner
 
Django simplified : by weever mbakaya
Django simplified : by weever mbakayaDjango simplified : by weever mbakaya
Django simplified : by weever mbakaya
 
Meteor.js Workshop by Dopravo
Meteor.js Workshop by DopravoMeteor.js Workshop by Dopravo
Meteor.js Workshop by Dopravo
 
Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)
Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)
Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)
 
Angular kickstart slideshare
Angular kickstart   slideshareAngular kickstart   slideshare
Angular kickstart slideshare
 
NodeJS @ ACS
NodeJS @ ACSNodeJS @ ACS
NodeJS @ ACS
 
Meteor
MeteorMeteor
Meteor
 
MongoDB World 2019: In-App Bug Reporting
MongoDB World 2019: In-App Bug ReportingMongoDB World 2019: In-App Bug Reporting
MongoDB World 2019: In-App Bug Reporting
 
Introduction to Docker and Containers- Learning Simple
Introduction to Docker and Containers- Learning SimpleIntroduction to Docker and Containers- Learning Simple
Introduction to Docker and Containers- Learning Simple
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one week
 
Sst hackathon express
Sst hackathon expressSst hackathon express
Sst hackathon express
 
Reactive application using meteor
Reactive application using meteorReactive application using meteor
Reactive application using meteor
 
How to Build a Micro-Application using Single-Spa
How to Build a Micro-Application using Single-SpaHow to Build a Micro-Application using Single-Spa
How to Build a Micro-Application using Single-Spa
 
1 app 2 developers 3 servers
1 app 2 developers 3 servers1 app 2 developers 3 servers
1 app 2 developers 3 servers
 
Ct bot tutorial
Ct bot tutorialCt bot tutorial
Ct bot tutorial
 
Web worker in your angular application
Web worker in your angular applicationWeb worker in your angular application
Web worker in your angular application
 
How to implement Micro-frontends using Qiankun
How to implement Micro-frontends using QiankunHow to implement Micro-frontends using Qiankun
How to implement Micro-frontends using Qiankun
 
Android how to hellowidget
Android how to hellowidgetAndroid how to hellowidget
Android how to hellowidget
 
Android howto hellowidget
Android howto hellowidgetAndroid howto hellowidget
Android howto hellowidget
 

Recently uploaded

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Recently uploaded (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

Meteor presentation

  • 1.
  • 2. What’s that? Full stack pure JS framework for building awesome apps in no time.
  • 3. What’s inside? - MongoDB - Node JS - lots of packages - ...
  • 4. Why is Meteor awesome? - Installation as simple as it can be - Build reactive(???) apps in no time - Build mobile(???) apps in no time - Deployment using 1 command
  • 5. First things first Installing meteor takes a few seconds: curl https://install.meteor.com/ | sh
  • 6. First things first Creating new app also takes couple of seconds meteor create app-name
  • 7. What’s next? - Adding packages https://atmospherejs.com/ - Building your application - Deploying to server - Enjoying the app created in less than a day
  • 8. Packages - Adding packages was made real simple just find your desired package and type meteor add <package> - There are some useful packaged that are required almost in every app: accounts-base, jquery, less - meteor remove to remove package - meteor list to list all added packages
  • 9. Meteor app structure Basically it is up to you, but meteor has some standards anyways. 4 main entities: - lib - client - server - public
  • 10. Meteor app structure - For code accessed both from server and client side these can be used Meteor.isClient and Meteor.isServer
  • 11. Meteor templates - Uses Blaze template engine - Basically looks like this : - Forget about random logic in templates. - Everything happens with helpers
  • 12. Meteor template helpers - Helpers help to store logic outside of templates making them super readable Template with name ‘user_view’ Helper
  • 13. Meteor template helpers So basically this won’t work but + will work Isn’t it a bit complicated?
  • 14. Meteor template events - Events are assigned to elements only in particular template. - Structure similar to helpers
  • 15. Meteor collections - Collections are defined really simple MyCollection = new Meteor.Collection('collection-name-in-mongo') - After that MyCollection.[insert|update|remove] methods are available both from client and server side. They can basically be fired by any user from console in browser (WHAT?)
  • 16. Meteor collections “OMG Meteor must be so insecure if it lets anyone to fire insert events into database #notGonnaUseIt”
  • 17. Meteor collections - “autopublish” and “insecure” - why these two packages are needed? - Both should be disabled in production - Publications and Subscriptions should be used.
  • 18. Publications and Subscriptions Simple : publication describes what data user will be allowed to read from Mongo collection, and subscription subscribes to that data.
  • 20. Calling Meteor methods securely Client side Server side
  • 21. Meteor as MVC framework? - This is actually possible to have javascript MVC framework. - meteor add iron:router - How does it work?
  • 22. Meteor as MVC framework? Set global configs Define route Check out this great tutorial. It has basically everything you need to know in it: http://manuel-schoebel.com/blog/iron-router-tutorial
  • 23. How to use iron router controller? Actions before Waiting for data from Mongo Data returned to view (defined in routes.js)
  • 24. How to use iron router controller? ID passed from controller as data 
  • 25. Recap So what do we have now? - can create new app - can create app structure - can create some views - can create collections - can create routes to views - Can we create a simple app?
  • 26. Let’s create simple chat app 1. meteor create chat-app 2. Let’s add necessary packages a. meteor add accounts-facebook b. meteor add iron:router 3. Lets think about this simple app structure
  • 27. Let’s create simple chat app Let’s start with collections
  • 28. Let’s create simple chat app Let’s add secure chat message add method. As we can see non-logged in user won’t able to post messages.
  • 29. Let’s create simple chat app Let’s start with collections Here we have only subscription and publication. Usually they’re kept under publications on server.
  • 30. Let’s create simple chat app Let’s define a route to our chat view (which will be created) (client/routes.js) | (client/controllers/ChatController.js)
  • 31. Let’s create simple chat app We’ll need to create real simple template for our app (client/templates/chat/chat.html)
  • 32. Let’s create simple chat app Binding events / helpers to elements (client/templates/chat/ch at.js)
  • 33. Let’s create simple chat app And that’s basically it. Apply some designs and enjoy your real time reactive chat app.
  • 34. Deploy to server Two approaches known to me - use <appname>.meteor.com (if it is still free) - use your own server with MongoDB/node/.. - use Meteor-up (mup package)
  • 35. Deploy to server The one I used is mup. Install it with npm install -g mup After install just “mup init” and change config in mup.json to match your setup. Full docs https: //github.com/arunoda/meteor-up
  • 36. Is there anything else I can do? There’s one more cool feature in meteor that should be mentioned. It can wrap your web application (such as this simple chat) and create a mobile APP just with couple of commands.
  • 37. Why do I need that? Q: Isn’t it better to write a native application? A: Well, probably. But if you are short on resources or just lazy you can use this option, basically it is the same as opening your web page in browser.
  • 38. And thats it? Q: Simple wrapper for full screen browser? A: Yes and no. Meteor has access to almost all phone’s functions through Cordova plugins from Apache. http://plugins.cordova.io/#/
  • 39. To wrap up - fast - easy development/prototyping - pure javascript - full stack - reactive - has lots of packages - easily portable to mobile platforms