SlideShare a Scribd company logo
Using and Extending the
Alfresco Content App
Denys Vuika
ACA Tech Lead and ADF developer
@DenysVuika
Introduction
Learn. Connect. Collaborate.
Content Application Concept
• Simple user interface which makes accessing files in the Alfresco Content
Services repository easy
• Demonstrate how the complexity of Content Management can be simplified
using the Alfresco Application Development Framework to easily and quickly
create custom solutions for specific user cases
Using and extending Alfresco Content Application
Learn. Connect. Collaborate.
Features
• Open Source (LGPL-3.0)
• Built with ADF components
• Uses ACS v1 REST APIs
– Compatible with ACS v5.2.2 & Community
Edition 201707
• The example Content App influences the ADF
– Every new feature gets refined, tested and
contributed to ADF
• Demonstrates engaging user experience
Learn. Connect. Collaborate.
Features
• It is an Angular CLI application
– Development process is compatible with all
Angular CLI books and tutorials
• i18n support with 11 languages out of the box
• Docker support
– Create and deploy your own images
• Runs in Electron
– requires minimal changes to the configuration
– build cross-platform desktop apps with ADF
based on Example Content Application
Getting Started
Learn. Connect. Collaborate.
Compiling and Running
git clone https://github.com/Alfresco/alfresco-content-app.git
cd alfresco-content-app
npm install
npm start
Learn. Connect. Collaborate.
Documentation and Guides
• Introduction to Example Content Application
• Building and running
• Integrating with Docker
• Guides
– i18n and adding custom languages
– application configuration
– custom pages and sidebar
• Constantly gets new content
https://alfresco.github.io/alfresco-content-app
Demo
Deployment
Learn. Connect. Collaborate.
Docker
• Comes with a basic Dockerfile to build your
own images
– Lightweight image based on Nginx
– Recommended configuration for SPA mode
• Basic documentation on creating own images
and publishing to Docker Hub
• You can use your own settings and servers to
build an image and container
Learn. Connect. Collaborate.
• Travis CI integration
• Automatic publishing
– “master” branch
– “development” branch”
– all feature branches
– all pull requests
• Allows to test contributions
before merging
• CI scripts open source as well
Continuous Integration and Docker Hub
Community Edition?
Learn. Connect. Collaborate.
CE
Example
https://gitlab.com/DenysVuika/aca-cloud-community
Learn. Connect. Collaborate.
CE
Example
Provides examples for:
• Example Content Application (ACA) running
with APS Community Edition
• May help testing contributions to ACA
repository
– Switched to any existing PR or branch
• Real example of ACA images running within
Docker cloud stacks
• Main idea is to help you get started as fast as
possible
https://gitlab.com/DenysVuika/aca-cloud-community
Sidebar
Learn. Connect. Collaborate.
Features
• Can be controlled by configuration file
• Multiple customizable sections
• Hundreds of Material icons available
• I18n support for label and title
• Custom routes
Learn. Connect. Collaborate.
Change sidebar without rebuilding application
Learn. Connect. Collaborate.
Change sidebar without rebuilding application
Quick Demo
Navigation
Learn. Connect. Collaborate.
Features
• Single configuration file for all routes
• All features have own routes and URLs
• Easy to extend or change
• Support authentication guards
• Integrates well with Sidebar component
• I18n support for all page titles
• All route URLs can be emailed and revisited
(including Viewer)
Learn. Connect. Collaborate.
Create new page
ng g component components/custom-page --module=app
• Generate component
• Add custom route to ”app.routes.ts”
• Associate route with component
• Provide page title
Learn. Connect. Collaborate.
Setup sidebar
Learn. Connect. Collaborate.
See it in action
Quick Demo
Extending Viewer
Learn. Connect. Collaborate.
Let’s use editor component that powers VS Code
Learn. Connect. Collaborate.
Basic steps
• Generate a component to hold custom viewer
• Install 3rd party dependencies (if needed)
• Define the viewer extension
– map multiple extensions to your viewer
• Get it running within the standard ADF Viewer
component
Learn. Connect. Collaborate.
Step 1: Generate a Component
ng g component components/code-preview --module=app
create src/app/components/code-preview/code-preview.component.scss (0 bytes)
create src/app/components/code-preview/code-preview.component.html (31 bytes)
create src/app/components/code-preview/code-preview.component.spec.ts (664 bytes)
create src/app/components/code-preview/code-preview.component.ts (293 bytes)
More details:
https://github.com/angular/angular-cli/wiki/generate-component
Learn. Connect. Collaborate.
Step 2: Use 3rd party component if needed
npm install monaco-editor
npm install @denysvuika/adf-code-viewer
Update
Code viewer example source code:
https://gitlab.com/DenysVuika/adf-content-viewers
Learn. Connect. Collaborate.
Step 3: Define viewer extensions
Map multiple file extensions to a single viewer created earlier
Learn. Connect. Collaborate.
Step 3: Define viewer extensions
Map multiple file extensions to a single viewer created earlier
Learn. Connect. Collaborate.
Step 3: Define viewer extensions
Map multiple file extensions to a single viewer created earlier
Learn. Connect. Collaborate.
Testing: Upload and double-click a TypeScript file
Using and extending Alfresco Content Application
Quick Demo
Q and A
Thank you!
All demos can be found at “DevCon”
branch:
https://github.com/Alfresco/alfresco-
content-app/tree/devcon

More Related Content

What's hot (20)

PDF
Gartner's IT Score Wallchart
Paul Sullivan
 
PPTX
API Management Within a Microservices Architecture
Nadeesha Gamage
 
PPTX
Building IAM for OpenStack
Steve Martinelli
 
PPTX
java Jdbc
Ankit Desai
 
PPTX
A Summary of TOGAF's Architecture Capability Framework
Paul Sullivan
 
PPTX
Togaf 9.2 Introduction
Mohamed Zakarya Abdelgawad
 
PDF
WildFly AppServer - State of the Union
Dimitris Andreadis
 
PPT
The eBay Architecture: Striking a Balance between Site Stability, Feature Ve...
Randy Shoup
 
PPTX
Software-Defined Networking (SDN): Unleashing the Power of the Network
Robert Keahey
 
PPTX
Confluence
Ashima Singh
 
PPTX
Network virtualization
Damian Parniewicz
 
PDF
JCR - Java Content Repositories
Carsten Ziegeler
 
PDF
Api presentation
Tiago Cardoso
 
PDF
TOGAF Sample Matrices, Catalogs and Diagrams from the Open Group
Michael Sukachev
 
PDF
OpenShift-Technical-Overview.pdf
JuanSalinas593459
 
PDF
Meraki vs. Viptela: Which Cisco SD-WAN Solution Is Right for You?
Insight
 
PPTX
Togaf introduction and core concepts
Paul Sullivan
 
PPTX
Modeling TOGAF with ArchiMate
Iver Band
 
PDF
Serverless observability - a hero's perspective
Yan Cui
 
PPTX
Atlassian Jira By Eren SIMSEK
erensimsek
 
Gartner's IT Score Wallchart
Paul Sullivan
 
API Management Within a Microservices Architecture
Nadeesha Gamage
 
Building IAM for OpenStack
Steve Martinelli
 
java Jdbc
Ankit Desai
 
A Summary of TOGAF's Architecture Capability Framework
Paul Sullivan
 
Togaf 9.2 Introduction
Mohamed Zakarya Abdelgawad
 
WildFly AppServer - State of the Union
Dimitris Andreadis
 
The eBay Architecture: Striking a Balance between Site Stability, Feature Ve...
Randy Shoup
 
Software-Defined Networking (SDN): Unleashing the Power of the Network
Robert Keahey
 
Confluence
Ashima Singh
 
Network virtualization
Damian Parniewicz
 
JCR - Java Content Repositories
Carsten Ziegeler
 
Api presentation
Tiago Cardoso
 
TOGAF Sample Matrices, Catalogs and Diagrams from the Open Group
Michael Sukachev
 
OpenShift-Technical-Overview.pdf
JuanSalinas593459
 
Meraki vs. Viptela: Which Cisco SD-WAN Solution Is Right for You?
Insight
 
Togaf introduction and core concepts
Paul Sullivan
 
Modeling TOGAF with ArchiMate
Iver Band
 
Serverless observability - a hero's perspective
Yan Cui
 
Atlassian Jira By Eren SIMSEK
erensimsek
 

Similar to Using and extending Alfresco Content Application (20)

PDF
Angular - Chapter 1 - Introduction
WebStackAcademy
 
PDF
Introduction to Docker - Vellore Institute of Technology
Ajeet Singh Raina
 
PDF
Introduction to Docker - VIT Campus
Ajeet Singh Raina
 
PDF
Rome .NET Conference 2024 - Remote Conference
Hamida Rebai Trabelsi
 
PPTX
Short-Training asp.net vNext
Betclic Everest Group Tech Team
 
PPTX
Flex en silverlight viewer configuratie, Esri, Mark Jagt, Boudewijn Boogaard
Esri Nederland
 
PDF
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...
Serdal Kepil
 
PPTX
Azure DevOps for JavaScript Developers
Sarah Dutkiewicz
 
PDF
Containers, microservices and serverless for realists
Karthik Gaekwad
 
PDF
Asp.NETZERO - A Workshop Presentation by Citytech Software
Ritwik Das
 
PPTX
Introduction to SharePoint Framework (SPFx)
Fabio Franzini
 
PPTX
Alfresco/Activiti Modeler Application - Andras Popovics - 2019
András Popovics
 
PPTX
Build your android app with gradle
Swain Loda
 
PDF
Individual Serverless Development Environments for AWS
Søren Peter Nielsen
 
PDF
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Nicole Szigeti
 
PDF
Asp.Net Core MVC , Razor page , Entity Framework Core
mohamed elshafey
 
PPTX
Expo Router V2
😎 Anthony Kariuki
 
PPTX
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
Eric Shupps
 
PDF
White Paper : ASP.NET Core AngularJs 2 and Prime
Hamida Rebai Trabelsi
 
PPTX
CCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio Franzini
walk2talk srl
 
Angular - Chapter 1 - Introduction
WebStackAcademy
 
Introduction to Docker - Vellore Institute of Technology
Ajeet Singh Raina
 
Introduction to Docker - VIT Campus
Ajeet Singh Raina
 
Rome .NET Conference 2024 - Remote Conference
Hamida Rebai Trabelsi
 
Short-Training asp.net vNext
Betclic Everest Group Tech Team
 
Flex en silverlight viewer configuratie, Esri, Mark Jagt, Boudewijn Boogaard
Esri Nederland
 
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...
Serdal Kepil
 
Azure DevOps for JavaScript Developers
Sarah Dutkiewicz
 
Containers, microservices and serverless for realists
Karthik Gaekwad
 
Asp.NETZERO - A Workshop Presentation by Citytech Software
Ritwik Das
 
Introduction to SharePoint Framework (SPFx)
Fabio Franzini
 
Alfresco/Activiti Modeler Application - Andras Popovics - 2019
András Popovics
 
Build your android app with gradle
Swain Loda
 
Individual Serverless Development Environments for AWS
Søren Peter Nielsen
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Nicole Szigeti
 
Asp.Net Core MVC , Razor page , Entity Framework Core
mohamed elshafey
 
Expo Router V2
😎 Anthony Kariuki
 
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
Eric Shupps
 
White Paper : ASP.NET Core AngularJs 2 and Prime
Hamida Rebai Trabelsi
 
CCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio Franzini
walk2talk srl
 
Ad

Recently uploaded (20)

PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
DOCX
Import Data Form Excel to Tally Services
Tally xperts
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PPTX
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
PDF
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
PPTX
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
PPTX
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
PDF
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PDF
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Import Data Form Excel to Tally Services
Tally xperts
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
Human Resources Information System (HRIS)
Amity University, Patna
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
Ad

Using and extending Alfresco Content Application

  • 1. Using and Extending the Alfresco Content App Denys Vuika ACA Tech Lead and ADF developer @DenysVuika
  • 3. Learn. Connect. Collaborate. Content Application Concept • Simple user interface which makes accessing files in the Alfresco Content Services repository easy • Demonstrate how the complexity of Content Management can be simplified using the Alfresco Application Development Framework to easily and quickly create custom solutions for specific user cases
  • 5. Learn. Connect. Collaborate. Features • Open Source (LGPL-3.0) • Built with ADF components • Uses ACS v1 REST APIs – Compatible with ACS v5.2.2 & Community Edition 201707 • The example Content App influences the ADF – Every new feature gets refined, tested and contributed to ADF • Demonstrates engaging user experience
  • 6. Learn. Connect. Collaborate. Features • It is an Angular CLI application – Development process is compatible with all Angular CLI books and tutorials • i18n support with 11 languages out of the box • Docker support – Create and deploy your own images • Runs in Electron – requires minimal changes to the configuration – build cross-platform desktop apps with ADF based on Example Content Application
  • 8. Learn. Connect. Collaborate. Compiling and Running git clone https://github.com/Alfresco/alfresco-content-app.git cd alfresco-content-app npm install npm start
  • 9. Learn. Connect. Collaborate. Documentation and Guides • Introduction to Example Content Application • Building and running • Integrating with Docker • Guides – i18n and adding custom languages – application configuration – custom pages and sidebar • Constantly gets new content https://alfresco.github.io/alfresco-content-app
  • 10. Demo
  • 12. Learn. Connect. Collaborate. Docker • Comes with a basic Dockerfile to build your own images – Lightweight image based on Nginx – Recommended configuration for SPA mode • Basic documentation on creating own images and publishing to Docker Hub • You can use your own settings and servers to build an image and container
  • 13. Learn. Connect. Collaborate. • Travis CI integration • Automatic publishing – “master” branch – “development” branch” – all feature branches – all pull requests • Allows to test contributions before merging • CI scripts open source as well Continuous Integration and Docker Hub
  • 16. Learn. Connect. Collaborate. CE Example Provides examples for: • Example Content Application (ACA) running with APS Community Edition • May help testing contributions to ACA repository – Switched to any existing PR or branch • Real example of ACA images running within Docker cloud stacks • Main idea is to help you get started as fast as possible https://gitlab.com/DenysVuika/aca-cloud-community
  • 18. Learn. Connect. Collaborate. Features • Can be controlled by configuration file • Multiple customizable sections • Hundreds of Material icons available • I18n support for label and title • Custom routes
  • 19. Learn. Connect. Collaborate. Change sidebar without rebuilding application
  • 20. Learn. Connect. Collaborate. Change sidebar without rebuilding application
  • 23. Learn. Connect. Collaborate. Features • Single configuration file for all routes • All features have own routes and URLs • Easy to extend or change • Support authentication guards • Integrates well with Sidebar component • I18n support for all page titles • All route URLs can be emailed and revisited (including Viewer)
  • 24. Learn. Connect. Collaborate. Create new page ng g component components/custom-page --module=app • Generate component • Add custom route to ”app.routes.ts” • Associate route with component • Provide page title
  • 29. Learn. Connect. Collaborate. Let’s use editor component that powers VS Code
  • 30. Learn. Connect. Collaborate. Basic steps • Generate a component to hold custom viewer • Install 3rd party dependencies (if needed) • Define the viewer extension – map multiple extensions to your viewer • Get it running within the standard ADF Viewer component
  • 31. Learn. Connect. Collaborate. Step 1: Generate a Component ng g component components/code-preview --module=app create src/app/components/code-preview/code-preview.component.scss (0 bytes) create src/app/components/code-preview/code-preview.component.html (31 bytes) create src/app/components/code-preview/code-preview.component.spec.ts (664 bytes) create src/app/components/code-preview/code-preview.component.ts (293 bytes) More details: https://github.com/angular/angular-cli/wiki/generate-component
  • 32. Learn. Connect. Collaborate. Step 2: Use 3rd party component if needed npm install monaco-editor npm install @denysvuika/adf-code-viewer Update Code viewer example source code: https://gitlab.com/DenysVuika/adf-content-viewers
  • 33. Learn. Connect. Collaborate. Step 3: Define viewer extensions Map multiple file extensions to a single viewer created earlier
  • 34. Learn. Connect. Collaborate. Step 3: Define viewer extensions Map multiple file extensions to a single viewer created earlier
  • 35. Learn. Connect. Collaborate. Step 3: Define viewer extensions Map multiple file extensions to a single viewer created earlier
  • 36. Learn. Connect. Collaborate. Testing: Upload and double-click a TypeScript file
  • 40. Thank you! All demos can be found at “DevCon” branch: https://github.com/Alfresco/alfresco- content-app/tree/devcon