SlideShare a Scribd company logo
AngularJSMeetup

   Intilery.com
About Me
• Founder and CEO of Intilery.com
• Previously the CIO of The Hut group
• And before that, 10 years as chief architect of
  Moneysupermarket.com
Intilery.com – App Stack
5 parts:
• UI/Web app dashboard (angular)
• UI/Web app email designer (angular)
• App Backend
• A data collector/segmenter/analytics
  &personalisation engine
• An email Sender (think mail chimp)
Intilery.com – Tech Stack
• Web apps – Angular, jQuery, Require (lots of
  libs) talks to Java using JSON
• App backend – Java, Jersey, Spring IOC, Guava,
  Mongo, MySQL
• Collector – Java event pipeline, twitter storm
  (like), rules engine, elastic search, MySQL
• Emailer – Java, Spring Quartz, StringTemplate
• Env - AWS
Intilery.com
• Demo
RequireJS + AngularJS
   Maintainable JavaScript Application = oxymoron?

Apply the same principles of good software engineering
  to angularjs apps.

JavaScript is very flexible, very easy to write
  undisciplined code (and architecture) – be strict!
Principles
Each file should contain one (and one only) component –
  directive, filter, service, controller, view etc.

Split out components into smaller components (each own file).

Spilt out the app into smaller apps – We use our API’s to
   integrate app.

Use RequireJS to manage the dependencies and loading of libs
  and your components
RequireJS Setup
All code at
  https://github.com/cymantic/angular-require-
  testacular
Directory Structure
index.html (the require script tag goes here)
--libs
     --angular
     --jquery
     --require
       require-jquery.js (jQuery loaded here)
     --domReady (needed in some browsers when scripts loaded before dom is ready)
--scripts (your components)
     --controller
     --directives
     --filters
     --resources
     --services
app.js (angular module of app defined here)
bootstrap.js (manual bootstrapping of the app)
main.js (require configuration and route configuration)
--styles
--templates
--views
<script data-main="./scripts/main.js" src="libs/require/require-jquery.js"></script>
(we are not yet optimizing the files into a single file – todo before beta launch)
main.js
app.js – first non-library to load, we define our module here




bootstrap.js – manually start up the application
Configuration
Angular meetup
Controller
EditLinkController
                       TextService
(modal)
                        MergeTagSvc
                          DataModelRsrc


                        AlignmentMenuSvc

                        SelectionMgrSvc

                        PasteMgrSvc

                        FormattingMgrSvc
Text Inspector Controller
Text Content Svc – bound to the content editable element we are editing
Merge Tag Service

More Related Content

PDF
ServerMessaging Workflow v1.0
PDF
Ng-init
PDF
Ng-init
PPTX
Angularjs basic part01
PPTX
ASP.NET MVC and ajax
PDF
PPTX
Angularjs - custom directives part 05
PPTX
Angular js for beginners
ServerMessaging Workflow v1.0
Ng-init
Ng-init
Angularjs basic part01
ASP.NET MVC and ajax
Angularjs - custom directives part 05
Angular js for beginners

What's hot (20)

PDF
RoR 101: Session 6
PPTX
AngularJS is awesome
PPTX
AngularJs Basic Concept
ODP
RoR 101: Session 6
PPTX
Angular 4
PPTX
Pros and Cons of developing a Thick Clientside App
PPTX
Going Serverless with Iron.io
PDF
Intro to emberjs
PDF
RoR 101: Session 2
PPTX
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
PPTX
Angular JS, steal the idea
PPTX
Angular js
PPTX
Angular patterns
PPTX
Visualforce
PPTX
The A1 "AngularJS 1 Kick Start"
PDF
RoR 101: Session 5
PDF
RoR 101: Session 3
PDF
Next.js (almost) in production
PPTX
Securing SQL Server with TLS 1.2
PDF
Application Server-less Web Applications - Serverless Toronto Meetup
RoR 101: Session 6
AngularJS is awesome
AngularJs Basic Concept
RoR 101: Session 6
Angular 4
Pros and Cons of developing a Thick Clientside App
Going Serverless with Iron.io
Intro to emberjs
RoR 101: Session 2
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
Angular JS, steal the idea
Angular js
Angular patterns
Visualforce
The A1 "AngularJS 1 Kick Start"
RoR 101: Session 5
RoR 101: Session 3
Next.js (almost) in production
Securing SQL Server with TLS 1.2
Application Server-less Web Applications - Serverless Toronto Meetup
Ad

Viewers also liked (14)

PDF
Talent 2020 Webinar Will Your High Potentials Stick Around
PPTX
Nectarin Digital Digest №5
PPTX
Как маркетплейсы произведут революцию на рынке электронного ОСАГО
PPTX
Newsbrands and finance
PPTX
Optimising your rtb infrastructure sammy austin - follow up
PPTX
Reduce, Reuse, Recycle: How Moneysupermarket.com Created APIs Without Startin...
PPTX
MoneySuperMarket.com: Case Study
PDF
MoneySupermarket.com: Customer Case Study - Layer 7 API Management Workshop L...
PDF
Gobblin @ NerdWallet (Nov 2015)
PPT
Invasion of the Aggregators
PDF
Figaro Digital Marketing Conference: Content really is still king - Joe Griff...
PDF
Kanban at MoneySupermarket.com
PDF
Why the Financial Services need simplicity
Talent 2020 Webinar Will Your High Potentials Stick Around
Nectarin Digital Digest №5
Как маркетплейсы произведут революцию на рынке электронного ОСАГО
Newsbrands and finance
Optimising your rtb infrastructure sammy austin - follow up
Reduce, Reuse, Recycle: How Moneysupermarket.com Created APIs Without Startin...
MoneySuperMarket.com: Case Study
MoneySupermarket.com: Customer Case Study - Layer 7 API Management Workshop L...
Gobblin @ NerdWallet (Nov 2015)
Invasion of the Aggregators
Figaro Digital Marketing Conference: Content really is still king - Joe Griff...
Kanban at MoneySupermarket.com
Why the Financial Services need simplicity
Ad

Similar to Angular meetup (20)

PPTX
Intoduction to Angularjs
PPTX
JavaScript MVC Frameworks: Backbone, Ember and Angular JS
PPTX
Angular js firebase-preso
PDF
Spring mvc
PPTX
PDF
The future of web development write once, run everywhere with angular js an...
PPTX
The future of web development write once, run everywhere with angular.js and ...
PPTX
Angular js workshop
PPTX
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
DOCX
AngularJS
PPTX
Understanding angular js
PPTX
What is ASP.NET MVC
PPTX
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...
PDF
Beginning MEAN Stack
PPTX
Angular 6 Training with project in hyderabad india
PPTX
ASP .Net Core SPA Templates
PPTX
MongoDB Days Silicon Valley: Building Applications with the MEAN Stack
PPTX
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
PPTX
.NET,ASP .NET, Angular Js,LinQ
Intoduction to Angularjs
JavaScript MVC Frameworks: Backbone, Ember and Angular JS
Angular js firebase-preso
Spring mvc
The future of web development write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular.js and ...
Angular js workshop
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
AngularJS
Understanding angular js
What is ASP.NET MVC
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...
Beginning MEAN Stack
Angular 6 Training with project in hyderabad india
ASP .Net Core SPA Templates
MongoDB Days Silicon Valley: Building Applications with the MEAN Stack
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
.NET,ASP .NET, Angular Js,LinQ

Angular meetup

  • 1. AngularJSMeetup Intilery.com
  • 2. About Me • Founder and CEO of Intilery.com • Previously the CIO of The Hut group • And before that, 10 years as chief architect of Moneysupermarket.com
  • 3. Intilery.com – App Stack 5 parts: • UI/Web app dashboard (angular) • UI/Web app email designer (angular) • App Backend • A data collector/segmenter/analytics &personalisation engine • An email Sender (think mail chimp)
  • 4. Intilery.com – Tech Stack • Web apps – Angular, jQuery, Require (lots of libs) talks to Java using JSON • App backend – Java, Jersey, Spring IOC, Guava, Mongo, MySQL • Collector – Java event pipeline, twitter storm (like), rules engine, elastic search, MySQL • Emailer – Java, Spring Quartz, StringTemplate • Env - AWS
  • 6. RequireJS + AngularJS Maintainable JavaScript Application = oxymoron? Apply the same principles of good software engineering to angularjs apps. JavaScript is very flexible, very easy to write undisciplined code (and architecture) – be strict!
  • 7. Principles Each file should contain one (and one only) component – directive, filter, service, controller, view etc. Split out components into smaller components (each own file). Spilt out the app into smaller apps – We use our API’s to integrate app. Use RequireJS to manage the dependencies and loading of libs and your components
  • 8. RequireJS Setup All code at https://github.com/cymantic/angular-require- testacular
  • 9. Directory Structure index.html (the require script tag goes here) --libs --angular --jquery --require require-jquery.js (jQuery loaded here) --domReady (needed in some browsers when scripts loaded before dom is ready) --scripts (your components) --controller --directives --filters --resources --services app.js (angular module of app defined here) bootstrap.js (manual bootstrapping of the app) main.js (require configuration and route configuration) --styles --templates --views
  • 10. <script data-main="./scripts/main.js" src="libs/require/require-jquery.js"></script> (we are not yet optimizing the files into a single file – todo before beta launch) main.js
  • 11. app.js – first non-library to load, we define our module here bootstrap.js – manually start up the application
  • 14. Controller EditLinkController TextService (modal) MergeTagSvc DataModelRsrc AlignmentMenuSvc SelectionMgrSvc PasteMgrSvc FormattingMgrSvc
  • 16. Text Content Svc – bound to the content editable element we are editing