SlideShare a Scribd company logo
Admin UI
Tools and development setup
Xavier Butty
Software Engineer
for the open minded
First name, Last name
Position
for the open mindedfor the open minded
How did we
develop the new
Admin UI?
01
– for the open minded
Development process
Design UI and
API
Integration
API
Backend
implementation
MocksFrontend
implementation
JS
First name, Last name
Position
for the open mindedfor the open minded
02
The right tools
for the job
– for the open minded
Code quality checker
CSS extension / compiler
Javascript framework
Task runner
Testing framework
Lightweight http server - Mocks
Test runner
Minification
Template pre-compilation
Compress img
– for the open minded
Code quality
The checkstyle tool for Javascript
Adaptable to code convention
Much more flexible than JSLint
JS Hint
– for the open minded
Demo JSHint
http://jshint.com/
– for the open minded
CSS extension
Enhance the stylesheet creation
Reusable component

Cascading

Mixins
LESS is currently used in the new Admin UI, 

but an update to SASS coming soon
Better scalability
Larger community
More resources available
– for the open minded
Demo Less
http://less2css.org/
– for the open minded
Javascript Framework
Most popular javascript MVW framework actually
Widely used
Large community supporting it
Powered by Google
Lots of valuable resources available online
Scalable
Short introduction coming at 11h30
– for the open minded
Testing frameworks
Behaviour driven unit tests frameworks
Most popular unit test solution for AngularJS
ngMocks AngularJS Module provides mocking for
the tests
– for the open minded
Test runner
Spawn a web server which loads your application's
source code and executes your tests
Highly configurable
De facto test runner for AngularJS
Existing Adapter for Jasmine
– for the open minded
Lightweight HTTP server
Connect
Extensible HTTP server framework
Used for development
Allow to use middleware for mocking the REST
endpoints.
Livereload
– for the open minded
Task runner
Javascript Task runner working on Node.js
Large choice of plugins for all the popular frontend
tools
The “Gruntfile” is what the “pom” is to Maven
GRUNT
First name, Last name
Position
for the open mindedfor the open minded
03
Automate the tasks
– for the open minded
What has to be automated?
Refresh page
Run unit tests
Check 

code quality
Start 

web server
Compile CSS
Copy source
to web server
Copy sources
to target folder
When developing? When building?
– for the open minded
Creating profiles
JSHint Code quality
CSS compilation
Development profile
Copy src to WEBAPP
Build profile
Create/Clean WEBAPP folder
Webserver
WatchJS
JSHint Code quality
Copy src to WEBAPP
WatchCSS
Karma: unit tests
CSS compilation
Copy src to WEBAPP
CSS compilation
JSHint Code quality
Karma: unit tests
Copy to target folder
with 

skipTests option
– for the open minded
Integration in Maven
pom.xml
Install
Dependancies
Run build profile
First name, Last name
Position
for the open mindedfor the open minded
Setup
04
– for the open minded
Module files structure
Web app sources
Tests sources + Mock files
Grunt profiles
Grunt
dependancies
– for the open minded
Web app files structure
Components
used in different context
Components related 

to specific pages
– for the open minded
Tools configuration
JSHint
Convention > jshint.json
Grunt
Profiles > Gruntfile.js
Dependancies > package.json
Karma
Configuration > src/tests/resources/karma.conf.js
First name, Last name
Position
for the open mindedfor the open minded
05
Some practice
– for the open minded
Prerequisites
Only Grunt… that itself requires:
> Node.js and its package manager npm
> Install project dependencies:



cd $MATTERHORN_HOME/modules/matterhorn-admin-ui-ng/

npm install
> Ready!
– for the open minded
Let’s run it
Css compilation
Code qualityJSHint
Copy
Web server
Test runner
Unit tests
– for the open minded
Creating Mocks
Mock files are located in:
/src/test/resources/[GET/POST/PUT/
DELETE]
The connect web server + a middleware to redirect
request to it.
Need to mock /info/me.json for GET request?
Simply add a file called me.json in 

/src/test/resources/GET/info/me.json
First name, Last name
Position
for the open mindedfor the open minded
06
Next steps
– for the open minded
What’s next
e2e tests with Protractor
Compilation of the whole as an AngularJS app
use Bower for Javascript dependencies
Define Javascript convention for the community
thanks for you attention
Xavier Butty
Software Engineer
for the open minded
Questions?

http://entwinemedia.com
@entwinemedia

More Related Content

What's hot

Next level of Appium
Next level of AppiumNext level of Appium
Next level of Appium
Keshav Kashyap
 
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISEDEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
European Collaboration Summit
 
Build 2017 - B8083 - The future of Visual Studio
Build 2017 - B8083 - The future of Visual StudioBuild 2017 - B8083 - The future of Visual Studio
Build 2017 - B8083 - The future of Visual Studio
Windows Developer
 
COB - Azure Functions for Office 365 developers
COB - Azure Functions for Office 365 developersCOB - Azure Functions for Office 365 developers
COB - Azure Functions for Office 365 developers
Chris O'Brien
 
Alfresco Process Services REST API - Alfresco DevCon 2018
 Alfresco Process Services REST API - Alfresco DevCon 2018 Alfresco Process Services REST API - Alfresco DevCon 2018
Alfresco Process Services REST API - Alfresco DevCon 2018
Dennis Koch
 
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office ProductsChris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris O'Brien
 
Serverless Architecture Patterns - Manoj Ganapathi
Serverless Architecture Patterns - Manoj GanapathiServerless Architecture Patterns - Manoj Ganapathi
Serverless Architecture Patterns - Manoj Ganapathi
CodeOps Technologies LLP
 
ASP.NET 5 & Unit Testing
ASP.NET 5 & Unit TestingASP.NET 5 & Unit Testing
ASP.NET 5 & Unit Testing
Shahed Chowdhuri
 
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien
 
Streamlined Geek Talk
Streamlined Geek TalkStreamlined Geek Talk
Streamlined Geek Talk
Sarah Allen
 
Alfresco Development Framework Basic
Alfresco Development Framework BasicAlfresco Development Framework Basic
Alfresco Development Framework Basic
Mario Romano
 
Lambdaless and AWS CDK
Lambdaless and AWS CDKLambdaless and AWS CDK
Lambdaless and AWS CDK
MooYeol Lee
 
Firebase hosting
Firebase hostingFirebase hosting
Firebase hosting
Patrick Nascimento
 
ASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex SystemsASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex Systems
Shahed Chowdhuri
 
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Vadym Kazulkin
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1
Vishal Biyani
 
Automated Testing for Websites With Selenium IDE
Automated Testing for Websites With Selenium IDEAutomated Testing for Websites With Selenium IDE
Automated Testing for Websites With Selenium IDE
Robert Greiner
 
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
Vadym Kazulkin
 
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Vadym Kazulkin
 
Five Ways to Scale your API Without Touching Your Code
Five Ways to Scale your API Without Touching Your CodeFive Ways to Scale your API Without Touching Your Code
Five Ways to Scale your API Without Touching Your Code
3scale
 

What's hot (20)

Next level of Appium
Next level of AppiumNext level of Appium
Next level of Appium
 
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISEDEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
 
Build 2017 - B8083 - The future of Visual Studio
Build 2017 - B8083 - The future of Visual StudioBuild 2017 - B8083 - The future of Visual Studio
Build 2017 - B8083 - The future of Visual Studio
 
COB - Azure Functions for Office 365 developers
COB - Azure Functions for Office 365 developersCOB - Azure Functions for Office 365 developers
COB - Azure Functions for Office 365 developers
 
Alfresco Process Services REST API - Alfresco DevCon 2018
 Alfresco Process Services REST API - Alfresco DevCon 2018 Alfresco Process Services REST API - Alfresco DevCon 2018
Alfresco Process Services REST API - Alfresco DevCon 2018
 
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office ProductsChris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
 
Serverless Architecture Patterns - Manoj Ganapathi
Serverless Architecture Patterns - Manoj GanapathiServerless Architecture Patterns - Manoj Ganapathi
Serverless Architecture Patterns - Manoj Ganapathi
 
ASP.NET 5 & Unit Testing
ASP.NET 5 & Unit TestingASP.NET 5 & Unit Testing
ASP.NET 5 & Unit Testing
 
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
 
Streamlined Geek Talk
Streamlined Geek TalkStreamlined Geek Talk
Streamlined Geek Talk
 
Alfresco Development Framework Basic
Alfresco Development Framework BasicAlfresco Development Framework Basic
Alfresco Development Framework Basic
 
Lambdaless and AWS CDK
Lambdaless and AWS CDKLambdaless and AWS CDK
Lambdaless and AWS CDK
 
Firebase hosting
Firebase hostingFirebase hosting
Firebase hosting
 
ASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex SystemsASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex Systems
 
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1
 
Automated Testing for Websites With Selenium IDE
Automated Testing for Websites With Selenium IDEAutomated Testing for Websites With Selenium IDE
Automated Testing for Websites With Selenium IDE
 
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
 
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
 
Five Ways to Scale your API Without Touching Your Code
Five Ways to Scale your API Without Touching Your CodeFive Ways to Scale your API Without Touching Your Code
Five Ways to Scale your API Without Touching Your Code
 

Viewers also liked

Presentation1
Presentation1Presentation1
Presentation1
Mia Hooper
 
Anoop's birthday
Anoop's birthdayAnoop's birthday
Anoop's birthday
arihants14
 
Ikt udruzenje Pk FBiH - 02-12-2014 - jahorina
Ikt udruzenje Pk FBiH - 02-12-2014 - jahorinaIkt udruzenje Pk FBiH - 02-12-2014 - jahorina
Ikt udruzenje Pk FBiH - 02-12-2014 - jahorina
Igor Pandzic
 
GV1244 - Learner Strategies
GV1244 - Learner StrategiesGV1244 - Learner Strategies
GV1244 - Learner Strategies
Ismail Khalil
 
Tutorial eclipse
Tutorial eclipseTutorial eclipse
Tutorial eclipse
Miguel Angel Alva Pumarejo
 
How Teddy Roosevelt Became President
How Teddy Roosevelt Became PresidentHow Teddy Roosevelt Became President
How Teddy Roosevelt Became President
kcloer
 
Info ars google drive
Info ars   google driveInfo ars   google drive
Info ars google drive
Igor Pandzic
 
Portman International
Portman InternationalPortman International
Portman International
PortmanIntlGroup
 
Social networking in my everyday life (facebook)
Social networking in my everyday life (facebook)Social networking in my everyday life (facebook)
Social networking in my everyday life (facebook)
katiess07
 

Viewers also liked (9)

Presentation1
Presentation1Presentation1
Presentation1
 
Anoop's birthday
Anoop's birthdayAnoop's birthday
Anoop's birthday
 
Ikt udruzenje Pk FBiH - 02-12-2014 - jahorina
Ikt udruzenje Pk FBiH - 02-12-2014 - jahorinaIkt udruzenje Pk FBiH - 02-12-2014 - jahorina
Ikt udruzenje Pk FBiH - 02-12-2014 - jahorina
 
GV1244 - Learner Strategies
GV1244 - Learner StrategiesGV1244 - Learner Strategies
GV1244 - Learner Strategies
 
Tutorial eclipse
Tutorial eclipseTutorial eclipse
Tutorial eclipse
 
How Teddy Roosevelt Became President
How Teddy Roosevelt Became PresidentHow Teddy Roosevelt Became President
How Teddy Roosevelt Became President
 
Info ars google drive
Info ars   google driveInfo ars   google drive
Info ars google drive
 
Portman International
Portman InternationalPortman International
Portman International
 
Social networking in my everyday life (facebook)
Social networking in my everyday life (facebook)Social networking in my everyday life (facebook)
Social networking in my everyday life (facebook)
 

Similar to Opencast Admin UI - Tools and development setup

DEV326_DevOps Essentials An Introductory Workshop on CICD Practices
DEV326_DevOps Essentials An Introductory Workshop on CICD PracticesDEV326_DevOps Essentials An Introductory Workshop on CICD Practices
DEV326_DevOps Essentials An Introductory Workshop on CICD Practices
Amazon Web Services
 
SharePoint Framework at a glance
SharePoint Framework at a glanceSharePoint Framework at a glance
SharePoint Framework at a glance
Haaron Gonzalez
 
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
Evan Mullins
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourConvert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Brian Culver
 
Developer application lifecycle process and tools - v.5
Developer application lifecycle process and tools - v.5Developer application lifecycle process and tools - v.5
Developer application lifecycle process and tools - v.5
Ivan Sanders
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
Kushan Lahiru Perera
 
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Amazon Web Services
 
DevOps Essentials: An Introductory Workshop on CI/CD Practices
DevOps Essentials: An Introductory Workshop on CI/CD PracticesDevOps Essentials: An Introductory Workshop on CI/CD Practices
DevOps Essentials: An Introductory Workshop on CI/CD Practices
Amazon Web Services
 
Vs2010 Apiit Mix On Campus_Ngan Seok Chern
Vs2010 Apiit Mix On Campus_Ngan Seok ChernVs2010 Apiit Mix On Campus_Ngan Seok Chern
Vs2010 Apiit Mix On Campus_Ngan Seok Chern
Quek Lilian
 
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdfDEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
Amazon Web Services
 
CI/CD Pipeline Security: Advanced Continuous Delivery Recommendations
CI/CD Pipeline Security: Advanced Continuous Delivery RecommendationsCI/CD Pipeline Security: Advanced Continuous Delivery Recommendations
CI/CD Pipeline Security: Advanced Continuous Delivery Recommendations
Amazon Web Services
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure Services
Brian Culver
 
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Nordic APIs
 
MOSS Content Deployment 12.18.2008 Final
MOSS Content Deployment 12.18.2008 FinalMOSS Content Deployment 12.18.2008 Final
MOSS Content Deployment 12.18.2008 Final
Shadeed Eleazer
 
ASP.NET OVERVIEW
ASP.NET OVERVIEWASP.NET OVERVIEW
ASP.NET OVERVIEW
Rishi Kothari
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Brian Culver
 
Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...
Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...
Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...
Amazon Web Services
 
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
Amazon Web Services
 
Front End Workflow
Front End WorkflowFront End Workflow
Front End Workflow
Matt Bailey
 
North east user group tour
North east user group tourNorth east user group tour
North east user group tour
10n Software, LLC
 

Similar to Opencast Admin UI - Tools and development setup (20)

DEV326_DevOps Essentials An Introductory Workshop on CICD Practices
DEV326_DevOps Essentials An Introductory Workshop on CICD PracticesDEV326_DevOps Essentials An Introductory Workshop on CICD Practices
DEV326_DevOps Essentials An Introductory Workshop on CICD Practices
 
SharePoint Framework at a glance
SharePoint Framework at a glanceSharePoint Framework at a glance
SharePoint Framework at a glance
 
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourConvert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
 
Developer application lifecycle process and tools - v.5
Developer application lifecycle process and tools - v.5Developer application lifecycle process and tools - v.5
Developer application lifecycle process and tools - v.5
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
 
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
 
DevOps Essentials: An Introductory Workshop on CI/CD Practices
DevOps Essentials: An Introductory Workshop on CI/CD PracticesDevOps Essentials: An Introductory Workshop on CI/CD Practices
DevOps Essentials: An Introductory Workshop on CI/CD Practices
 
Vs2010 Apiit Mix On Campus_Ngan Seok Chern
Vs2010 Apiit Mix On Campus_Ngan Seok ChernVs2010 Apiit Mix On Campus_Ngan Seok Chern
Vs2010 Apiit Mix On Campus_Ngan Seok Chern
 
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdfDEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
 
CI/CD Pipeline Security: Advanced Continuous Delivery Recommendations
CI/CD Pipeline Security: Advanced Continuous Delivery RecommendationsCI/CD Pipeline Security: Advanced Continuous Delivery Recommendations
CI/CD Pipeline Security: Advanced Continuous Delivery Recommendations
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure Services
 
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)
 
MOSS Content Deployment 12.18.2008 Final
MOSS Content Deployment 12.18.2008 FinalMOSS Content Deployment 12.18.2008 Final
MOSS Content Deployment 12.18.2008 Final
 
ASP.NET OVERVIEW
ASP.NET OVERVIEWASP.NET OVERVIEW
ASP.NET OVERVIEW
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...
Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...
Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...
 
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
 
Front End Workflow
Front End WorkflowFront End Workflow
Front End Workflow
 
North east user group tour
North east user group tourNorth east user group tour
North east user group tour
 

Recently uploaded

The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
manji sharman06
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
Ortus Solutions, Corp
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
UiPathCommunity
 
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsGetting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
ScyllaDB
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!
Tobias Schneck
 
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
AlexanderRichford
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - MydbopsMySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
Mydbops
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
Mydbops
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
zjhamm304
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 

Recently uploaded (20)

The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
 
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsGetting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!
 
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - MydbopsMySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 

Opencast Admin UI - Tools and development setup

  • 1. Admin UI Tools and development setup Xavier Butty Software Engineer for the open minded
  • 2. First name, Last name Position for the open mindedfor the open minded How did we develop the new Admin UI? 01
  • 3. – for the open minded Development process Design UI and API Integration API Backend implementation MocksFrontend implementation JS
  • 4. First name, Last name Position for the open mindedfor the open minded 02 The right tools for the job
  • 5. – for the open minded Code quality checker CSS extension / compiler Javascript framework Task runner Testing framework Lightweight http server - Mocks Test runner Minification Template pre-compilation Compress img
  • 6. – for the open minded Code quality The checkstyle tool for Javascript Adaptable to code convention Much more flexible than JSLint JS Hint
  • 7. – for the open minded Demo JSHint http://jshint.com/
  • 8. – for the open minded CSS extension Enhance the stylesheet creation Reusable component
 Cascading
 Mixins LESS is currently used in the new Admin UI, 
 but an update to SASS coming soon Better scalability Larger community More resources available
  • 9. – for the open minded Demo Less http://less2css.org/
  • 10. – for the open minded Javascript Framework Most popular javascript MVW framework actually Widely used Large community supporting it Powered by Google Lots of valuable resources available online Scalable Short introduction coming at 11h30
  • 11. – for the open minded Testing frameworks Behaviour driven unit tests frameworks Most popular unit test solution for AngularJS ngMocks AngularJS Module provides mocking for the tests
  • 12. – for the open minded Test runner Spawn a web server which loads your application's source code and executes your tests Highly configurable De facto test runner for AngularJS Existing Adapter for Jasmine
  • 13. – for the open minded Lightweight HTTP server Connect Extensible HTTP server framework Used for development Allow to use middleware for mocking the REST endpoints. Livereload
  • 14. – for the open minded Task runner Javascript Task runner working on Node.js Large choice of plugins for all the popular frontend tools The “Gruntfile” is what the “pom” is to Maven GRUNT
  • 15. First name, Last name Position for the open mindedfor the open minded 03 Automate the tasks
  • 16. – for the open minded What has to be automated? Refresh page Run unit tests Check 
 code quality Start 
 web server Compile CSS Copy source to web server Copy sources to target folder When developing? When building?
  • 17. – for the open minded Creating profiles JSHint Code quality CSS compilation Development profile Copy src to WEBAPP Build profile Create/Clean WEBAPP folder Webserver WatchJS JSHint Code quality Copy src to WEBAPP WatchCSS Karma: unit tests CSS compilation Copy src to WEBAPP CSS compilation JSHint Code quality Karma: unit tests Copy to target folder with 
 skipTests option
  • 18. – for the open minded Integration in Maven pom.xml Install Dependancies Run build profile
  • 19. First name, Last name Position for the open mindedfor the open minded Setup 04
  • 20. – for the open minded Module files structure Web app sources Tests sources + Mock files Grunt profiles Grunt dependancies
  • 21. – for the open minded Web app files structure Components used in different context Components related 
 to specific pages
  • 22. – for the open minded Tools configuration JSHint Convention > jshint.json Grunt Profiles > Gruntfile.js Dependancies > package.json Karma Configuration > src/tests/resources/karma.conf.js
  • 23. First name, Last name Position for the open mindedfor the open minded 05 Some practice
  • 24. – for the open minded Prerequisites Only Grunt… that itself requires: > Node.js and its package manager npm > Install project dependencies:
 
 cd $MATTERHORN_HOME/modules/matterhorn-admin-ui-ng/
 npm install > Ready!
  • 25. – for the open minded Let’s run it Css compilation Code qualityJSHint Copy Web server Test runner Unit tests
  • 26. – for the open minded Creating Mocks Mock files are located in: /src/test/resources/[GET/POST/PUT/ DELETE] The connect web server + a middleware to redirect request to it. Need to mock /info/me.json for GET request? Simply add a file called me.json in 
 /src/test/resources/GET/info/me.json
  • 27. First name, Last name Position for the open mindedfor the open minded 06 Next steps
  • 28. – for the open minded What’s next e2e tests with Protractor Compilation of the whole as an AngularJS app use Bower for Javascript dependencies Define Javascript convention for the community
  • 29. thanks for you attention Xavier Butty Software Engineer for the open minded Questions?
 http://entwinemedia.com @entwinemedia