SlideShare a Scribd company logo
1 of 35
Download to read offline
ABrandNewWebsite/AppinAngulaJS|Ionic:ReusingyouroldsiteABrandNewWebsite/AppinAngulaJS|Ionic:Reusingyouroldsite
Sumit KSumit K
Angular JSAngular JS
IonicIonic
http://goo.gl/ACi2tP
Mobile App or A Brand
New Website in
AngularJS
By: SUMIT KATARIA
What it means to me?What it means to me?
Better or Mess?Better or Mess?
DECOUPLING DRUPALDECOUPLING DRUPAL
REALLY?REALLY?
Really can we save 70% of our budget and still
get an amazingly fast CMS driven website?
So what is this content as a service and decoupled CMS?
You can power multiple websites with one backend system. Easy to maintain.
ANDAND
MOREMORE
FUNFUN
Theming in Drupal is tedious and tricky
Reasons to go Decoupled
UI and backend are independent
More natural design process
Use advanced tools like grunt, gulp, bower etc
No CMS theming
Ease for themers
For Themers
Mr Themer, make a
request to the
service $http('/posts.json')
in JavaScript in order
to obtain the data.
You can write your own
CSS and HTML from
scratch.
IONIC
your mobile apps! and website.
AngularJS: MVC which elegantly
separates controller, business, and
model logic in your application.
Can power
Clean Markup
<div class="row" >
<div class="col-sm-3" ng-repeat="product in products">
<div class="panel panel-default text-center">
<div class="panel-heading">
<strong>{{product.node.title}}</strong>
</div>
<div class="panel-body">
<h3 class="panel-title price">${{product.node.amount}}
<span class="price-cents"></span>
<span class="price-month">mo.</span>
</h3>
</div>
<ul class="list-group">
<li class="list-group-item">{{product.node.projects}} Projects</li>
<li class="list-group-item">{{product.node.space_gb}} GB of Storage</li>
<li class="list-group-item">Up to {{product.node.users}} Users</li>
<li class="list-group-item">{{product.node.space_gb}} GB Bandwidth</li>
<li class="list-group-item">{{product.node.special}}</li>
<li class="list-group-item"><a class="btn btn-primary">Sign Up Now!</a>
</li>
</ul>
</div>
</div>
</div>
Nothing can replace authoring experience
Why still use a CMS
Media management
Communicating to 3rd party APIs
Securing user data
Structring with content types, taxonomies etc
NPR's backend system has been on for 12
years.
NPR and Netflix
To built a backend system
which can offer
an API to
many client applications
Great front end
Results
Very fast and responsive sites
Can build mobile apps on same platform
APIs can power other desktop/mobile apps
Easier upgrades
Faster development cycles
Lose multilingual and localization out of the box
Problems with decoupled
Accessibility
Rebuild layout management
Accessibility improvements made to core: ARIA, data and
schema.org attributes.
Drupal 7 / 8
Drupal Architecture
RESTful / Services module
Little or NO custom code
Views datasource
A web service exposes raw Drupal data at
certain URLs (endpoints) of your Drupal site.
Web Services
REST is an architectural pattern guiding our
interaction with data.
Rest API
Core - Web Services (core) allows for all core entities to be exposed as
JSON+HAL; Views natively supports “REST export” as a new display type.
Drupal 8
WSCCI (Web Services and Context Core Initiative) incorporated Web
Services into Drupal 8 core.
Data Flow
Data Flow 2
API Call
$http.get('http://headless:8888/api/blogs.json')
.then(function(resp) {
console.log(resp);
$scope.blogs = resp.data['nodes'];
// For JSON responses, resp.data contains the result
}, function(err) {
console.error('ERR', err);
// err.status will contain the status code
})
Fetch using Service
app.factory('blogService', function($http) {
return {
getBlogs: function(callback) {
$http.get('http://headless:8888/api/blogs.json').success(callback);
}
}
});
Fetching Single Node
app.factory('nodeService', function($http) {
return {
getNode: function(nid, callback) {
$http.get('http://headless:8888/node/' + nid).success(callback);
}
}
}
Data
"nodes": [
{
"node": {
"title": "Antehabeo Distineo",
"description": "Illum jumentum lucidus ulciscor. Ex in nobis torqueo. Letalis olim sino.
"image": {
"src": "http://headless:8888/sites/default/files/styles/600x300/public/portfolio-9.jpg?
"alt": ""
},
"nid": "9",
"date": "1 day 10 hours"
}
}
}
Angular Representation
<div class="row" ng-repeat="blog in blogs">
<div class="col-md-1">
<p>{{blog.node.date}}</p>
</div>
<div class="col-md-5">
<a href="blog-post.html">
<img src="{{blog.node.image.src}}" class="img-responsive">
</a>
</div>
<div class="col-md-6">
<h3><a href="#/node/{{blog.node.nid}}">{{blog.node.title}}</a></h3>
<p>by <a href="#">{{blog.node.author}}</a></p>
<p>{{blog.node.description}}</p>
<a class="btn btn-primary" href="#/node/{{blog.node.nid}}">
Read More <i class="fa fa-angle-right"></i>
</a>
</div>
</div>
Routing
app.config(['$routeProvider', function($routeProvider) {
$routeProvider
// Home
.when("/", {
templateUrl: "partials/home.html",
controller: "HomeCtrl"
})
// Pages
.when("/about", {
templateUrl: "partials/about.html",
controller: "PageCtrl"
})
.when("/faq", {
templateUrl: "partials/faq.html",
controller: "FAQCtrl"
})
// else 404
.otherwise("/404", {
templateUrl: "partials/404.html",
controller: "PageCtrl"
});
}]);
Integrating
with Clients
Ionic based cordova apps (Angular JS)
Mobile / Web apps
AngularJS website
For Drupal 7 + Services :
https://github.com/easystreet3/angular-drupal
Angular - Drupal
DEMOSDEMOS
Progressive decoupling
Decouple only components of the page.
Maintain Drupal functionality such as site
building tools, security, accessibility, and
layout management
Other tools...
React JS
Ember
Others ...
http://goo.gl/ACi2tPhttp://goo.gl/ACi2tP
Thank U+
http://sumitk.net
@sumitk d.o twitter
Questions

More Related Content

What's hot

Cloud Endpoints _Polymer_ Material design by Martin Görner
Cloud Endpoints_Polymer_Material design by Martin GörnerCloud Endpoints_Polymer_Material design by Martin Görner
Cloud Endpoints _Polymer_ Material design by Martin GörnerEuropean Innovation Academy
 
12 hot features to engage and save time with aem 6.2
12 hot features to engage and save time with aem 6.212 hot features to engage and save time with aem 6.2
12 hot features to engage and save time with aem 6.2Tricode (part of Dept)
 
Intro to Rails Give Camp Atlanta
Intro to Rails Give Camp AtlantaIntro to Rails Give Camp Atlanta
Intro to Rails Give Camp AtlantaJason Noble
 
Baking With Cake Php
Baking With Cake PhpBaking With Cake Php
Baking With Cake Phpvalberg
 
2013 - Back to the Future with Client/Server Development
2013 - Back to the Future with Client/Server Development 2013 - Back to the Future with Client/Server Development
2013 - Back to the Future with Client/Server Development Chris O'Connor
 
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17GreeceJS
 
Tokyo Azure Meetup #14 - Azure Functions Proxies
Tokyo Azure Meetup #14  -  Azure Functions ProxiesTokyo Azure Meetup #14  -  Azure Functions Proxies
Tokyo Azure Meetup #14 - Azure Functions ProxiesTokyo Azure Meetup
 
How angularjs saves rails
How angularjs saves railsHow angularjs saves rails
How angularjs saves railsMichael He
 
AngularJS meets Rails
AngularJS meets RailsAngularJS meets Rails
AngularJS meets RailsElena Torró
 
Thoughts on Component Resuse
Thoughts on Component ResuseThoughts on Component Resuse
Thoughts on Component ResuseJustin Edelson
 
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEMDo more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEMBob Paulin
 

What's hot (20)

JOSA TechTalks - Better Web Apps with React and Redux
JOSA TechTalks - Better Web Apps with React and ReduxJOSA TechTalks - Better Web Apps with React and Redux
JOSA TechTalks - Better Web Apps with React and Redux
 
Cloud Endpoints _Polymer_ Material design by Martin Görner
Cloud Endpoints_Polymer_Material design by Martin GörnerCloud Endpoints_Polymer_Material design by Martin Görner
Cloud Endpoints _Polymer_ Material design by Martin Görner
 
12 hot features to engage and save time with aem 6.2
12 hot features to engage and save time with aem 6.212 hot features to engage and save time with aem 6.2
12 hot features to engage and save time with aem 6.2
 
Intro to Rails Give Camp Atlanta
Intro to Rails Give Camp AtlantaIntro to Rails Give Camp Atlanta
Intro to Rails Give Camp Atlanta
 
jQuery Intro
jQuery IntrojQuery Intro
jQuery Intro
 
Google Polymer Framework
Google Polymer FrameworkGoogle Polymer Framework
Google Polymer Framework
 
Road Show Asp Net
Road Show Asp NetRoad Show Asp Net
Road Show Asp Net
 
Baking With Cake Php
Baking With Cake PhpBaking With Cake Php
Baking With Cake Php
 
Introduction to polymer project
Introduction to polymer projectIntroduction to polymer project
Introduction to polymer project
 
2013 - Back to the Future with Client/Server Development
2013 - Back to the Future with Client/Server Development 2013 - Back to the Future with Client/Server Development
2013 - Back to the Future with Client/Server Development
 
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
 
AngularJS
AngularJSAngularJS
AngularJS
 
Tokyo Azure Meetup #14 - Azure Functions Proxies
Tokyo Azure Meetup #14  -  Azure Functions ProxiesTokyo Azure Meetup #14  -  Azure Functions Proxies
Tokyo Azure Meetup #14 - Azure Functions Proxies
 
App Engine
App EngineApp Engine
App Engine
 
Catalog display
Catalog displayCatalog display
Catalog display
 
How angularjs saves rails
How angularjs saves railsHow angularjs saves rails
How angularjs saves rails
 
AngularJS meets Rails
AngularJS meets RailsAngularJS meets Rails
AngularJS meets Rails
 
Thoughts on Component Resuse
Thoughts on Component ResuseThoughts on Component Resuse
Thoughts on Component Resuse
 
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEMDo more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
 
Dash of ajax
Dash of ajaxDash of ajax
Dash of ajax
 

Similar to Drupalcon Mumbai

Drupal & AngularJS - DrupalCamp Spain 2014
Drupal & AngularJS - DrupalCamp Spain 2014Drupal & AngularJS - DrupalCamp Spain 2014
Drupal & AngularJS - DrupalCamp Spain 2014Juampy NR
 
Serverless GraphQL for Product Developers
Serverless GraphQL for Product DevelopersServerless GraphQL for Product Developers
Serverless GraphQL for Product DevelopersSashko Stubailo
 
Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Bluegrass Digital
 
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...DrupalCamp Kyiv
 
Headless Drupal en pratique
Headless Drupal en pratiqueHeadless Drupal en pratique
Headless Drupal en pratiqueSimon Morvan
 
European SharePoint Conference 2017 - SharePoint Framework, Angular & Azure F...
European SharePoint Conference 2017 - SharePoint Framework, Angular & Azure F...European SharePoint Conference 2017 - SharePoint Framework, Angular & Azure F...
European SharePoint Conference 2017 - SharePoint Framework, Angular & Azure F...Sébastien Levert
 
The Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyThe Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyRobert Dempsey
 
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...Fwdays
 
RestFul Web Services In Drupal 8
RestFul Web Services In Drupal 8RestFul Web Services In Drupal 8
RestFul Web Services In Drupal 8Gajendra Sharma
 
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 an...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 an...Mark Leusink
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...Mark Roden
 
Introducing ASP.NET Core 2.0
Introducing ASP.NET Core 2.0Introducing ASP.NET Core 2.0
Introducing ASP.NET Core 2.0Steven Smith
 
Umbraco Cape Town Meetup Presentation
Umbraco Cape Town Meetup PresentationUmbraco Cape Town Meetup Presentation
Umbraco Cape Town Meetup PresentationBluegrass Digital
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMAdobeMarketingCloud
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMAdobeMarketingCloud
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMconnectwebex
 

Similar to Drupalcon Mumbai (20)

Drupal & AngularJS - DrupalCamp Spain 2014
Drupal & AngularJS - DrupalCamp Spain 2014Drupal & AngularJS - DrupalCamp Spain 2014
Drupal & AngularJS - DrupalCamp Spain 2014
 
Serverless GraphQL for Product Developers
Serverless GraphQL for Product DevelopersServerless GraphQL for Product Developers
Serverless GraphQL for Product Developers
 
Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015
 
Mashups
MashupsMashups
Mashups
 
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
 
Headless Drupal en pratique
Headless Drupal en pratiqueHeadless Drupal en pratique
Headless Drupal en pratique
 
European SharePoint Conference 2017 - SharePoint Framework, Angular & Azure F...
European SharePoint Conference 2017 - SharePoint Framework, Angular & Azure F...European SharePoint Conference 2017 - SharePoint Framework, Angular & Azure F...
European SharePoint Conference 2017 - SharePoint Framework, Angular & Azure F...
 
The Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyThe Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with Ruby
 
Mean stack Magics
Mean stack MagicsMean stack Magics
Mean stack Magics
 
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
 
RestFul Web Services In Drupal 8
RestFul Web Services In Drupal 8RestFul Web Services In Drupal 8
RestFul Web Services In Drupal 8
 
Sst hackathon express
Sst hackathon expressSst hackathon express
Sst hackathon express
 
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 an...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 an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
Introducing ASP.NET Core 2.0
Introducing ASP.NET Core 2.0Introducing ASP.NET Core 2.0
Introducing ASP.NET Core 2.0
 
Umbraco Cape Town Meetup Presentation
Umbraco Cape Town Meetup PresentationUmbraco Cape Town Meetup Presentation
Umbraco Cape Town Meetup Presentation
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

Drupalcon Mumbai

  • 1.
  • 3. Mobile App or A Brand New Website in AngularJS By: SUMIT KATARIA
  • 4. What it means to me?What it means to me? Better or Mess?Better or Mess? DECOUPLING DRUPALDECOUPLING DRUPAL REALLY?REALLY?
  • 5. Really can we save 70% of our budget and still get an amazingly fast CMS driven website? So what is this content as a service and decoupled CMS? You can power multiple websites with one backend system. Easy to maintain. ANDAND MOREMORE FUNFUN
  • 6. Theming in Drupal is tedious and tricky Reasons to go Decoupled UI and backend are independent More natural design process Use advanced tools like grunt, gulp, bower etc No CMS theming Ease for themers
  • 7. For Themers Mr Themer, make a request to the service $http('/posts.json') in JavaScript in order to obtain the data. You can write your own CSS and HTML from scratch.
  • 8. IONIC your mobile apps! and website. AngularJS: MVC which elegantly separates controller, business, and model logic in your application. Can power
  • 9. Clean Markup <div class="row" > <div class="col-sm-3" ng-repeat="product in products"> <div class="panel panel-default text-center"> <div class="panel-heading"> <strong>{{product.node.title}}</strong> </div> <div class="panel-body"> <h3 class="panel-title price">${{product.node.amount}} <span class="price-cents"></span> <span class="price-month">mo.</span> </h3> </div> <ul class="list-group"> <li class="list-group-item">{{product.node.projects}} Projects</li> <li class="list-group-item">{{product.node.space_gb}} GB of Storage</li> <li class="list-group-item">Up to {{product.node.users}} Users</li> <li class="list-group-item">{{product.node.space_gb}} GB Bandwidth</li> <li class="list-group-item">{{product.node.special}}</li> <li class="list-group-item"><a class="btn btn-primary">Sign Up Now!</a> </li> </ul> </div> </div> </div>
  • 10. Nothing can replace authoring experience Why still use a CMS Media management Communicating to 3rd party APIs Securing user data Structring with content types, taxonomies etc
  • 11. NPR's backend system has been on for 12 years. NPR and Netflix
  • 12. To built a backend system which can offer an API to many client applications
  • 13. Great front end Results Very fast and responsive sites Can build mobile apps on same platform APIs can power other desktop/mobile apps Easier upgrades Faster development cycles
  • 14. Lose multilingual and localization out of the box Problems with decoupled Accessibility Rebuild layout management Accessibility improvements made to core: ARIA, data and schema.org attributes.
  • 15. Drupal 7 / 8 Drupal Architecture RESTful / Services module Little or NO custom code Views datasource
  • 16. A web service exposes raw Drupal data at certain URLs (endpoints) of your Drupal site. Web Services
  • 17. REST is an architectural pattern guiding our interaction with data. Rest API
  • 18. Core - Web Services (core) allows for all core entities to be exposed as JSON+HAL; Views natively supports “REST export” as a new display type. Drupal 8 WSCCI (Web Services and Context Core Initiative) incorporated Web Services into Drupal 8 core.
  • 21. API Call $http.get('http://headless:8888/api/blogs.json') .then(function(resp) { console.log(resp); $scope.blogs = resp.data['nodes']; // For JSON responses, resp.data contains the result }, function(err) { console.error('ERR', err); // err.status will contain the status code })
  • 22. Fetch using Service app.factory('blogService', function($http) { return { getBlogs: function(callback) { $http.get('http://headless:8888/api/blogs.json').success(callback); } } });
  • 23. Fetching Single Node app.factory('nodeService', function($http) { return { getNode: function(nid, callback) { $http.get('http://headless:8888/node/' + nid).success(callback); } } }
  • 24. Data "nodes": [ { "node": { "title": "Antehabeo Distineo", "description": "Illum jumentum lucidus ulciscor. Ex in nobis torqueo. Letalis olim sino. "image": { "src": "http://headless:8888/sites/default/files/styles/600x300/public/portfolio-9.jpg? "alt": "" }, "nid": "9", "date": "1 day 10 hours" } } }
  • 25. Angular Representation <div class="row" ng-repeat="blog in blogs"> <div class="col-md-1"> <p>{{blog.node.date}}</p> </div> <div class="col-md-5"> <a href="blog-post.html"> <img src="{{blog.node.image.src}}" class="img-responsive"> </a> </div> <div class="col-md-6"> <h3><a href="#/node/{{blog.node.nid}}">{{blog.node.title}}</a></h3> <p>by <a href="#">{{blog.node.author}}</a></p> <p>{{blog.node.description}}</p> <a class="btn btn-primary" href="#/node/{{blog.node.nid}}"> Read More <i class="fa fa-angle-right"></i> </a> </div> </div>
  • 26. Routing app.config(['$routeProvider', function($routeProvider) { $routeProvider // Home .when("/", { templateUrl: "partials/home.html", controller: "HomeCtrl" }) // Pages .when("/about", { templateUrl: "partials/about.html", controller: "PageCtrl" }) .when("/faq", { templateUrl: "partials/faq.html", controller: "FAQCtrl" }) // else 404 .otherwise("/404", { templateUrl: "partials/404.html", controller: "PageCtrl" }); }]);
  • 28. Ionic based cordova apps (Angular JS) Mobile / Web apps AngularJS website
  • 29. For Drupal 7 + Services : https://github.com/easystreet3/angular-drupal Angular - Drupal
  • 31. Progressive decoupling Decouple only components of the page. Maintain Drupal functionality such as site building tools, security, accessibility, and layout management