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

Reactive Web 101: WebFlux, WebClient, and Reactor Netty
Reactive Web 101: WebFlux, WebClient, and Reactor NettyReactive Web 101: WebFlux, WebClient, and Reactor Netty
Reactive Web 101: WebFlux, WebClient, and Reactor NettyVMware Tanzu
 
Nodejs Explained with Examples
Nodejs Explained with ExamplesNodejs Explained with Examples
Nodejs Explained with ExamplesGabriele Lana
 
Building beautiful apps with Google flutter
Building beautiful apps with Google flutterBuilding beautiful apps with Google flutter
Building beautiful apps with Google flutterAhmed Abu Eldahab
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発Akira Inoue
 
Node JS Crash Course
Node JS Crash CourseNode JS Crash Course
Node JS Crash CourseHaim Michael
 
ING Data Services hosted on ICHP DoK Amsterdam 2023
ING Data Services hosted on ICHP DoK Amsterdam 2023ING Data Services hosted on ICHP DoK Amsterdam 2023
ING Data Services hosted on ICHP DoK Amsterdam 2023DoKC
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App DevelopmentChris Morrell
 
Javax.servlet,http packages
Javax.servlet,http packagesJavax.servlet,http packages
Javax.servlet,http packagesvamsi krishna
 
Introduction of Tomcat
Introduction of TomcatIntroduction of Tomcat
Introduction of TomcatDebashis Nath
 
REST-API introduction for developers
REST-API introduction for developersREST-API introduction for developers
REST-API introduction for developersPatrick Savalle
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUDPrem Sanil
 

What's hot (20)

Reactive Web 101: WebFlux, WebClient, and Reactor Netty
Reactive Web 101: WebFlux, WebClient, and Reactor NettyReactive Web 101: WebFlux, WebClient, and Reactor Netty
Reactive Web 101: WebFlux, WebClient, and Reactor Netty
 
.Net Core
.Net Core.Net Core
.Net Core
 
Nodejs Explained with Examples
Nodejs Explained with ExamplesNodejs Explained with Examples
Nodejs Explained with Examples
 
An Introduction To REST API
An Introduction To REST APIAn Introduction To REST API
An Introduction To REST API
 
Building beautiful apps with Google flutter
Building beautiful apps with Google flutterBuilding beautiful apps with Google flutter
Building beautiful apps with Google flutter
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
 
React js for beginners
React js for beginnersReact js for beginners
React js for beginners
 
Reactjs
Reactjs Reactjs
Reactjs
 
Node JS Crash Course
Node JS Crash CourseNode JS Crash Course
Node JS Crash Course
 
Node js
Node jsNode js
Node js
 
REST & RESTful Web Services
REST & RESTful Web ServicesREST & RESTful Web Services
REST & RESTful Web Services
 
ING Data Services hosted on ICHP DoK Amsterdam 2023
ING Data Services hosted on ICHP DoK Amsterdam 2023ING Data Services hosted on ICHP DoK Amsterdam 2023
ING Data Services hosted on ICHP DoK Amsterdam 2023
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 
Express js
Express jsExpress js
Express js
 
Javax.servlet,http packages
Javax.servlet,http packagesJavax.servlet,http packages
Javax.servlet,http packages
 
Introduction of Tomcat
Introduction of TomcatIntroduction of Tomcat
Introduction of Tomcat
 
ReactJs
ReactJsReactJs
ReactJs
 
Flutter
FlutterFlutter
Flutter
 
REST-API introduction for developers
REST-API introduction for developersREST-API introduction for developers
REST-API introduction for developers
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUD
 

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

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 

Recently uploaded (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 

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