SlideShare a Scribd company logo
Modernising a Notes
app with AngularJS
/Me
• Long-time Domino/ XPage/ web developer
• Freelance web developer
• Co-owner of Viaware
• Fan of everything web dev
• Open source dev, blogger (http://linqed.eu)
• IBM Champion 2011-2015
Project Background - business
• Norwegian manufacturing company
• 15+ year old IBM Notes client application
• Business critical
• Create offers
• Manage projects
• Technical specifications
• After sales
Project Background - technical
• Running on Notes 9 (client only)
• E-mail integration
• modified mail file
• Document generation
• Integrations with ERP system
• Infor M3
Business Case (1/2)
• Reduce dependency on Notes client/ Notes mail
• Reduce dependency on 3rd party tools
• Keep IBM Domino as data store and application server
• Build on existing data
• Clean-up/ improve data model
Business Case (2/2)
• Recently decided to use Infor Document Management (IDM)
• Seamless integration with Infor M3 and IDM
• Modern (API based) architecture
• Modern UI / UX
• Prepare for use on mobile devices
• Test project for other applications
Project Setup
• Working remotely, developing locally
• Source control is an absolute must
• For NSF’s as well as Angular app
• …and documentation/ guidelines/ configuration
• Divide work: backend vs frontend
Architecture
Windows server
HTML

CSS

JS
REST API
IDM
JDBC

M3 API
M3
browser
Web server

Reverse proxy

SSL
AD
NTLM
LDAP
NTLM
The Backend (1/2)
• REST API built in Java
• Servlets running in a NSF on Domino
• https://edm00se.io/servlet-series/
• ExtLib REST Controls for views
• org.openntf.domino API
• Apache POI for spreadsheet generation
• xDocReport for document generation
• DOCX and PDF
The Backend (2/2)
• NGINX
• Webserver for the AngularJS app
• Proxy for Domino, Connections and IDM
• SSL
• LDAP connection to Active Directory
• SSO with Domino & Infor
• Other 3rd party libraries
• GSON, Joda
The Frontend (1/2)
• All JavaScript
• AngularJS v1.5+
• Because v2 wasn’t ready yet
• UI theme from wrapbootstrap.com
• Bootstrap, Font Awesome
• Angular app also used as UI for IDM and
Connections
The Frontend (2/2)
• Various Angular projects
• Angular UI
• AngularJS-Toaster
• textAngular
• ng-file-upload
• lodash
• angular-formly
• cleave.js
Lodash
var numDays = [16, 30, 52];
var total = 0;

for (var i=0; i<numDays.length; i++) {

total += numDays[i];

}
var total = _.sumBy(numDays, 

function(d) { return parseInt(d, 10); } );
_.indexOf( numDays, 30); //1
var users = [ 

{ name : ‘Mark’, id : 1}, 

{ name : ‘Betty’, id : 2 } 

];
var betty = _.find(users, { id : 2 } );



var sortedByName = _.sortBy(

users, 

function (i) { return i.name; }

);
• Library of JavaScript functions
Angular-Formly
• Information in REST API drives the
frontend
• Create forms based on server-side
configuration
Tools
• Visual Studio Code
• Bower
• Grunt
• NPM
• IBM Domino Designer
Challenges (some of them…) & takeaways
• Complex setup, complex app
• Maintaining all dependencies:
• Stick with versions that work
• Infor IDM integration
• Java version of the API
• Use source control.
• Not a happy couple with Domino; Swiper helps
• Learn the tooling
• Try out to see what works
IBM Domino Modernizing apps with Angularjs

More Related Content

PPTX
The future of web development write once, run everywhere with angular.js and ...
PPTX
Office script labs
PPTX
Angular.js in XPages
PPTX
Connect 2014 - EXTJS in XPages: Modernizing IBM Notes Views Without Sacrifici...
PPTX
Iconus 2016
PDF
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
PPTX
ASP.NET MVC 4 Overview
PPTX
ASP.NET MVC 4
The future of web development write once, run everywhere with angular.js and ...
Office script labs
Angular.js in XPages
Connect 2014 - EXTJS in XPages: Modernizing IBM Notes Views Without Sacrifici...
Iconus 2016
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
ASP.NET MVC 4 Overview
ASP.NET MVC 4

What's hot (20)

PDF
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
PPTX
Testing your Single Page Application
PPTX
A Gentle Introduction to Blazor
PPTX
ASP.NET 5 Overview
PPTX
Single Page Application
PPTX
Single page application and Framework
PDF
Building an E-commerce website in MEAN stack
PPT
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
PDF
Microsoft, Web Standards and OSS
PDF
Moving from PHP to a nodejs full stack CMS
PPTX
Azure Serverless Conf
PDF
Free Online SharePoint Framework Webinar
PDF
Introduction To Single Page Application
PDF
The Dark Side of Single Page Applications
PPTX
Codegen2021 blazor mobile
PPTX
Single page App
PDF
Keystone.js 101
PPTX
Host, deploy & scale Blazor Server Apps
PDF
Scaling Wordpress
PPTX
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
Testing your Single Page Application
A Gentle Introduction to Blazor
ASP.NET 5 Overview
Single Page Application
Single page application and Framework
Building an E-commerce website in MEAN stack
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Microsoft, Web Standards and OSS
Moving from PHP to a nodejs full stack CMS
Azure Serverless Conf
Free Online SharePoint Framework Webinar
Introduction To Single Page Application
The Dark Side of Single Page Applications
Codegen2021 blazor mobile
Single page App
Keystone.js 101
Host, deploy & scale Blazor Server Apps
Scaling Wordpress
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
Ad

Similar to IBM Domino Modernizing apps with Angularjs (20)

PDF
Modernising a Notes app with AngularJS
PDF
The future of web development write once, run everywhere with angular js an...
PPTX
AngularJS Anatomy & Directives
DOCX
Eric Schoonhoven Resume
PDF
Angular js gtg-27feb2013
DOCX
Sr front end web developer Ln11
PDF
Linken Dinh - CV
PPT
Joomla as a mobile App backend - ideas, examples and experiences
DOC
Web Developer
PDF
UI developer
PPTX
AngularJS One Day Workshop
PDF
Engage 2019: Modernising Your Domino and XPages Applications
PPTX
Rapid Application Development with MEAN Stack
PDF
[Ebooks PDF] download AngularJS 1st Edition Brad Green full chapters
PDF
Download full ebook of Mean Web Development 2nd Amos Q Haviv instant download...
PDF
Javascript Web Applications Otx Alex Maccaw
PPTX
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
DOCX
Naresh Chirra
PPTX
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
PDF
TRWResume-10-2016
Modernising a Notes app with AngularJS
The future of web development write once, run everywhere with angular js an...
AngularJS Anatomy & Directives
Eric Schoonhoven Resume
Angular js gtg-27feb2013
Sr front end web developer Ln11
Linken Dinh - CV
Joomla as a mobile App backend - ideas, examples and experiences
Web Developer
UI developer
AngularJS One Day Workshop
Engage 2019: Modernising Your Domino and XPages Applications
Rapid Application Development with MEAN Stack
[Ebooks PDF] download AngularJS 1st Edition Brad Green full chapters
Download full ebook of Mean Web Development 2nd Amos Q Haviv instant download...
Javascript Web Applications Otx Alex Maccaw
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
Naresh Chirra
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
TRWResume-10-2016
Ad

More from Dominopoint - Italian Lotus User Group (20)

PPTX
TOTP - Time-Based One Time password in Domino
PDF
Domino Backup V12 - Un nuovo Task
PDF
Mail Client from Traveler to Verse On-Premises
PDF
IBM Worspace: Towards a culture of conversations
PPTX
Microsoft Outlook for Domino (IMSMO)
PDF
Riding the Enterprise Integration train
PPTX
Ortocloud l'applicazione per fare orto su Bluemix
PPTX
Meetit16 KeyNote di Apertura
PDF
IBM Connections How to use existing data to increase adoption success with IB...
PDF
IBM Connections 10 things every user should know
PDF
IBM Verse New Way To Work
PPT
PPT
Notes and Domino Roadmap
PDF
La Collaborazione Europea
PPT
Dominopoint meet the experts 2015 - XPages
PDF
Bluemix Cloud Platform - dominopoint
TOTP - Time-Based One Time password in Domino
Domino Backup V12 - Un nuovo Task
Mail Client from Traveler to Verse On-Premises
IBM Worspace: Towards a culture of conversations
Microsoft Outlook for Domino (IMSMO)
Riding the Enterprise Integration train
Ortocloud l'applicazione per fare orto su Bluemix
Meetit16 KeyNote di Apertura
IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections 10 things every user should know
IBM Verse New Way To Work
Notes and Domino Roadmap
La Collaborazione Europea
Dominopoint meet the experts 2015 - XPages
Bluemix Cloud Platform - dominopoint

Recently uploaded (20)

PDF
Modernizing your data center with Dell and AMD
PDF
Empathic Computing: Creating Shared Understanding
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPT
Teaching material agriculture food technology
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Machine learning based COVID-19 study performance prediction
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
KodekX | Application Modernization Development
PDF
Electronic commerce courselecture one. Pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Approach and Philosophy of On baking technology
Modernizing your data center with Dell and AMD
Empathic Computing: Creating Shared Understanding
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Review of recent advances in non-invasive hemoglobin estimation
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
MYSQL Presentation for SQL database connectivity
Big Data Technologies - Introduction.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
20250228 LYD VKU AI Blended-Learning.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Teaching material agriculture food technology
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Machine learning based COVID-19 study performance prediction
Network Security Unit 5.pdf for BCA BBA.
KodekX | Application Modernization Development
Electronic commerce courselecture one. Pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Approach and Philosophy of On baking technology

IBM Domino Modernizing apps with Angularjs

  • 1. Modernising a Notes app with AngularJS
  • 2. /Me • Long-time Domino/ XPage/ web developer • Freelance web developer • Co-owner of Viaware • Fan of everything web dev • Open source dev, blogger (http://linqed.eu) • IBM Champion 2011-2015
  • 3. Project Background - business • Norwegian manufacturing company • 15+ year old IBM Notes client application • Business critical • Create offers • Manage projects • Technical specifications • After sales
  • 4. Project Background - technical • Running on Notes 9 (client only) • E-mail integration • modified mail file • Document generation • Integrations with ERP system • Infor M3
  • 5. Business Case (1/2) • Reduce dependency on Notes client/ Notes mail • Reduce dependency on 3rd party tools • Keep IBM Domino as data store and application server • Build on existing data • Clean-up/ improve data model
  • 6. Business Case (2/2) • Recently decided to use Infor Document Management (IDM) • Seamless integration with Infor M3 and IDM • Modern (API based) architecture • Modern UI / UX • Prepare for use on mobile devices • Test project for other applications
  • 7. Project Setup • Working remotely, developing locally • Source control is an absolute must • For NSF’s as well as Angular app • …and documentation/ guidelines/ configuration • Divide work: backend vs frontend
  • 8. Architecture Windows server HTML
 CSS
 JS REST API IDM JDBC
 M3 API M3 browser Web server
 Reverse proxy
 SSL AD NTLM LDAP NTLM
  • 9. The Backend (1/2) • REST API built in Java • Servlets running in a NSF on Domino • https://edm00se.io/servlet-series/ • ExtLib REST Controls for views • org.openntf.domino API • Apache POI for spreadsheet generation • xDocReport for document generation • DOCX and PDF
  • 10. The Backend (2/2) • NGINX • Webserver for the AngularJS app • Proxy for Domino, Connections and IDM • SSL • LDAP connection to Active Directory • SSO with Domino & Infor • Other 3rd party libraries • GSON, Joda
  • 11. The Frontend (1/2) • All JavaScript • AngularJS v1.5+ • Because v2 wasn’t ready yet • UI theme from wrapbootstrap.com • Bootstrap, Font Awesome • Angular app also used as UI for IDM and Connections
  • 12. The Frontend (2/2) • Various Angular projects • Angular UI • AngularJS-Toaster • textAngular • ng-file-upload • lodash • angular-formly • cleave.js
  • 13. Lodash var numDays = [16, 30, 52]; var total = 0;
 for (var i=0; i<numDays.length; i++) {
 total += numDays[i];
 } var total = _.sumBy(numDays, 
 function(d) { return parseInt(d, 10); } ); _.indexOf( numDays, 30); //1 var users = [ 
 { name : ‘Mark’, id : 1}, 
 { name : ‘Betty’, id : 2 } 
 ]; var betty = _.find(users, { id : 2 } );
 
 var sortedByName = _.sortBy(
 users, 
 function (i) { return i.name; }
 ); • Library of JavaScript functions
  • 14. Angular-Formly • Information in REST API drives the frontend • Create forms based on server-side configuration
  • 15. Tools • Visual Studio Code • Bower • Grunt • NPM • IBM Domino Designer
  • 16. Challenges (some of them…) & takeaways • Complex setup, complex app • Maintaining all dependencies: • Stick with versions that work • Infor IDM integration • Java version of the API • Use source control. • Not a happy couple with Domino; Swiper helps • Learn the tooling • Try out to see what works