Projects and Teams Hack-a-thon at DevCon 2018

Document created by afaust Moderator on Nov 29, 2017Last modified by fcorti on Mar 1, 2018
Version 59Show Document
  • View in full screen mode

Instructions

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 if necessary 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. The final teams typically constituate themselves on the day of the event based on in-person presentation of the ideas and other factors.

 

Projects

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 Gastaldo)

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:

  • Sandrine Gennari

 

Alfresco Governance Services

Extend API Explorer to include additional API definitions

Idea owner: David Webster

Description: The ACS APIs are hosted at https://api-explorer.alfresco.com/. The Governance Services APIs released in RM/AGS 2.6 have their own API explorer, but it would be useful to create an extension mechanism inside the ACS API explorer so that addition API definitions can be included & ultimately all platform APIs can be browsed from a single location.

Prep work: none.

Interested parties:

  • Gavin Cornwell
  • Markus Joos
  • Ana Manolache
  • Rodica Sutu
  • Jan Vonka

 

We made the load of the api yaml files dynamic so other modules can drop their own files in the definitions project. We also added the apiId field in the yaml files, under info, that is the id that we place in the select dropdown.

 

We have a running application but we noticed the following things that we started to improve: the apis order is unpredictable, the load time is quite high and the change in the yaml file is not supported by swagger format. We decided to place api information in a separate properties file with the same name as the yaml file in which we store the id and the order in which it should appear. This way we can assign interval slots to different teams so they have the apis grouped and also order the apis inside the module. So to add a new api you

need to drop 2 files in the definitions folder: <new-api>.yaml and <new-api>.properties

 

Sources can be found at GitHub - mrksjs/rest-api-explorer: Public REST API Explorer 

 

Add GS Capabilities to Example Content App

Idea owner: David Webster

Description: The GS APIs are now included in the Alfresco JS API. It'd be great to see these used in ADF Components or included in the example Content App.

Prep work: none.

Interested parties:

 

AWS Macie integration

Idea owner: David Webster

Description: AWS Macie is a machine learning tool that can analyse content in an S3 bucket to determine whether it contains sensitive data and risk level. I'd like to see how this can be used in conjunction with the GS content marking APIs to provide automated content classification, e.g. building upon work done by Gav to integrate AWS' Rekognition service.

Prep work: A working AWS account and CLI (e.g. via Cloud 9?) would help. 

Interested parties:

  • Gavin Cornwell
  • Jan Vonka

 

Alfresco Content Services

Share Login Screen Customization

Idea owner: Sergey Palyukh

Description: Extend existing add-on to get ability changing copyright, product name and tagline for Share Login page by using UI

Prep work: Download sources from git and study them

Results: 
GitHub - FlexSolution/CustomizeLogin: Extension for Alfresco that allows to customize Login Page by using UI 

 

Share Contributions

Idea owner: David Webster

Description: If you've got a patch you'd like to contribute to the Share codebase (inc. Aikau and Surf), then bring it along to the hack-a-thon and I can assist in getting it submitted as a Pull Request in a way the team can most easily review it.

Prep work: Find a bug or an issue & fix it.

Interested parties:

  • YOUR NAME HERE?

 

Better Trash Management (continuation)

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. It should be pretty straight forward to build a far better experience using Share/Aikau and Alfresco's full-text search capabilities.

This project is a continuation of the work started during the last Global, Virtual Hack-a.thon, which concluded with a basic Aikau-based search UI and enabling proper SOLR indexing & querying of deleted items.

*As an aside, also raise improvements to Trashcan REST API (if not already captured in REPO jira project) ?

Prep work: Check out the existing project and make yourself familiar with Aikau...

Interested parties:

 

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:

  • TBD

 

Split Share Site Components into Community-maintained projects

Idea owner: Axel Faust

Description: In an email to Alfresco Enterprise customers and partners, Alfresco has communicated that it intends to deprecate Share Site Components, specifically blogs, calendars, data lists, links and discussions, in the 6.0 release. Though not used very frequently by a majority of customers / users, these features may still have value for some parts of the community. Similar to past features that have been deprecated and removed from Alfresco, it may be an option to split these features into an community-maintained project to keep them around for those people that still do rely on them. This could also provide an easier way to improve / maintain these (Alfresco has not really done any noticeable amount of continuous work in the past couple of years).

Prep work: Make yourself familiar with general Share development and the specific tools (Site Calendars are based on jQuery, rest on YUI2 and partially TinyMCE)

Interested parties:

  • TBD

 

Healthy Repository addon (continuation)

Idea owner: Filip Bruska

Description: During Alfresco Virtual hackathon 2017, a few people started the implementation of addon which should review "health" of Alfresco repository. There are several recommendations provided by Alfresco (especially by Luis Cabaceira) such as:

  • Limit the maximum number of nodes in a folder
  • Limit the folder hierarchy depth
  • Limit Groups hierarchy to 5

Results from virtual hackathon can be seen here GitHub - Vitezslav-Sliz/tieto-alfresco-repository_monitor: Project for Tieto Ostrava Alfresco Hackathon 2017 

Prep work: Check the current status in GitHub + Be familiar with OOTBee Support Tools implementation.

I have just updated possible tasks for hackathon see GitHub - Vitezslav-Sliz/tieto-alfresco-repository_monitor: Project for Tieto Ostrava Alfresco Hackathon 2017 

Interested parties:

 

Multi-tenant user

Idea owner: Marcin Makowski 

Description: In many BPO centres documents from different companies are processed using Alfresco tenants. There is an inconvenience for user belonging to many tenants because Alfresco doesn't have one view for documents from the tenants.
It would be great to prepare mechanism for:

  • simultaneously logging in to many tenants
  • simultaneously searching documents in many tenants
  • add document to selected tenant via multi-tenant user interface

Prep work: Make yourself familiar with multi-tenancy

Interested parties:

  • Łukasz Tworek
  • Jan Vonka (happy to review & advise - sorry, some conflicts during hack-a-thon)

Results

GitHub - BeOne-PL/multi-tenants-tools: MultiTenants Tools

 

Integration with Cloud Foundry

Idea owner: Richard Esplin

Description: Cloud Foundry is a popular open source, vendor-independent, cloud platform. It provides tools for easily deploying, operating, and scaling applications which are written in any programming language or framework. These applications have to adhere to specific policies to work within the Cloud Foundry ecosystem. These applications can interact with resources that are provided by services managed with Cloud Foundry tools. To make the Alfresco Content Repository available as a resource to a Cloud Foundry application, a Service Broker Definition needs to be provided.

This project would achieve the following goals:

  1. Learn enough about Cloud Foundry to understand if a Service Broker Definition is the best way to access the Alfresco Content Repository from an application managed by Cloud Foundry.
  2. Understand the steps required to to implement a Service Broker Definition.
  3. Provide a Proof-of-Concept implementation of a Service Broker Definition.

Unfortunately, I (Richard) have a conflict that will prevent me from attending most of the hack-a-thon, but I will be available to provide guidance to people who choose to work on this project.

Project will be hosted at Order of the Bee GitHub account.

Prep work: 

Interested parties:

Results

https://github.com/OrderOfTheBee/alfresco-cloud-foundry

 

Improve generator-alfresco Yeoman generator

Idea owner: Bindu Wavell

Description: Yeoman is a node framework for creating command-line driven code generators. generator-alfresco is a mature project that provides a set of generators that assist with the creation of All-in-One SDK projects (2.0 - 3.0.1) and associated customizations. In addition to creating the base project, it also provides CLI driven wizards for creating actions, behaviors, models and WebScripts and for linking in additional modules.

 

For people with some JavaScript experience, this is an easy project to work on. We have a backlog of enhancements for people to work on. I plan to focus on code quality during the hackathon. Having said that, I will be very happy to collaborate with people who would like to contribute.

 

Prep work: Learn about Yeoman and our generator. For development, you will need node >= 4.5 and < 9.0, Java 8, Maven and an IDE. You might want to give the following commands a go in your shell once you have the pre-reqs installed:

npm install -g yo generator-alfresco
mkdir yoalf ; cd yoalf
yo alfresco
yo alfresco:amp-add-common
yo alfresco:module-add-source
yo alfresco:model
yo alfresco:action
yo alfresco:behavior
yo alfresco:webscript

Interested parties:

 

ContentCraft - Visualizing and Interacting with Content using Minecraft

Idea owner: Roy Wetherall

Description:  ContentCraft is a Bukkit plugin for Minecraft that connects to an Alfresco content store, builds a three dimensional representation of a content hierarchy and allows a user to interact with the content.https://www.cloudfoundry.org

 

During this Hackathon we will be looking at:

  • Using V1 REST API's to access the content repository
  • A new way to visualize deep hierarchies using room grids and transportation.
  • Ways to transform more forms of content so they can be "read" from a book within Minecraft.

 

Prep work: 

  • Download and install latest Minecraft client.
  • Requires a Minecraft account login.

Interested parties:

 

ECM Architect Add-Ons Update

Idea owner: Jeff Potts

Description: A bunch of my add-ons need to get upgraded from SDK 2.2 to SDK 3.0. At least one needs some work to be compatible with 5.2. Add-ons to work on include:

Share Site Creators

Share Site Space Templates

Share Inbound Invites

Share Login Announcements

Prep work:

Just check out the projects and maybe test them with 5.2 to help identify what needs to be done.

Interested parties:

Jeff Potts

Alfresco Process Services

Email Integrations in APS

Idea owner: Ciju Joseph

Description: Alfresco Process Services doesn't have any inbound email integration built into it. However the power of SpringExtension Features in APS makes it easy for customers/partners to develop those solutions. In this project we will implement a few examples of some of the most common use cases that we often see from customers:

  • Start a process from an email
  • Complete a task by replying to an email.
  • Complete a task by clicking a button in an email (via an un-protected API exposed in Alfresco Process Service, security can be based on a one-time use token associated with the task which will expire on task completion).

Slideshare: Alfresco DevCon 2018 Hackathon -> Email Integrations in APS 

Prep work: Make yourself familiar with developing extensions in Alfresco Process Services, I have plenty of examples in my repo https://github.com/cijujoseph/activiti-examples. I have started the work on this idea few days ago in my example repo aps-email-listener-extension.

Git Repo: To be made available after DevCon

Interested parties:

 

BeerPM in APS 

Idea owner: Marcello Teodori

Description: Playing a little bit with APS for a more fun project, collecting requests for beers to buy for the fridge in the office and shuffling them via recommendations per style using the Untappd API - basically Beer rather than Business Process Management.

Creating a chatbot UX rather than the usual form would be nice as well, maybe on Facebook Messenger so that it is mobile too.

Prep work: Knowledge of 101 Activiti/APS examples and ADF or any chatbot platform maybe if you want to have a nice user interface for the process.

Interested parties:

 

Example BPM/APS Project

Idea owner: John Doe

Description: TBD

Prep work: TBD

Interested parties:

  • TBD

 

Application Development Framework

Adding a new feature to Alfresco Content Application (ACA)

Idea owner: Mikel Asla (will work remotely)

Description: Recently Alfresco released the first draft for Alfresco Content Application (ACA), the new UI app based in ADF. As we developed an NG2 component for ADF some months ago (ng2-alfresco-aos-online), it's time to experiment how to add new features to Alfresco Content Application by enhancing the app with an "Edit on MS Office" action. Likely a short tutorial on adding features to ACA and a working sample will be produced.

Prep work: Make yourself familiar with ADF 2.0

Interested parties:

ResultGitHub - keensoft/alfresco-content-app-with-aos: This project ilustrates how the ADF based alfresco-content-app applicat… 

 

Improve ADF application generator (yeoman)

Idea owner: Denys Vuika

Description: Recently the ADF application generator has been updated with blueprint support and 3 out-of-box project templates. The generator lacks the "unattended" or "silent" mode to be able using it from other tools and scripts without prompts.  It would be also great if generator supported installing templates from external repositories.

Prep work: Make yourself familiar with GitHub - Alfresco/generator-ng2-alfresco-app: Yeoman Generator Angular 2 Alfresco Application and Writing Your Own Yeoman Generator | Yeoman 

Interested parties:

Result: with the help of Bindu Wavell, a Pull Request with Command Line support for Yeoman Generator[hackathon] command line mode support by DenisVuyka · Pull Request #106 · Alfresco/generator-ng2-alfresco-app · GitHub 

 

Example ADF Project

Idea owner: John Doe

Description: TBD

Prep work: TBD

Interested parties:

  • TBD

 

Attachments

    Outcomes