SlideShare a Scribd company logo
1 of 60
Download to read offline
BUILDING A STARTUP STACK
WITH ANGULARJS
Copyright 2013 rangle.io and NickVanWeerdenburg
Saturday, 28 September, 13
Saturday, 28 September, 13
Saturday, 28 September, 13
BUILDING A STARTUP STACK
WITH ANGULAR JS
Copyright 2013 rangle.io and NickVanWeerdenburg
Saturday, 28 September, 13
BUILDING A STARTUP STACK
WITH ANGULARJS HTML 5
Copyright 2013 rangle.io and NickVanWeerdenburg
Saturday, 28 September, 13
BUILDING A STARTUP STACK
WITH ANGULARJS
Copyright 2013 rangle.io and NickVanWeerdenburg
Saturday, 28 September, 13
Saturday, 28 September, 13
The MEAN Stack
Web dev framework for NodeJS
Superheroic frontend framework
Event-based concurrency environment
Saturday, 28 September, 13
KEY POINT
Build an app with a
SPA framework and
a JSON datastore,
and PHP (or Rails)
become a poor fit
for most business
cases.
In 2005 50% of any web app
was JavaScript
In 2013, 70%+ is JavaScript
Last Basecamp: 5K Ruby, 5K
Coffeescript, plus HTML
and CSS
Modern DBs like Couch
and MongoDB speak
JavaScript
/PHP|RAILS/ REALITY
Saturday, 28 September, 13
SERVER-CENTRIC WEB
APPLICATION
SQL
DB
data services
authentication
integration
payment
gateways
client
templating
and
routing
h
t
t
p
q
u
e
r
y JavaScript
HTML
HTML
dynamic page
elements
data
query,
format,
layout
Saturday, 28 September, 13
data
query,
format,
layout
SQL
DB
BROWSER-CENTRIC WEB
APPLICATION
services
data
query
h
t
t
p
q
u
e
r
y JavaScript
HTML
dynamic page
elements
data services client
HTML
templating
and
routing
authentication
integration
payment
gateways
Saturday, 28 September, 13
data
query,
format,
layout
SQL
DB
BROWSER-CENTRIC WEB
APPLICATION
services
data
query
templating
and
routing
h
t
t
p
q
u
e
r
y JavaScript
HTML
dynamic page
elements
data services client
HTML
templating
and
routing
authentication
integration
payment
gateways
Saturday, 28 September, 13
data
query,
format,
layout
SQL
DB
BROWSER-CENTRIC WEB
APPLICATION
services
data
query
templating
and
routing
h
t
t
p
q
u
e
r
y JavaScript
HTML
dynamic page
elements
data services client
HTML
authentication
integration
payment
gateways
Saturday, 28 September, 13
data
query,
format,
layout
SQL
DB
BROWSER-CENTRIC WEB
APPLICATION
services
data
query
templating
and
routing
h
t
t
p
q
u
e
r
y JavaScript
HTML
dynamic page
elements
data services client
authentication
integration
payment
gateways
Saturday, 28 September, 13
data
query,
format,
layout
SQL
DB
BROWSER-CENTRIC WEB
APPLICATION
services
data
query
templating
and
routing
h
t
t
p
q
u
e
r
y JavaScript
HTML
dynamic page
elements
data services
authentication
integration
payment
gateways
Saturday, 28 September, 13
data
query,
format,
layout
SQL
DB
noSQL
DB
BROWSER-CENTRIC WEB
APPLICATION
services
data
query
templating
and
routing
h
t
t
p
q
u
e
r
y JavaScript
HTML
dynamic page
elements
data services
authentication
integration
payment
gateways
Saturday, 28 September, 13
SQL
DB
noSQL
DB
BROWSER-CENTRIC WEB
APPLICATION
services
data
query
templating
and
routing
h
t
t
p
q
u
e
r
y JavaScript
HTML
dynamic page
elements
data services
authentication
integration
payment
gateways
Saturday, 28 September, 13
SQL
DB
noSQL
DB
BROWSER-CENTRIC WEB
APPLICATION
services
templating
and
routing
h
t
t
p
q
u
e
r
y JavaScript
HTML
dynamic page
elements
data services
authentication
integration
payment
gateways
Saturday, 28 September, 13
SQL
DB
noSQL
DB
BROWSER-CENTRIC WEB
APPLICATION
services
templating
and
routing
h
t
t
p
q
u
e
r
y JavaScript
HTML
dynamic page
elements
data services
authentication
integration
payment
gateways
data
query
Saturday, 28 September, 13
SQL
DB
noSQL
DB
BROWSER-CENTRIC WEB
APPLICATION
services
templating
and
routing
h
t
t
p
q
u
e
r
y JavaScript
HTML
dynamic page
elements
services
authentication
integration
payment
gateways
data
query
Saturday, 28 September, 13
SQL
DB
noSQL
DB
BROWSER-CENTRIC WEB
APPLICATION
services
templating
and
routing
h
t
t
p
q
u
e
r
y JavaScript
HTML
dynamic page
elements
authentication
integration
payment
gateways
data
query
Saturday, 28 September, 13
BROWSER-CENTRIC +
SERVICES
noSQL
DB
services
data
queryauthentication
integration
payment
gateways
templating
and
routing
h
t
t
p
q
u
e
r
y JavaScript
HTML
dynamic page
elements
Thin-Server
Computing
Saturday, 28 September, 13
THE NEW STACK: NOT JUST
BUZZ
All 3 tiers have changed!
Client -> Browser-Centric MV* JS
Server -> Thin-Server, REST, Event
Database -> Document, web-centric
Saturday, 28 September, 13
Saturday, 28 September, 13
http://www.bennadel.com/blog/2439-My-Experience-With-AngularJS-The-Super-heroic-
JavaScript-MVW-Framework.htm
Saturday, 28 September, 13
THE SOLUTION?
Seed projects are sprouting like weeds.They all suck.
Saturday, 28 September, 13
INTRODUCING...
Saturday, 28 September, 13
THE META-STACK
Best-Practice, Canonical Stack Building From First
Principles
Saturday, 28 September, 13
MEAN Process Stack
Web dev framework for NodeJS
Superheroic frontend framework
Event-based concurrency environment
Recipes, Not Seeds
Saturday, 28 September, 13
CREATINGYOUR DEFAULT
PROJECT STACK
AngularJS + REST + API Server + MongoDB
for a project called tim
Saturday, 28 September, 13
CHECKLIST
nodejistu account created
mongolab account created or mongodb installed
locally
node, npm, yo, bower at the right versions
git installed
Saturday, 28 September, 13
THE STARTING STACK
Node 0.10.5
NPM
Yeoman
Bower
Yo
Grunt
Mongo
Git
Sublime Text 2 and Webstorm
Saturday, 28 September, 13
NPM PACKAGES
Update package.json:
mongoose
winston
run “npm install”
Future one-off packages:
npm install mongoose --save
Saturday, 28 September, 13
cd tim && express -s -c less
(ignore destination not empty)
STEP 1: EXPRESS
express --help
-s --sessions
-e --ejs (defaults to jade)
-j --jshtml (defaults to jade)
-c --css (less|stylus) (defaults to plain css)
Saturday, 28 September, 13
npm install, node app
BASIC EXPRESS PROJECT
npm install
node app
“open http://localhost:
3000” to view
Saturday, 28 September, 13
HTTP://LOCALHOST:3000
EXPRESS IS RUNNING
Saturday, 28 September, 13
Y to overwrite .gitignore
STEP 2:YO ANGULAR
mv package.json package.json.express
yo angular
Y for Bootstrap, N for Compass, Return for 3 options (arrows
and space to unselect)
Saturday, 28 September, 13
NOTE: This isn’t using Express yet
TEST ANGULAR
grunt server
browser should popup to default
modify LiveReload port in
Gruntfile.js if error regarding
35729 port
grunt test
run unit tests
Saturday, 28 September, 13
app/ will be static public folder
INTEGRATE ANGULAR &
NODE
merge package.json files and
rm package.json.express
optional: rm app/favicon.ico
this is yeoman icon-
removing it defaults app
to express icon
Saturday, 28 September, 13
mv public/stylesheets app/styles
rm -Rf public
vi app.js # see next slide
MERGE PUBLIC TO APP
Saturday, 28 September, 13
replace ‘public’ with ‘app’ in two places,
(also update your cookieParser)
EDIT APP.JS TO POINT TO APP/
Saturday, 28 September, 13
Precedence is key for Express- it’s an
HTTP pipeline
EXPRESS APP.JS
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('rangle your secret here'));
app.use(express.session());
// app.use(app.router);
// ...OR move after use express.static OR comment out ‘/’ route
app.use(require('less-middleware')({ src: __dirname + '/app' }));
app.use(express.static(path.join(__dirname, 'app')));
// NOTE: with app.router comment out express.static is first
// route handler and gets priority over app.get below.
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
// NOTE: if app,route isn’t set explicitly above the first route
// definition automatically loads it. Since this is after use
// express.static the Angular app/ directory has precedence
app.get('/', routes.index);
app.get('/users', user.list);
add cookieParser secret
replace “public” with
“app”
comment out ‘/’ node to
route to enable Angular to
load via static mounting of
app OR make sure static
mount has precedence
over router.
Saturday, 28 September, 13
ANGULAR TIP: having the right API is
essential to easy Angular dev
BUILD SIMPLE API
npm install winston mongoose passport passport-local --
save
mkdir lib
touch lib/{log.js,db.js,user.js}
mkdir loadfiles
touch loadfiles/{users.csv,projects.csv,time.csv}
Saturday, 28 September, 13
TIP rapidly create simple seed csv data
SOME QUICK SEED DATA
users.csv
user_id,username,email,password,role
1,nick,nick@rangle.io,cm,admin
2,bob,bob@rangle.io,cm,user
tasks.csv
project_id,task,description
1,build tim, build tim incrementally with github,16
2,add blogging to rangle.io,finish deploy anglePress,2
projects.csv
project_id,name,description
1,tim,a great time tracker
2,anglePress,a crazy AngularJS blog
3,rangle.io,my website
Saturday, 28 September, 13
TIP add --drop if you want to drop prior data
IMPORT INITIAL DATA
mongoimport -d tim -c users --type csv --headerline users.csv
mongoimport -d tim -c projects --type csv --headerline
projects.csv
mongoimport -d tim -c tasks --type csv --headerline tasks.csv
Saturday, 28 September, 13
curl http://localhost:3000/users
API TESTING WITH CURL
a quick test returns our
user data
curl http://.../users/1 fails
due to missing routing
Saturday, 28 September, 13
ANGULAR TIP the app routing will be fairly
similar to this
NOW ROUTE OTHER API
CALLS
Add the following to app.js:
app.get('/projects/:id', project.get);
app.post('/projects', project.post);
app.del('/projects', project.del);
Saturday, 28 September, 13
ANGULAR TIP add -i at beginning to see
headers
TESTING API
curl http://127.0.0.1:3000/users/1
curl -d “user_id=5&username=joe&password=fresh”
http://127.0.0.1:3000/users
curl -X DELETE http://127.0.0.1:3000/users/5
Saturday, 28 September, 13
TIP focus on jasmine-node for API server
JASMINE-NODE
Jasmine for node by Misko Hevery
https://github.com/mhevery/jasmine-node
NOT Angular testing but for API and library code
npm install -g jasmine-node
put test in spec/ directory
jasmine-node --verbose --autotest spec/
Saturday, 28 September, 13
ANGULAR TIP refactor your file structure
like you do your code
RECAP
We’ve created the simplest Mongo + Node + Express +
AngularJS project structure possible
This will need to be refactored as the project grows
We’ve tested each stage
We are testing the API layer independent of AngularJS
Saturday, 28 September, 13
THE STACK SUMMARY
Saturday, 28 September, 13
THE MEAN STACK
Core Stack
Node for the application server
Npm for the package management
MongoDB for the database
Process
yo for scaffolding
bower for client-side package management (e.g. jQuery, Angular, d3, underscore)
grunt (for build management and automation)
Saturday, 28 September, 13
THE SERVER STACK
Express for the web framework
Passport for authentication
Winston for logging
Mongoose for the MongoDB acess
Request for calling other REST APIs
Underscore for JSON wrangling
Saturday, 28 September, 13
THE ANGULARJS STACK
AngularJS
Bootstrap
Angular-UI
Angular-Grid
underscore.js
d3.js
AVOID jQuery where possible, wrap in directives when needed
Saturday, 28 September, 13
CONNECTING NODE TO ANGULAR
test the API with curl first!
version your API if 3rd party integrations, or rapid
development for SaaS
return clear meaningful API codes
implement a $http interceptor for 401 (unauthorized
codes) and prompt user to log in, and then retry the
original call (see book recommendations at end)
secure the API server-side - then it doesn’t matter what
shennanigans a user does in the browser
If you have really strong security needs, get an API review
Saturday, 28 September, 13
TWO ESSENTIAL BOOKS
Saturday, 28 September, 13
RELATED RESOURCES
Free eBook: Configuring the MEAN Stack for
Development
Free eBook: Building a Startup Stack with
AngularJS
To receive these when out next month, simply
register on our mailing list ( bottom of http://rangle.io
homepage, or email me at nick@rangle.io )
Saturday, 28 September, 13
Saturday, 28 September, 13
RELATED EVENTS
Wed. Oct. 9 7pm MongoDB Meetup: Building
Reporting Services Using REST and Node
for Web Applications Using MongoDB
http://www.meetup.com/Toronto-MongoDB-User-Group/events/140966402/
Wed. Oct. 16 7pm PhoneGap Meetup: Using
AngularJS + PhoneGap to Rapidly Create
Cross-Platform, Responsive Web Apps
http://www.meetup.com/PhoneGap-Toronto/events/140441122/
Wed. Oct. 23 - Thurs. Oct 24: Building a Startup
Stack with AngularJS (2 day class)
http://guestlistapp.com/events/192018
Nov. 2013 - Toronto CTO 1-Day Conference
http://www.linkedin.com/groups?gid=5164389 “StackFest 2013”
Saturday, 28 September, 13
THANKYOU!
NickVan Weerdenburg
nick@rangle.io
twitter: @rangleio
http://rangle.io
Saturday, 28 September, 13

More Related Content

What's hot

Django + Vue, JavaScript de 3ª generación para modernizar Django
Django + Vue, JavaScript de 3ª generación para modernizar DjangoDjango + Vue, JavaScript de 3ª generación para modernizar Django
Django + Vue, JavaScript de 3ª generación para modernizar DjangoJavier Abadía
 
Building a js widget
Building a js widgetBuilding a js widget
Building a js widgetTudor Barbu
 
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014Stéphane Bégaudeau
 
AngularJS best-practices
AngularJS best-practicesAngularJS best-practices
AngularJS best-practicesHenry Tao
 
How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0Takuya Tejima
 
Workshop 12: AngularJS Parte I
Workshop 12: AngularJS Parte IWorkshop 12: AngularJS Parte I
Workshop 12: AngularJS Parte IVisual Engineering
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)Igor Bronovskyy
 
AngularJS - What is it & Why is it awesome ? (with demos)
AngularJS - What is it & Why is it awesome ? (with demos)AngularJS - What is it & Why is it awesome ? (with demos)
AngularJS - What is it & Why is it awesome ? (with demos)Gary Arora
 
An Introduction to Vuejs
An Introduction to VuejsAn Introduction to Vuejs
An Introduction to VuejsPaddy Lock
 
Testing frontends with nightwatch & saucelabs
Testing frontends with nightwatch & saucelabsTesting frontends with nightwatch & saucelabs
Testing frontends with nightwatch & saucelabsTudor Barbu
 
Enjoy the vue.js
Enjoy the vue.jsEnjoy the vue.js
Enjoy the vue.jsTechExeter
 
Using ReactJS in AngularJS
Using ReactJS in AngularJSUsing ReactJS in AngularJS
Using ReactJS in AngularJSBoris Dinkevich
 

What's hot (20)

Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
Django + Vue, JavaScript de 3ª generación para modernizar Django
Django + Vue, JavaScript de 3ª generación para modernizar DjangoDjango + Vue, JavaScript de 3ª generación para modernizar Django
Django + Vue, JavaScript de 3ª generación para modernizar Django
 
Building a js widget
Building a js widgetBuilding a js widget
Building a js widget
 
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
 
AngularJS best-practices
AngularJS best-practicesAngularJS best-practices
AngularJS best-practices
 
Introduction to Angularjs
Introduction to AngularjsIntroduction to Angularjs
Introduction to Angularjs
 
Vue business first
Vue business firstVue business first
Vue business first
 
How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
AngularJs
AngularJsAngularJs
AngularJs
 
Workshop 12: AngularJS Parte I
Workshop 12: AngularJS Parte IWorkshop 12: AngularJS Parte I
Workshop 12: AngularJS Parte I
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
 
An introduction to Vue.js
An introduction to Vue.jsAn introduction to Vue.js
An introduction to Vue.js
 
AngularJS - What is it & Why is it awesome ? (with demos)
AngularJS - What is it & Why is it awesome ? (with demos)AngularJS - What is it & Why is it awesome ? (with demos)
AngularJS - What is it & Why is it awesome ? (with demos)
 
An Introduction to Vuejs
An Introduction to VuejsAn Introduction to Vuejs
An Introduction to Vuejs
 
AngularJS Basic Training
AngularJS Basic TrainingAngularJS Basic Training
AngularJS Basic Training
 
Testing frontends with nightwatch & saucelabs
Testing frontends with nightwatch & saucelabsTesting frontends with nightwatch & saucelabs
Testing frontends with nightwatch & saucelabs
 
Enjoy the vue.js
Enjoy the vue.jsEnjoy the vue.js
Enjoy the vue.js
 
Workshop 16: EmberJS Parte I
Workshop 16: EmberJS Parte IWorkshop 16: EmberJS Parte I
Workshop 16: EmberJS Parte I
 
Using ReactJS in AngularJS
Using ReactJS in AngularJSUsing ReactJS in AngularJS
Using ReactJS in AngularJS
 

Viewers also liked

Rapid Application Development with MEAN Stack
Rapid Application Development with MEAN StackRapid Application Development with MEAN Stack
Rapid Application Development with MEAN StackAvinash Kaza
 
Batch Processing with Amazon EC2 Container Service
Batch Processing with Amazon EC2 Container ServiceBatch Processing with Amazon EC2 Container Service
Batch Processing with Amazon EC2 Container ServiceAmazon Web Services
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices ArchitectureIzzet Mustafaiev
 
The #StartupStack
The #StartupStackThe #StartupStack
The #StartupStackStripe
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2Knoldus Inc.
 
Getting Started with Angular 2
Getting Started with Angular 2Getting Started with Angular 2
Getting Started with Angular 2FITC
 

Viewers also liked (6)

Rapid Application Development with MEAN Stack
Rapid Application Development with MEAN StackRapid Application Development with MEAN Stack
Rapid Application Development with MEAN Stack
 
Batch Processing with Amazon EC2 Container Service
Batch Processing with Amazon EC2 Container ServiceBatch Processing with Amazon EC2 Container Service
Batch Processing with Amazon EC2 Container Service
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
The #StartupStack
The #StartupStackThe #StartupStack
The #StartupStack
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2
 
Getting Started with Angular 2
Getting Started with Angular 2Getting Started with Angular 2
Getting Started with Angular 2
 

Similar to Building a Startup Stack with AngularJS

Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Matt Raible
 
How We Build NG-MY Websites: Performance, SEO, CI, CD (Thai version)
How We Build NG-MY Websites: Performance, SEO, CI, CD (Thai version)How We Build NG-MY Websites: Performance, SEO, CI, CD (Thai version)
How We Build NG-MY Websites: Performance, SEO, CI, CD (Thai version)Seven Peaks Speaks
 
How We Build NG-MY Websites: Performance, SEO, CI, CD
How We Build NG-MY Websites: Performance, SEO, CI, CDHow We Build NG-MY Websites: Performance, SEO, CI, CD
How We Build NG-MY Websites: Performance, SEO, CI, CDSeven Peaks Speaks
 
Fast Slim Correct: The History and Evolution of JavaScript.
Fast Slim Correct: The History and Evolution of JavaScript.Fast Slim Correct: The History and Evolution of JavaScript.
Fast Slim Correct: The History and Evolution of JavaScript.John Dalziel
 
Angularjs Tutorial for Beginners
Angularjs Tutorial for BeginnersAngularjs Tutorial for Beginners
Angularjs Tutorial for Beginnersrajkamaltibacademy
 
Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Matt Raible
 
Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Matt Raible
 
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSMeteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSJulio Antonio Mendonça de Marins
 
Grunt, Gulp & fabs: Build Systems and Development-Workflow for Modern Web-App...
Grunt, Gulp & fabs: Build Systems and Development-Workflow for Modern Web-App...Grunt, Gulp & fabs: Build Systems and Development-Workflow for Modern Web-App...
Grunt, Gulp & fabs: Build Systems and Development-Workflow for Modern Web-App...Philipp Burgmer
 
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Amazon Web Services
 
Continuous Deployment @ AWS Re:Invent
Continuous Deployment @ AWS Re:InventContinuous Deployment @ AWS Re:Invent
Continuous Deployment @ AWS Re:InventJohn Schneider
 
Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014Stéphane Bégaudeau
 
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...Olivier Destrebecq
 
Ratpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web AppsRatpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web AppsJames Williams
 
Vuejs for Angular developers
Vuejs for Angular developersVuejs for Angular developers
Vuejs for Angular developersMikhail Kuznetcov
 
Grunt & Front-end Workflow
Grunt & Front-end WorkflowGrunt & Front-end Workflow
Grunt & Front-end WorkflowPagepro
 
Rethinking Angular Architecture & Performance
Rethinking Angular Architecture & PerformanceRethinking Angular Architecture & Performance
Rethinking Angular Architecture & PerformanceMark Pieszak
 

Similar to Building a Startup Stack with AngularJS (20)

Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
 
Love at first Vue
Love at first VueLove at first Vue
Love at first Vue
 
How We Build NG-MY Websites: Performance, SEO, CI, CD (Thai version)
How We Build NG-MY Websites: Performance, SEO, CI, CD (Thai version)How We Build NG-MY Websites: Performance, SEO, CI, CD (Thai version)
How We Build NG-MY Websites: Performance, SEO, CI, CD (Thai version)
 
How We Build NG-MY Websites: Performance, SEO, CI, CD
How We Build NG-MY Websites: Performance, SEO, CI, CDHow We Build NG-MY Websites: Performance, SEO, CI, CD
How We Build NG-MY Websites: Performance, SEO, CI, CD
 
Fast Slim Correct: The History and Evolution of JavaScript.
Fast Slim Correct: The History and Evolution of JavaScript.Fast Slim Correct: The History and Evolution of JavaScript.
Fast Slim Correct: The History and Evolution of JavaScript.
 
Angularjs Tutorial for Beginners
Angularjs Tutorial for BeginnersAngularjs Tutorial for Beginners
Angularjs Tutorial for Beginners
 
Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020
 
Backbone
BackboneBackbone
Backbone
 
Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017
 
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSMeteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
 
MAGA - PUG Roma giugno 2017
MAGA - PUG Roma giugno 2017MAGA - PUG Roma giugno 2017
MAGA - PUG Roma giugno 2017
 
Grunt, Gulp & fabs: Build Systems and Development-Workflow for Modern Web-App...
Grunt, Gulp & fabs: Build Systems and Development-Workflow for Modern Web-App...Grunt, Gulp & fabs: Build Systems and Development-Workflow for Modern Web-App...
Grunt, Gulp & fabs: Build Systems and Development-Workflow for Modern Web-App...
 
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
 
Continuous Deployment @ AWS Re:Invent
Continuous Deployment @ AWS Re:InventContinuous Deployment @ AWS Re:Invent
Continuous Deployment @ AWS Re:Invent
 
Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014
 
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
 
Ratpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web AppsRatpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web Apps
 
Vuejs for Angular developers
Vuejs for Angular developersVuejs for Angular developers
Vuejs for Angular developers
 
Grunt & Front-end Workflow
Grunt & Front-end WorkflowGrunt & Front-end Workflow
Grunt & Front-end Workflow
 
Rethinking Angular Architecture & Performance
Rethinking Angular Architecture & PerformanceRethinking Angular Architecture & Performance
Rethinking Angular Architecture & Performance
 

More from FITC

Cut it up
Cut it upCut it up
Cut it upFITC
 
Designing for Digital Health
Designing for Digital HealthDesigning for Digital Health
Designing for Digital HealthFITC
 
Profiling JavaScript Performance
Profiling JavaScript PerformanceProfiling JavaScript Performance
Profiling JavaScript PerformanceFITC
 
Surviving Your Tech Stack
Surviving Your Tech StackSurviving Your Tech Stack
Surviving Your Tech StackFITC
 
How to Pitch Your First AR Project
How to Pitch Your First AR ProjectHow to Pitch Your First AR Project
How to Pitch Your First AR ProjectFITC
 
Start by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the AnswerStart by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the AnswerFITC
 
Cocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s StoryCocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s StoryFITC
 
Everyday Innovation
Everyday InnovationEveryday Innovation
Everyday InnovationFITC
 
HyperLight Websites
HyperLight WebsitesHyperLight Websites
HyperLight WebsitesFITC
 
Everything is Terrifying
Everything is TerrifyingEverything is Terrifying
Everything is TerrifyingFITC
 
Post-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future HumanPost-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future HumanFITC
 
The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)FITC
 
East of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR GameEast of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR GameFITC
 
Creating a Proactive Healthcare System
Creating a Proactive Healthcare SystemCreating a Proactive Healthcare System
Creating a Proactive Healthcare SystemFITC
 
World Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product DesignWorld Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product DesignFITC
 
The Power of Now
The Power of NowThe Power of Now
The Power of NowFITC
 
High Performance PWAs
High Performance PWAsHigh Performance PWAs
High Performance PWAsFITC
 
Rise of the JAMstack
Rise of the JAMstackRise of the JAMstack
Rise of the JAMstackFITC
 
From Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self DiscoveryFrom Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self DiscoveryFITC
 
Projects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time ForProjects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time ForFITC
 

More from FITC (20)

Cut it up
Cut it upCut it up
Cut it up
 
Designing for Digital Health
Designing for Digital HealthDesigning for Digital Health
Designing for Digital Health
 
Profiling JavaScript Performance
Profiling JavaScript PerformanceProfiling JavaScript Performance
Profiling JavaScript Performance
 
Surviving Your Tech Stack
Surviving Your Tech StackSurviving Your Tech Stack
Surviving Your Tech Stack
 
How to Pitch Your First AR Project
How to Pitch Your First AR ProjectHow to Pitch Your First AR Project
How to Pitch Your First AR Project
 
Start by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the AnswerStart by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the Answer
 
Cocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s StoryCocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s Story
 
Everyday Innovation
Everyday InnovationEveryday Innovation
Everyday Innovation
 
HyperLight Websites
HyperLight WebsitesHyperLight Websites
HyperLight Websites
 
Everything is Terrifying
Everything is TerrifyingEverything is Terrifying
Everything is Terrifying
 
Post-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future HumanPost-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future Human
 
The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)
 
East of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR GameEast of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR Game
 
Creating a Proactive Healthcare System
Creating a Proactive Healthcare SystemCreating a Proactive Healthcare System
Creating a Proactive Healthcare System
 
World Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product DesignWorld Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product Design
 
The Power of Now
The Power of NowThe Power of Now
The Power of Now
 
High Performance PWAs
High Performance PWAsHigh Performance PWAs
High Performance PWAs
 
Rise of the JAMstack
Rise of the JAMstackRise of the JAMstack
Rise of the JAMstack
 
From Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self DiscoveryFrom Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self Discovery
 
Projects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time ForProjects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time For
 

Recently uploaded

UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 

Recently uploaded (20)

UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 

Building a Startup Stack with AngularJS