Projects and Teams Global Virtual Hack-a-thon 2018

Showing results for 
Search instead for 
Did you mean: 

Projects and Teams Global Virtual Hack-a-thon 2018

9 5 3,951

These are project ideas and teams for the 2018 Global Virtual Hack-a-thon.

The hack-a-thon is scheduled for Friday, October 5th, 2018.


For people with a project idea

For each project, you should consider addressing the following:

  • The idea owner(s)
  • A brief description
  • Any prep work for the project, such as developer tools or skills participants should understand

We encourage you to keep your project idea short and provide any additional details in separate document or blog post within the Collaborate space. This may also allow you to coordinate with potential team members via the comments there without being mixed in with any discussions on this page.

For people looking to join a project

Please feel free to add your name to any project(s) you are interested in participating. Don't hesitate to add your name to multiple projects if you are considering multiple at this point. We encourage you to use this platform to contact the owner of an idea to discuss any details you are unsure about or even improve upon the idea.

Apart from any plans you make with the owner of an idea, you are not bound to actually participate in the project you indicated here. When you join the hack-a-thon on the day of the event you can check with other project teams and join a different project, if that turns out to be a better fit for you.

For everyone

The global virtual hack-a-thon is as much a social event as it is a coding one. This means a lot of the attendees for this event often use it to exchange ideas and discuss other matters in the general Alfresco context. To do this, everyone that attends the global virtual hack-a-thon should be prepared to join any of the commonly used communication channels for this event. In the past the main tools have been the IRC chat #alfresco (via or a desktop client), Zoom and Google Hangouts. This year we also have an #alfresco channel on Discord.

After the event has come to an end, we encourage everyone that worked on a specific project idea to update the listing on this page with an overview of the project team and a link / reference to the results of the project (e.g. a GitHub repository, document or blog post in this space).


Community Platform / Engagement

Platform Document Review + Action Plan

Idea owner: Axel Faust

Description: In September 2016 the existing community wiki contents were migrated "as-is" from the old MediaWiki-based system into the Jive community platform. This includes a lot of content that was already marked as obsolete in a bulk operation by Richard Esplin‌ since the Alfresco product had outpaced the community efforts (or lack thereof) to keep the information up-to-date. This information still is the bulk of the "documents" inside the ECM space today and only a few documents have been added since.

As part of this project, the community should review the documents that are currently contained in this platform, determine content that would be important to update / add and define an "action plan" of priorities / topics that should be covered. It may be unrealistic to try to make this platform into a full fledged wiki again (and keep it up-to-date/relevant), but if we can identify areas where documents could provide a significant "added value" to the official documentation, efforts could be much more concentrated and efficient, e.g. considering the "work/points balance".

*Logistically, if we can add a tag to the things you evaluate and deem obsolete, we could move these items to an archived space, pulling them out of the ECM space and moving them down in search results. (Kristen)

Prep work: None really, but it sure does not hurt to look through the existing content and maybe think about what important contents you have been missing before...

Interested parties:

  • You?
  • Or you, ma'm?
  • Maybe you, sir?

Gradle SDK for Alfresco

Idea owner: Thijs Lemmens

Description: Gradle has gained a lot of popularity in the last couple of years. With this project we would like to start a Gradle plugin supporting the development of Alfresco customizations. Support could go from dependency management to packaging as an amp, or maybe even in a docker image. Plugin development would be done in Java.

Prep work: Get familiar with the Gradle concepts, and how to write a plugin.

(Note that we did experiment with Gradle some time ago [1] [2] Ray Gauss‌)

Interested parties:

  • Thijs Lemmens
  • Lars Vierbergen

Source: GitHub - xenit-eu/alfresco-gradle-sdk: Gradle plugins and tasks to support Alfresco development 

Content Services

Better Trash Management (cont'd)

Idea owner: Axel Faust

Description: Current trashcan management tools in out-of-the-box Alfresco are extremely underwhelming. The page to clear / restore items is extremely user unfriendly (you can either clear everything of have to wade through a sea of checkbox-marking + data reloading; you cannot search and only see the top level deleted item) and the trashcan cleaner (both as an addon and as an integrated tool in 5.2) is a brute force job that deals with large amounts of deleted items extremely inefficiently.

This is a continuation of the efforts from the Global Virtual Hack-a-thon 2017 and the DevCon 2018 Hack-a-thon. A basic UI already exists and simple navigation / recovery works. The UI needs a bit of polishing, some utilities for custimisation of individual archived items, and especially functionality to access / deal with non-file/folder items in the trash can.

Prep work: Work with the current solutions and fuel your motivation with the pain + suffering that they inflinct... And maybe have a good understanding of how to write Aikau UIs.

Interested parties:

Source Code: GitHub - AFaust/alfresco-better-trashmanagement: Project of Alfresco global, virtual hack-a-thon 201... 

Persistent, runtime subsystem configuration (OOTBee Support Tools)

Idea owner: Axel Faust

Description: Alfresco subsystems always provided an API to change their configuration at runtime, be restarted and use an abstract backend to hold persistent state. This is part of the Alfresco core, so it should not be quite simple to fill in the few missing pieces to get a similar "runtime configuration" experience that Alfresco Enterprise always provided to its users. This could then be used as a basis for OOTBee Support Tools to provide the UI tools for administration users.

Prep work: Check out OOTBee Support Tools, get to know our approach to adding new tools and maybe try to work on a small contribution for an issue in our backlog to get acquainted with our contribution process...

Interested parties:

  • Axel Faust

What has been achieved:

  • Implemented a PropertyBackedBeanPersister to collect events from PropertyBackedBean instances (primarily subsystems) and persist modified properties via AttributeService
  • Implemented an extension to the proposed "command console" tool in OOTBee Support Tools to allow runtime interaction with subsystems (listing of instances, listing of properties, modification of properties)

Source code:

Monitoring Services

Idea owner: Piergiorgio Lucidi

Description: A new functionality to enable monitoring capabilities for each Alfresco Java API Service. We could add a DropWizard integration inside the Alfresco repository to make easier storing metrics of Java services against any monitoring platform such as ELK or Apache Solr. We could have different ways to implement this idea: a new subsystem or a new set of interceptors to add in Spring proxies or simply implementing all the needed Java behaviours around services using each specific policy.

Interested parties:

What we have done

This new plugin allows you to get some data from the execution of Alfresco Java Services, at the moment it supports only the NodeService but it can be extended very easily with all the other services. Actually it includes the following libraries:

  • DropWizard Metrics (Core, Servlets)
  • Metrics ElasticSearch Reporter provided by Elastic

For tracking Java Service you can use two different approaches:

  • adding the Monitoring Aspect to contents and set which Behaviors you want to trace (similar to the cm:indexControl aspect)
  • overriding the Alfresco Public Services (Java API) adding the related MonitoringMethodInterceptor (now you only see the NodeServiceMonitoringInterceptor)

Source code

Material Design Share theme

Idea owner:  David Webster

Description: Using Share's built in CSS theming capabilities, I'd like to explore how easy it is to create a theme that enables Share to look visually similar to the Material Design principles now used across other Alfresco developed UIs. I think we should be able to make decent progress and create an open source theme that everyone in the community could use to increase the consistency of the user experience when Share is deployed alongside ADF based applications.

Prep work: A passing familiarity with MD (Design - Material Design ), and Share themes (Share Themes | Alfresco Documentation )

Interested parties:

  • David Webster
  • Tahir Malik

The new simple workflow

Idea owner: Angel Borroy

Description: Since Alfresco 6, using bundled Activiti workflows is discouraged, as the integration of Activiti and Alfresco Repository will be removed soon. Without default approval workflows, it will only remain the simple approval workflow available for the users. However, this feature has some limitations:

  • Approval users cannot be selected
  • Only allowed actions after approval / rejection is to copy or to move the document
  • No notifications are sent to stakeholders
  • No feedback (i. e. comments) is gathered from approval / rejection actions

The main target for this module is to provide a Repository design for a simple approval/rejection workflow including those missed features and easy to integrate in ADF. 

This module is not intended to be customised by Alfresco Developers but by Alfresco Users with some skills on Rules and JavaScript. 

The customisation of this module will not require Alfresco SDK (Maven) skills.

Interested parties:

  • Rahul DPaul Clinton

Turning Content Services into a Jetty-based fat JAR executable

Idea owner: Axel Faust

Description: Currently, Alfresco Content Services typically runs inside a Tomcat application container. While he is no longer with Alfresco, Richard Esplin‌ has previously stated that Alfresco may be looking into turning Content Services into a simple, self-contained executable process. I myself have recently been looking into GraalVM, and its constituent component SubstrateVM which is used in compiling regular Java applications into executable binaries without the need for a JDK. While it is a long way off to turn Alfresco into an executable binary, the first step invariably entails turning Alfresco into a simpler, self-contained executable Java application. This project would focus primarily on getting Content Services to run in a Jetty server, and building a fat JAR out of all the necessary components (Jetty JAR, Alfresco WAR(s), and maybe some typical addon JARs/AMPs like ootbee-support-tools).

I have already done some preparations in the last couple of weeks to create initial fat JARs and Runner projects.

Interested parties:

Source: GitHub - AFaust/simple-alfresco-executables: Experimental project to create simple executable JARs /... 

Update Alfresco SDK to work with ACS 6.X

Idea owner: Ole Hejlskov

The Alfresco SDK does not support ACS 6 in its current form. Multiple issues are present: It is not possible to leverage H2 anymore, artifacts have changed, renamed or removed. A new approach could be to leverage Docker containers to take care of spinning ACS 6 up. Alfresco already provides docker containers for ACS 6, so we could leverage which is a Maven Plugin to build and run containers. This would greatly reduce the complexity of the Alfresco Maven Plugin, however it will break backwards compatibility with the SDK. This is an unfortunate side effect, and it would be worth discussing and exploring different options as part of the hackathon. The main issue to solve would be to figure out how to apply JARs and AMPs into the ACS 6 container, and as a bonus to enable hot reloading using JRebel or HotSwap Agent. 

Interested parties:

  • Ole Hejlskov
  • Francesco Corti
  • Younes REGAIEG
  • Ranjeet Kumar Singh
  • Rahul D

Automatic transfer of obsolete versions to different content store

Idea owner: Filip Bruska

In case you use versioning in your repository, you can save some money if you move obsolete (not latest) versions to slower disk. Based on my understanding. the content store selector feature is not available in CE. Our aim would be to implement something similar for community.

Interested parties:

  • Alfresco team in Tieto

Finding: It is not so easy to transfer versions :-)

Source: GitHub - FilipBruska/obsolete-version-manager: Tieto Project for Alfresco Hackathon 2018 

Photo map

Idea owner: Filip Bruska

This "have some fun" application displays map of the world with pins from photos stored under specific folder in Alfresco. Google Cloud Vision API is used in order to get GPS coordinates.

Interested parties:

  • Alfresco team in Tieto

Result: ADF app which displays world map with pins from photos stored in Alfresco.

Source and more info about architecture: GitHub - FilipBruska/photo-map: Tieto Project for Alfresco Hackathon 2018 

Assignment of Workflows to Other Users (Vacation Re-direct)

Idea owner: Vidhi Panchal‌ from ContCentric

When a user in Alfresco goes for a vacation, his workflows are stuck. We aim to create a configuration where a user who is planning to go for a vacation can assign each of the workflows, where he has a compulsory role to act, to another user by selecting a from & to date & time. This way, the business processes are not stuck and the administrator doesn't have to fire-fight. 

Interested parties:

  • Alfresco team at ContCentric i.e. Bhushan KothariKintu BarotYash PatelRahul Pethaniprachi shahRahul DPaul ClintonShyam Ghodasra

Process Services

Use Activiti 7 Messaging system to store Tasks and Processes in a graph database

Idea owner; Mario Romano

Description: Activiti 7 along side with a lot of cool things introduce a messaging system based on Spring Cloud Streams, the objective is to catch the events fired by the engine to store them in a graph structure inside Neo4j Graph DB. The produced artefact will be a ms, most likely built with springBoot.

Interested parties:

  •  Mario Romano

Application Development Framework

Edit /Offline extension for Example Content App

Idea owner: John Knowles

A few implementations of the "Edit " feature (leveraging the AOS module in ACS) are already available as ADF components. With the release of the Alfresco Example Content Application 1.4 we have introduced extensibility features which enables developers to create modules that extend the application. It would be a great addition to see the Edit  (using AOS) and/or Edit Offline updated and wrapped into a plugin module to easily enable it inside the app.

Interested parties:


Content Editor for ADF and Example Content App

Idea owner: Eugenio Romano

ADF does not currently have the capability to edit text or HTML documents stored in ACS. The Monaco Editor is already available in some ADF projects and it would be great to use this for things like editing plain text files and markdown. We could also consider another WYSIWYG editor such as TinyMCE. Added bonus for wrapping this as an extension for the Example Content App.

Interested parties:

  • Eugenio RomanoRahul DPaul Clinton‌  Marius G.

Automated plugin and library installations for ADF/ACA

Idea owner: Denys Vuika

Description: For the time being ADF/ACA extension libraries require several steps to get integrated into an application: installing from the NPM, then configuring JSON definition, optionally adding extra dependencies and asset files. The idea is to define some sort of convention for an ADF plugins and its artifacts, and have a command line tool that is able to install the library, configure all assets, and even change the "app.module.ts" file to register extra Angular modules.

Prep work:

Look through the following libs:

Project link: GitHub - DenysVuika/alfresco-hackathon-2018

Interested parties:

  • Denys VuikaRahul DPaul Clinton

Use the extension mechanism of ACA to include AOS (again)

Idea ownerAngel Borroy

Last year we ported AOS Edit  feature to ADF as component. After that we tested a practical integration of this NPM component into ACA, what resulted in a blog post available at Our approach for extending Alfresco ADF applications - keensoft. Also Kasper Reijnders‌ wrote (again) a new NPM module for this AOS feature some months later. In fact, this two versions of the component (Kasper Reijnders‌ version is more or less the same as the previous one) are available at npm  together with an electronic signature one as the only ADF packages from the Community.

As AOS Edit  feature is not included by default in ADF nor in ACA, we are going to explorer how to use the new extension mechanism provided by ACA (Alfresco Content App) to include this feature in the "Open With" actions list. We'll share our experience in a form of blog post, video or (hopefully) source code.

Project linkGitHub - keensoft/aca-extension-aos: Alfresco Content Application (ACA) Extension to provide Office ... 

Interested parties:

  • Angel Borroy

Use ADF framework with Activiti 7 Cloud

Idea owner; Maurizio Vitale‌ 

Description: Create a PoC that shows how an ADF component like the ProcessListComponent is able to render process instances created with the Activiti 7. The new component will also integrate the material pagination and sorting to have a concrete solutions. 

Prep work: 

Activiti 7 Cloud 

Interested parties:

  • Maurizio Vitale