SlideShare a Scribd company logo
A FRONT-END PERSPECTIVE & APPROACH
RAMI ENBASHI . NRG-EDGE

MAY 6 , 2015 . FOSTER CITY, CALIFORNIA
SOLVING FOR COMPLEX
UI DESIGNS
About me
I am lazy
Work smart
not hard
Work on fresh ideas
not tedious tasks
Productive
Laziness
Productivity
Good decision making
Decision Fatigue
A lazy team is a
productive team
The machine
Automate my
workflow
Magnolia
The story of Mr. X
and the green bars
A lazy user is a
happy user
A lazy developer is a
productive developer
Magnolia Template
Development
How do we get there?
UI Sandbox™
Background
UI-Focused, Content
Managed,
Responsive Solutions
UI-Focused
Design first
Complex client-side
functionality
Project
Manager
Lead
Analyst
DesignerDev Lead
UI Lead
Magnolia
Lead
UI
Developer
UI
Developer
Magnolia
Developer
Magnolia
Developer
Analyst/
Tester
Analyst/
Tester
Express
CSS JS HTML
The problem
The environment
Magnolia
Dev
UI Dev
Magnolia
Dev
UI Dev
The process
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
Wireframes
Color Palate
Typography
Style Guide
Interaction Guide
High Fidelity Designs
(PSDs)
UX/Design
Mobile Strategy
Template Analysis
UI Development
UI Build / QA
UI-Magnolia Sync
Magnolia Development
Final Testing
Major/Minor Breakpoints
Supported Devices
Grid System Definition
Fluid/Fixed-width Layout
Responsive/Adaptive
01
02
03
04
05
06
07
08
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
Content Managed Fields
Templates
Areas
Components
Content Type
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
Design Implementation
Client-side Functionality
Front-end API Integration
Functional Website
Template Engine


var$data$=${$
$$title:$'My$Buddies',$
$$friends:$[$
$$$$'Tyrion',$
$$$$'Arya',$
$$$$'Ygritte',$
$$$$'Drogo'$
$$]$
};



<h1>{{$title$}}</h1>$
<ul>$
{%$for$friend$in$friends$%}$
$$$$<li>{{$friend$}}</li>$
{%$endfor$%}$
</ul>



<h1>My$Buddies</h1>$
<ul>$
$$$$<li>Tyrion</li>$
$$$$<li>Arya</li>$
$$$$<li>Ygritte</li>$
$$$$<li>Drogo</li>$
</ul>

+ →
.
├── global
│   ├── areas
│   │   ├── footer.swig
│   │   ├── htmlHeader.swig
│   │   ├── logo.swig
│   │   ├── mainArea.swig
│   │   └── navigation.swig
│   ├── components
│   │   └── genericContent.swig
│   └── macros
│   └── calculator.swig
├── layouts
│   ├── about.swig
│   ├── generic.swig
│   └── homepage.swig
└── pages
└── homepage
├── areas
│   ├── callout.swig
│   ├── features.swig
│   ├── products.swig
│   ├── welcome.swig
│   └── whoWeAre.swig
└── components
└── featureItem.swig


<div$id="welcome">$
$$<div$class="container">$
$$$$<h3$$class="heading">Welcome$to$Launch</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<a$href="/login"$class=“login">Log$In</a>$
$$</div>$
</div>$
#welcome{$
$$background:$url(../assets/images/welcomeYbg.jpg)$noYrepeat$50%$84%;$
$$backgroundYsize:$cover;$
$$width:$inherit;$
}$
CSS
HTML


<div$id=“welcome"$style=“backgroundYimage:$url(../assets/images/welcomeYbg.jpg)”$>$
$$<div$class="container">$
$$$$<h3$$class="heading">Welcome$to$Launch</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<a$href="/login"$class=“login">Log$In</a>$
$$</div>$
</div>$
#welcome{$
$$background:$noYrepeat$50%$84%;$
$$backgroundYsize:$cover;$
$$width:$inherit;$
}$
CSS
HTML
Bower
Front-end Dependency
Management


{$
$$"name":$"magnoliaYdemo",$
$$"version":$"1.3.0YSNAPSHOT",$
$$"dependencies":${$
$$$$"angular":$">=1.3.*",$
$$$$"json3":$"~3.3.1",$
$$$$"es5Yshim":$"~3.0.1",$
$$$$"foundation":$"~5.4.3",$
$$$$"angularYresource":$">=1.2.*",$
$$$$"angularYcookies":$">=1.2.*",$
$$$$"angularYsanitize":$">=1.2.*",$
$$$$"fontYawesome":$">=4.1.0",$
$$$$"lodash":$"~2.4.1",$
$$$$"angularYuiYrouter":$"~0.2.10",$
$$$$"ngYlodash":$"~0.0.2",$
$$$$"cssYtoggleYswitch":$"~3.0.0",$
$$$$"angularYplaceholderYtai":$"~1.0.1",$
$$$$"angularYscroll":$"~0.6.4",$
$$$$"angularjsYgeolocation":$"~0.1.1",$
$$$$"mobileYdetect":$"hgoebl/mobileYdetect.js#~0.4.3"$
$$},$
$$"devDependencies":${$
$$$$"angularYmocks":$">=1.2.*",$
$$$$"angularYscenario":$">=1.2.*"$
$$}$
}$
bower.json
Grunt
Task Runner
Compiling
Injection
Minification
UnCSS
Watch / Live Reload
Testing
Deployment
module.exports$=$function(grunt)${$
$$grunt.initConfig({$
$$$$jshint:${$
$$$$$$files:$['Gruntfile.js',$'src/**/*.js',$$$$$$$$$$$
'test/**/*.js'],$
$$$$$$options:${$
$$$$$$$$globals:${$
$$$$$$$$$$jQuery:$true$
$$$$$$$$}$
$$$$$$}$
$$$$},$
$$$$watch:${$
$$$$$$files:$['<%=$jshint.files$%>'],$
$$$$$$tasks:$['jshint']$
$$$$}$
$$});$
$$grunt.loadNpmTasks('gruntYcontribYjshint');$
$$grunt.loadNpmTasks('gruntYcontribYwatch');$
$$grunt.registerTask('default',$['jshint']);$
};$
{"
"""name":""magnolia-frontend","
"""version":""1.0.1","
"""dependencies":"{},"
"""devDependencies":"{"
"""""bower":""~1.3.3","
"""""browserify":""~6.2.0","
"""""grunt":""~0.4.2","
"""""grunt-autoprefixer":""~1.0.1","
"""""grunt-browserify":""~3.2.0","
"""""grunt-contrib-concat":""~0.5.0","
"""""grunt-contrib-cssmin":""~0.10.0","
"""""grunt-contrib-htmlmin":""~0.3.0","
"""""grunt-contrib-imagemin":""~0.9.1","
"""""grunt-contrib-jshint":""~0.10.0","
"""""grunt-contrib-less":""~0.12.0","
"""""grunt-contrib-uglify":""~0.6.0","
"""""grunt-contrib-watch":""~0.6.1","
"""""grunt-injector":""~0.5.3","
"""""grunt-karma":""~0.9.0","
"""""grunt-swig-templates":""~0.1.2","
"""""grunt-usemin":""2.1.1","
"""""jshint-stylish":""~1.0.0","
"""""karma":""~0.12.21","
"""""karma-chrome-launcher":""^0.1.7","
"""""karma-phantomjs-launcher":""~0.1.2","
"""""kss":""~1.3.0","
"""""lodash":""~2.4.1","
"""""minifyify":""~5.0.0""
"}"
}"
Gruntfile.json package.json
Yeoman
App Scaffolding Tool
Knyle Style Sheets
(KSS)
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
Centralized CI Build
Automated Tests
Browser / Device
Compatibility Testing
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
A process to allow
incremental UI changes
with minimal configuration
or backend changes
{"
"""name":""magnolia-frontend","
"""version":"“1.0.1-SNAPSHOT”,"
"""dependencies":"{},"
"""devDependencies":"{"
""""..."
"}"
}"
package.json
$$<groupId>com.project.frontend</groupId>$
$$<artifactId>projectYmoduleYtheme</artifactId>$
$$<version>1.0.1YSNAPSHOT</version>$
$$<name>Project$Magnolia$Theme</name>$
pom.xml
<plugin>$
$$<groupId>org.jasig.maven</groupId>$
$$<artifactId>sassYmavenYplugin</artifactId>$
</plugin>$
SASS
<plugin>$
$$<groupId>pl.allegro</groupId>$
$$<artifactId>gruntYmavenYplugin</artifactId>$
</plugin>$
Grunt
http://addyosmani.com/blog/making-maven-grunt
<plugin>$
$$<groupId>com.github.eirslett</groupId>$
$$<artifactId>frontendYmavenYplugin</artifactId>$
</plugin>$
NodeJS
<execution>$
$$<id>npm$install</id>$
</execution>$
<execution>$
$$<id>bower$install</id>$
</execution>$
<execution>$
$$<id>grunt$build</id>$
<configuration>$
$$<arguments>build:magnolia</arguments>$
</configuration>$
</execution>$
{$
//$Environment$targets$
$$development:${$
$$$$options:${$
$$$$$$loginURL:$'http://localhost:9000/login'$
$$$$$$herokuPath:$'git@heroku.com:devYproject.git',$
$$$$$$endpoint:$'content/products.json',$
$$$$$$googleMapsKey:$'AucmoT6cAyH9TeXeGGqsB8LIYoJhvs',$
$$$$$$assetsPath:$'assets/images'$
$$$$}$
$$},$
$$magnoliaBuild:${$
$$$$options:${$
$$$$$$loginURL:$'/login'$
$$$$$$herokuPath:$'git@heroku.com:mgnlYproject.git',$
$$$$$$endpoint:$'/magnoliaYinstance/.rest/products',$
$$$$$$googleMapsKey:$'zciuv2aS1N04nujJw0_hZoP',$
$$$$$$assetsPath:$'/.resources/projectYmoduleYtheme/assets/images'$
$$$$}$
$$}$
}
Gruntfile.json
angular.module('app')$
$$.factory('products',$function($http)${$
$$$$return${$
$$$$$$getProducts:$function(params)${$
$$$$$$$$return$$http.get('content/products.json',${$params:$params$});$
$$$$$$}$
$$$$};$
$$});$
products.service.js
angular.module('app')$
$$.factory('products',$function($http)${$
$$$$return${$
$$$$$$getProducts:$function(params)${$
$$$$$$$$return$$http.get(‘/magnoliaYinstance/.rest/products',${$params:$params$});$
$$$$$$}$
$$$$};$
$$});$
angular.module('app')$
$$.factory('products',$function($http,$ENV)${$
$$$$return${$
$$$$$$getProducts:$function(params)${$
$$$$$$$$return$$http.get(ENV.endpoint,${$params:$params$});$
$$$$$$}$
$$$$};$
$$});$


<div$id="welcome">$
$$<div$class="container">$
$$$$<h3$class=“heading”>{{content.headingText}}</h3>$
$$$$<h4$class=“subheading”>{{content.subheadingText}}</h4>$
$$</div>$
</div>$
welcome.swig


<div$id="welcome">$
$$<div$class="container">$
$$$$<h3$class=“heading">${content.headingText}</h3>$
$$$$<h4$class=“subheading">${content.subheadingText}</h4>$
$$</div>$
</div>$
welcome.ftl
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
Template configuration
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
Template
Configuration


<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$$class="heading">Who$We$Are</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<div$class="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
Area Definiton
Dialog Definiton


<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$$class=“heading">${content.headingText!}</h3>$
$$$$<h4$class=“subheading">${content.subheadingText!}</h4>$
$$$$<div$class="bodyText">$
$$$$$$${cmsfn.decode(content).bodyText}$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
Template Script
Pages App
Content
Configuration hell
YO DAWG, I HEARD YOU LIKE
MAGNOLIA CONFIGURATION
SO I PUT CONFIGURATION IN YOUR
CONFIGURATION SO YOU CAN
CONFIGURE YOUR CONFIGURATION.
Alternative
configuration methods
http://kickstart.io
STK
A front-end solution
UI Sandbox™


<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$$class="heading">Who$We$Are</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<div$class="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
Area
Definiton
Template
Script
Dialog
Definiton
Content
Introduce conventions
Abstract out conventional
configuration
Specify only unconventional
configuration
Examples of Area
Definition conventions
• Area name = HTML element ID in camelCase
• “who-we-are” => “whoWeAre”
• Area title = Area name in Title Case
• “whoWeAre” => “Who We Are”
Defaults
• type = “noComponent”
• renderType = “freemarker”
• enabled = true


<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$$class="heading">Who$We$Are</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<div$class="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
Autogenerate
Area$Definition$:{$
name:$“whoWeAre",$
title:$“Who$We$Are”,$
enabled:$true,$
type:$“noComponent”,$
renderType:$“freemarker”,$
templateScript:$“…”$
}$
Gain simplicity
Do we have to lose
Flexibility?
Convention over
Configuration (CoC)
“Convention over configuration is a software
design paradigm which seeks to decrease the
number of decisions that developers need to
make, gaining simplicity, but not necessarily
losing flexibility.”
Conventions are
subjective
Use Domain Specific
Language (DSL) rules to
define conventions
Rules$:{$
areaNameSuffix:$“Area”,$
dialogNameSuffix:$“Dialog”,$
defaultAreaType:$“noComponent”,$//$$or$“single”,$“list”$
areaEnabledByDefault:$true,$
defaultRenderType:$“freemarker”,$//$or$“jsp”$
...$
}$


<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$class="heading">Who$We$Are</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<div$class="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
Rules
Area$Definition$:{$
name:$“whoWeAre",$
title:$“Who$We$Are”,$
enabled:$true,$
type:$“noComponent”,$
renderType:$“freemarker”,$
templateScript:$“…”$
}$
Magnolia Config
+
→
Autogenerate
Minimum Effective Dose of
configuration (MED Config)
Implicit/Explicit
Configuration


<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$class="heading">Who$We$Are</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<div$class="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
Rules
Area$Definition$:{$
name:$“whoWeAre",$
title:$“Who$We$Are”,$
enabled:$true,$
type:$“noComponent”,$
renderType:$“freemarker”,$
templateScript:$“…”$
}$
Magnolia Config
+
→
Autogenerate


<div$id="whoYweYare"$areaYname="myArea">$
$$<div$class="container">$
$$$$<h3$class="heading">Who$We$Are</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<div$class="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
{"
areaName:"“myArea”"
}"
MED Config
Area$Definition$:{$
name:$“myArea",$
title:$“My$Area”,$
enabled:$true,$
type:$“noComponent”,$
renderType:$“freemarker”,$
templateScript:$“…”$
}$
Magnolia Config
+
→
Autogenerate


<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$class="heading">Who$We$Are</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<div$class="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$class=“heading"$field="heading">Who$We$Are</h3>$
$$$$<h4$class=“subheading"$field="subheading">We$are$a$Magnolia$CMS$Services$&$
Integration$Company</h4>$
$$$$<div$class=“bodyText"$field="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>
{"
content:"["
{"name:"“heading”,""
type:"“text”"
},"
{"name:"“subheading”,""
type:"“text”"
},"
{"name:"“bodyText”,""
type:"“richText”"
}"
]"
}
MED Config
+
→
<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$$class=“heading">$
${content.headingText!”Heading”}$
</h3>$
$$$$<h4$class=“subheading">$
${content.subheadingText!”Subheading”}$
</h4>$
$$$$<div$class="bodyText">$
$$$$$$${cmsfn.decode(content).bodyText!”bodytext”}$
$$$$</div>$
$$$$<a$href="/about"$class=“learnmore">$
Learn$More$
</a>$
$$</div>$
</div>
FTL Template
<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$class=“heading"$field="heading">Who$We$Are</h3>$
$$$$<h4$class=“subheading"$field="subheading">We$are$a$Magnolia$CMS$Services$&$
Integration$Company</h4>$
$$$$<div$class=“bodyText"$field="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>
{"
content:"["
{"name:"“heading”,""
type:"“text”"
},"
{"name:"“subheading”,""
type:"“text”"
},"
{"name:"“bodyText”,""
type:"“richText”"
}"
]"
}
MED Config
+
→ Dialog/Content
What did we gain?
Demo time!
Right technology
stack
Data binding
Source
Target
One-way data binding
Model
View
Two-way data binding
Template
ViewModel
Three-way data binding
UI Sandbox
DSL Rules
+
MGNL
Config
Slicing
In-memory
NoSQL DB
NoCR
REST
MED
Config
HTML
MGNL
Config
Magnolia
JCR
Template
Model View
Is this for everyone?
What’s next?
rami.enbashi@nrg-edge.com
Thank you

More Related Content

Similar to Solving for complex UI designs

How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...
How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...
How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...
Dan Olsen
 
Design for Web and Mobile
Design for Web and MobileDesign for Web and Mobile
Design for Web and Mobile
Shady Selim
 
chris-hellman-resume-2015
chris-hellman-resume-2015chris-hellman-resume-2015
chris-hellman-resume-2015Chris Hellman
 
Praveen Vadla_Resume_2017
Praveen Vadla_Resume_2017Praveen Vadla_Resume_2017
Praveen Vadla_Resume_2017Praveenvadla
 
Ramesh - Resume
Ramesh - ResumeRamesh - Resume
Ramesh - ResumeRAMESH C
 
UXD / DNA - DesignMap, Inc.
UXD / DNA - DesignMap, Inc.UXD / DNA - DesignMap, Inc.
UXD / DNA - DesignMap, Inc.
DesignMap
 
The Art of AngularJS in 2015
The Art of AngularJS in 2015The Art of AngularJS in 2015
The Art of AngularJS in 2015
Matt Raible
 
Play & Learn in Global UI/UX Design Competition
Play & Learn in Global UI/UX Design CompetitionPlay & Learn in Global UI/UX Design Competition
Play & Learn in Global UI/UX Design Competition
Afif Bimantara
 
Shashank_Shetkar_CV TESTING
Shashank_Shetkar_CV TESTINGShashank_Shetkar_CV TESTING
Shashank_Shetkar_CV TESTINGShashank Shetkar
 
Sarbajit Resume - Delivery Manager QA - Test Automation Consluting
Sarbajit Resume - Delivery Manager QA - Test Automation ConslutingSarbajit Resume - Delivery Manager QA - Test Automation Consluting
Sarbajit Resume - Delivery Manager QA - Test Automation Conslutingsarbajit Chakrabarty
 
shruthi correct resume
shruthi correct resumeshruthi correct resume
shruthi correct resumeShruthi GK Rao
 
Vamshi krishna kesetty
Vamshi krishna kesettyVamshi krishna kesetty
Vamshi krishna kesetty
Wipro Technologies
 
Innovation with Rapid Application Delivery
Innovation with Rapid Application DeliveryInnovation with Rapid Application Delivery
Innovation with Rapid Application Delivery
Exo Futures
 
Desenvolvimento Mobile Híbrido
Desenvolvimento Mobile HíbridoDesenvolvimento Mobile Híbrido
Desenvolvimento Mobile Híbrido
Juliano Martins
 
Please Define: Roles in User Experience Design
Please Define: Roles in User Experience DesignPlease Define: Roles in User Experience Design
Please Define: Roles in User Experience Design
Skye Sant
 
Going web native - Feb 2018
Going web native - Feb 2018Going web native - Feb 2018
Going web native - Feb 2018
Marcus Hellberg
 

Similar to Solving for complex UI designs (20)

How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...
How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...
How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...
 
Design for Web and Mobile
Design for Web and MobileDesign for Web and Mobile
Design for Web and Mobile
 
susanta_resume
susanta_resumesusanta_resume
susanta_resume
 
chris-hellman-resume-2015
chris-hellman-resume-2015chris-hellman-resume-2015
chris-hellman-resume-2015
 
Praveen Vadla_Resume_2017
Praveen Vadla_Resume_2017Praveen Vadla_Resume_2017
Praveen Vadla_Resume_2017
 
Ramesh - Resume
Ramesh - ResumeRamesh - Resume
Ramesh - Resume
 
UXD / DNA - DesignMap, Inc.
UXD / DNA - DesignMap, Inc.UXD / DNA - DesignMap, Inc.
UXD / DNA - DesignMap, Inc.
 
The Art of AngularJS in 2015
The Art of AngularJS in 2015The Art of AngularJS in 2015
The Art of AngularJS in 2015
 
Play & Learn in Global UI/UX Design Competition
Play & Learn in Global UI/UX Design CompetitionPlay & Learn in Global UI/UX Design Competition
Play & Learn in Global UI/UX Design Competition
 
Resume
ResumeResume
Resume
 
Shashank_Shetkar_CV TESTING
Shashank_Shetkar_CV TESTINGShashank_Shetkar_CV TESTING
Shashank_Shetkar_CV TESTING
 
Sarbajit Resume - Delivery Manager QA - Test Automation Consluting
Sarbajit Resume - Delivery Manager QA - Test Automation ConslutingSarbajit Resume - Delivery Manager QA - Test Automation Consluting
Sarbajit Resume - Delivery Manager QA - Test Automation Consluting
 
shruthi correct resume
shruthi correct resumeshruthi correct resume
shruthi correct resume
 
Vamshi krishna kesetty
Vamshi krishna kesettyVamshi krishna kesetty
Vamshi krishna kesetty
 
sap.g - Copy
sap.g - Copysap.g - Copy
sap.g - Copy
 
Innovation with Rapid Application Delivery
Innovation with Rapid Application DeliveryInnovation with Rapid Application Delivery
Innovation with Rapid Application Delivery
 
Desenvolvimento Mobile Híbrido
Desenvolvimento Mobile HíbridoDesenvolvimento Mobile Híbrido
Desenvolvimento Mobile Híbrido
 
Please Define: Roles in User Experience Design
Please Define: Roles in User Experience DesignPlease Define: Roles in User Experience Design
Please Define: Roles in User Experience Design
 
resume
resumeresume
resume
 
Going web native - Feb 2018
Going web native - Feb 2018Going web native - Feb 2018
Going web native - Feb 2018
 

More from Magnolia

The SEO Workflow
The SEO WorkflowThe SEO Workflow
The SEO Workflow
Magnolia
 
Magnolia 6 release walkthrough
Magnolia 6 release walkthroughMagnolia 6 release walkthrough
Magnolia 6 release walkthrough
Magnolia
 
Buzzword bingo: The real deal behind omnichannel, personalization and headless
Buzzword bingo: The real deal behind  omnichannel, personalization and headlessBuzzword bingo: The real deal behind  omnichannel, personalization and headless
Buzzword bingo: The real deal behind omnichannel, personalization and headless
Magnolia
 
Developing Magnolia based sites correctly, quickly and efficiently
Developing Magnolia based sites correctly, quickly and efficientlyDeveloping Magnolia based sites correctly, quickly and efficiently
Developing Magnolia based sites correctly, quickly and efficiently
Magnolia
 
Integrating e-Commerce into your Customer Experience
Integrating e-Commerce into your Customer ExperienceIntegrating e-Commerce into your Customer Experience
Integrating e-Commerce into your Customer Experience
Magnolia
 
Customer Engagement in the Digital Era
Customer Engagement in the Digital EraCustomer Engagement in the Digital Era
Customer Engagement in the Digital Era
Magnolia
 
The Age of the IOT & Digital Business
The Age of the IOT & Digital BusinessThe Age of the IOT & Digital Business
The Age of the IOT & Digital Business
Magnolia
 
Using Magnolia in a Microservices Architecture
Using Magnolia in a Microservices ArchitectureUsing Magnolia in a Microservices Architecture
Using Magnolia in a Microservices Architecture
Magnolia
 
A modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianA modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at Atlassian
Magnolia
 
Magnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynoteMagnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynote
Magnolia
 
Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4
Magnolia
 
Launching Magnolia on demand
Launching Magnolia on demandLaunching Magnolia on demand
Launching Magnolia on demand
Magnolia
 
Front-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites fasterFront-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites faster
Magnolia
 
Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?
Magnolia
 
Magnolia and the IOT
Magnolia and the IOTMagnolia and the IOT
Magnolia and the IOT
Magnolia
 
Internationalization for globalized enterprise websites
Internationalization for globalized enterprise websitesInternationalization for globalized enterprise websites
Internationalization for globalized enterprise websites
Magnolia
 
The new visana website how to fit a square peg into a round hole
The new visana website   how to fit a square peg into a round holeThe new visana website   how to fit a square peg into a round hole
The new visana website how to fit a square peg into a round hole
Magnolia
 
Extending Magnolia with our solutions
Extending Magnolia with our solutionsExtending Magnolia with our solutions
Extending Magnolia with our solutions
Magnolia
 
Boost your online e commerce with magnolia
Boost your online e commerce with magnoliaBoost your online e commerce with magnolia
Boost your online e commerce with magnolia
Magnolia
 
The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4
Magnolia
 

More from Magnolia (20)

The SEO Workflow
The SEO WorkflowThe SEO Workflow
The SEO Workflow
 
Magnolia 6 release walkthrough
Magnolia 6 release walkthroughMagnolia 6 release walkthrough
Magnolia 6 release walkthrough
 
Buzzword bingo: The real deal behind omnichannel, personalization and headless
Buzzword bingo: The real deal behind  omnichannel, personalization and headlessBuzzword bingo: The real deal behind  omnichannel, personalization and headless
Buzzword bingo: The real deal behind omnichannel, personalization and headless
 
Developing Magnolia based sites correctly, quickly and efficiently
Developing Magnolia based sites correctly, quickly and efficientlyDeveloping Magnolia based sites correctly, quickly and efficiently
Developing Magnolia based sites correctly, quickly and efficiently
 
Integrating e-Commerce into your Customer Experience
Integrating e-Commerce into your Customer ExperienceIntegrating e-Commerce into your Customer Experience
Integrating e-Commerce into your Customer Experience
 
Customer Engagement in the Digital Era
Customer Engagement in the Digital EraCustomer Engagement in the Digital Era
Customer Engagement in the Digital Era
 
The Age of the IOT & Digital Business
The Age of the IOT & Digital BusinessThe Age of the IOT & Digital Business
The Age of the IOT & Digital Business
 
Using Magnolia in a Microservices Architecture
Using Magnolia in a Microservices ArchitectureUsing Magnolia in a Microservices Architecture
Using Magnolia in a Microservices Architecture
 
A modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianA modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at Atlassian
 
Magnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynoteMagnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynote
 
Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4
 
Launching Magnolia on demand
Launching Magnolia on demandLaunching Magnolia on demand
Launching Magnolia on demand
 
Front-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites fasterFront-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites faster
 
Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?
 
Magnolia and the IOT
Magnolia and the IOTMagnolia and the IOT
Magnolia and the IOT
 
Internationalization for globalized enterprise websites
Internationalization for globalized enterprise websitesInternationalization for globalized enterprise websites
Internationalization for globalized enterprise websites
 
The new visana website how to fit a square peg into a round hole
The new visana website   how to fit a square peg into a round holeThe new visana website   how to fit a square peg into a round hole
The new visana website how to fit a square peg into a round hole
 
Extending Magnolia with our solutions
Extending Magnolia with our solutionsExtending Magnolia with our solutions
Extending Magnolia with our solutions
 
Boost your online e commerce with magnolia
Boost your online e commerce with magnoliaBoost your online e commerce with magnolia
Boost your online e commerce with magnolia
 
The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4
 

Recently uploaded

First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 

Recently uploaded (20)

First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 

Solving for complex UI designs