hasgeek meteor workshop
DESCRIPTION
Meteor WorkshopTRANSCRIPT
![Page 1: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/1.jpg)
Meteor
Developing TeamSync (Real Time Collaboration
Tool)
Febin John JamesBoutline
![Page 2: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/2.jpg)
TeamSync Demo
![Page 3: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/3.jpg)
Introduction to Meteor
Hands on Mini Mongo
Create a prototype with static data
Wire up with database
Add authentication
Deploy the app
Workshop
![Page 4: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/4.jpg)
Developing TeamSync using Meteor
7.Sessions
Understanding meteor sessions
8.Meteor Accounts
Understanding meteor accountsAdding external login servicesAdding twitter login
9.Allow Deny
Understand allow deny callbacks.Securing TeamSync
10.Deployment
Deploying teamsync app.
4. Collections
Meteor CollectionsMeteor Data SynchronizationIntegrating collection with templatesTurning prototype into functional appReactivity
5. Routing
Learn about routing in meteor Create team pages with Unique Url’s
6.Publications & Subscriptions
How publications & subscriptions workAdding publications to our prototype
1. Introduction
What is meteor?Why meteor?Installing meteor Meteor Packages
2. Mini Mongo
What makes mongodb simple?Mini Mongo CRUD Operations
3. Templates
Meteor’s templating languageYour first templateTemplate Manager’sTeamSync Prototype with static data
![Page 5: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/5.jpg)
Introduction to Meteor
![Page 6: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/6.jpg)
Before Meteor
![Page 7: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/7.jpg)
Meteor
Database Real-time Sync User Interface
![Page 8: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/8.jpg)
Why Meteor?
Easy to learn
Up and running in hours
You are already familiar with javascript, aren’t you?
![Page 9: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/9.jpg)
Meteor Packages
Core Packages Smart Packages Atmosphere Packages
![Page 10: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/10.jpg)
Hands on Mini Mongo
![Page 11: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/11.jpg)
Features of MongoDB
No Schema
High Performance
High Scalability
![Page 12: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/12.jpg)
MongoDB CRUD Operations
Type “meteor mongo”
Let’s begin
![Page 13: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/13.jpg)
db.collection.insert({})db.collection.update({})db.collection.remove({})db.collection.find({})
![Page 14: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/14.jpg)
Starting Meteor
![Page 15: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/15.jpg)
Creating a meteor app
meteor create teamsync
cd teamsync
meteor
![Page 16: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/16.jpg)
Meteor app folder structure
client serverpubliclibcollections
![Page 17: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/17.jpg)
Templates
![Page 18: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/18.jpg)
A meteor app
Templates(HTML Files)Client Side(JS Files)Server Side(JS Files)
![Page 19: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/19.jpg)
Your first template
![Page 20: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/20.jpg)
{{>helloWorld}}
<template name=”helloWorld”><h1> Hello World </h1></template>
![Page 21: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/21.jpg)
Let’s create prototype of teamsync with static data
create team templateteams board templatejoin team templatechat templatemission’s templateteam update templatemission update template
![Page 22: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/22.jpg)
Collections
![Page 23: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/23.jpg)
Collections for TeamSync
Teams Collection Mission’s Collection Status Collection
Messages Collection
![Page 24: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/24.jpg)
Teams = new Meteor.Collection(‘Teams’);
Teams.insert({})
Teams.update({})
Teams.remove({})
Teams.find({})
![Page 25: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/25.jpg)
Server-Side Collections
![Page 26: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/26.jpg)
Client-Side Collections
![Page 27: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/27.jpg)
Let’s wire the static templates with database
![Page 28: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/28.jpg)
Handlebars
![Page 29: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/29.jpg)
Template.teamsBoard.teams =
function()
{
return Teams.find();
}
{{#each teams}}
<li>{{name}}</li>
{{/each}}
JS HTML
![Page 30: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/30.jpg)
Reactivity
![Page 31: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/31.jpg)
Routing
![Page 32: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/32.jpg)
Iron-Router
![Page 33: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/33.jpg)
Router.map(function () {
this.route('dashboard', {
path: '/'dashboard',
waitOn: function () {
}
});
});
![Page 34: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/34.jpg)
Making unique links for team pages
![Page 35: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/35.jpg)
Publications & Subscriptions
![Page 36: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/36.jpg)
How it works?
![Page 37: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/37.jpg)
Meteor.publish(‘teamsData’,function
(){
return Teams.find({});
});
this.subscribe(‘teamsData’)
Server Client
![Page 38: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/38.jpg)
Adding publication’s and subscriptions to TeamSync
![Page 39: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/39.jpg)
Sessions
![Page 40: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/40.jpg)
Session.set(‘loggedIn’,false);
Session.get(‘loggedIn’);
![Page 41: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/41.jpg)
Improving User Experience of TeamSync with sessions
![Page 42: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/42.jpg)
Meteor Accounts
![Page 43: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/43.jpg)
Adding twitter Authentication to our TeamSync App
![Page 44: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/44.jpg)
Allow/Deny
![Page 45: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/45.jpg)
Securing our TeamSync App with allow deny callbacks
![Page 46: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/46.jpg)
Teams.allow({
insert: function (userId,tournaments)
{
if(Meteor.user())
return true;
else
return false;
}
});
![Page 47: Hasgeek meteor workshop](https://reader036.vdocuments.mx/reader036/viewer/2022062419/55829739d8b42a94688b46a4/html5/thumbnails/47.jpg)
Deploying TeamSync