Projects and Teams Global Virtual Hack-a-thon 2017

Document created by afaust Moderator on Jul 9, 2017Last modified by arebegea on Aug 23, 2017
Version 37Show Document
  • View in full screen mode

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

 

 

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 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 chat.alfresco.com or a desktop client) and Google Hangouts.

 

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

 

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)

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:

 

Extend core model to support properties on associations

Idea owner: Yogesh Kode

Description: Currently properties cannot be added to Associations. There are several situations were a qualified association is required. One way to get around this limitation today is to make the association with properties a "type" where in you end up creating two associations instead of one association. This creates a scalability issue. Let us take the following example: We can have several stake holders of a content. So we can define an association between Content and Person.

a type and put a property and then define two associations.

  <types>

    <type customContent >

        <associations>

            <association>

               between customContent and contentStakeHolder

            <association>

       </associations>

    </type> 

    <type name=contentStakeHolder>

      <property> stakeHolderType </property>

      <associations>

            <association>

               between contentStakeHolder and person

            <association>

       </associations>

      </type>

      <type person>

         ...

      </type>

</types>

 

As can be seen from above, one association is broken into 2 associations. This creates custom implementation and maintenance. It would be nice if the Association tag could be extended to support properties and associations - something similar to the following:

 

<type customContent>

             .....    

       <associations>

            <association name=contentStakeHolder>

                between customContent and Person

                 <properties>

                    <property name=stakeHolderType>

                    </property>

                 <properties>

                  <associations>

                        <association>

                              between contentStakeHolder and XXXX [this is a contextual association that is valid only for certain content to person association for example.

                        <association>

                  </associations>

            <association>

       </associations>

</type>

 

In a nutshell the OOTB core should be extended to support qualified and contextual associations. (Edit by Axel Faust: idea was triggered by discussion on a "does this feature exist" type of question)

 

Prep work:  None really

Interested parties:

  • be the first...

 

Content Services

 

Azure DevOps Plugin

Idea owner: Piergiorgio Lucidi

Description: Implement an extension for adding DevOps capabilities integrated with Azure

Some potential features:

  • Containers management
  • Decorating with metadata, tags for advanced search
  • JavaScript API extension
  • Deployment against Azure

Prep work: Familiarity with Alfresco SDK 3, Alfresco Repository Java-backed web script and how to configure Alfresco Share is recommended to get the most from participating in this project. The second topic where you should be familiar is the Java Azure SDK library and we probably need to become expert for implementing these operations:

  • Downloading / Uploading containers from Azure
  • Deployment webapps and container against Azure
  • Getting informations and metadata from an Azure container

 Take a look at the Azure Java SDK samples.

Interested parties:

 

Better Trash Management

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.

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:

 


Data Load via V1 REST API

Idea owner: Andrei Rebegea
Goals:

  1. Leverage the power of the V1 REST APIs to showcase interactions with the Alfresco repository;
  2. This tool could be used to assess if the community version/single instance Alfresco could be enough to be used by an organization that requires a certain amount of load on the system.

Description: Extend the benchmark framework ( https://github.com/AlfrescoBenchmark/alfresco-benchmark ) to leverage the V1 REST APIs for doing data load on a repository
This includes the creations of users, sites and files.
Simulate real world scenarios where average is not everything: have folders with huge number of child items; have very complex and deep folder structures; huge files; have very popular sites(lots of memebers and lots of files);
Find a way to load the content with popular file formats (some that can be indexed by solr) : txt, html, pdf, documents, images, videos... (maybe do a web crawller for different formats - start the search with Alfresco related keywords)
Try to create folder rules(APIs for this may not be available yet), move/copy(/delete/lock for edit) items around, simulate files that are changed very often - versioning/history;

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:

 

Alfresco Website Inventor

Idea owner: David Ciamberlano

Description: Alfresco Website Inventor is an open-source project that aims to build a fully functional website on top of an Alfresco Share Site.
In that way  you can navigate the repository contents as if it were a website.
* each folder will be rendered as a webpage (its subfolders will become linked webpages)
* each content of the folder will be shown on the page:
    * txt, html, MD are rendered as texts
    * images are shown
    * other file types become downloadable objects

Prep work: Familiarity with CMIS and Spring MVC (and maybe Alfresco REST API?). Familiarity with a common Natural Language for the documentation and translation…

 

Interested parties:

  • be the first...

 

Usable Aikau Forms Service

Idea owner: Axel Faust

Description: Last year, Dave Draper worked on an enhancement to the Aikau library that would allow reusing legacy-style form definitions within Aikau. While this is all nice and well, it does not address an important problem when it comes to Aikau-style forms: How to ensure they are consistent across all contexts and only require a single, central definition without any code duplication? In effect Aikau needs to have a similar configuration option for forms as we have with the legacy-style forms. This project idea would look at adding this reusable forms engine.

Prep work: Familiarisation with Aikau and Surf configuration service concepts; especially configuration evaluation (evaluators + conditions), merging of configurations and Aikau widget dependency collection/lifecycle

 

Interested parties:

  • be the first...

 

Add Dynamic-extensions genorator to generator-alfresco

Idea owner: Younes REGAIEG

Description: Implement a new set of generators into the alfresco-generator addon making it possible to create new DE bundle project with Alfresco generator. The effort should aim also at adding a couple new generators to generate sample DE extensions for alfresco (annotated webscripts, actions policies ....). Check this issue for more details on what needs to be done.

Prep work: Familiarity with generator-alfresco and with java-script development, familiarity with dynamic-extensions and yeoman generator is a valuable plus

 

Interested parties:

  • be the first...

 

Example ECM Project

Idea owner: John Doe

Description: Implement cool prototype with technology X to showcase the ability of Alfresco to act as B...

Prep work: Familiarity with Alfresco SDK 3 and Alfresco Repository Java-backed web script / service implementation is recommended to get the most from participating in this project

 

Interested parties:

  • John Doe
  • Jane Doe

 

Process Services

 

Salesforce Integration with APS

Idea owner: Francesco Malagrino 

Description: Integration of Salesforce in APS using Java delegates

Prep work: Familiarity with Salesforce API, Java Delegates and APS Workflow

Interested parties:

  • be the first...

 

Integrating Activiti events and commands with Gitter and Slack

Idea owner: Mauricio Salatino

Description: Join us to hack a project to integrate the process engine events and commands with Gitter (https://github.com/Gitteroid/GitterJavaSDK) and Slack (https://github.com/seratch/jslack) to create smart chatbots that can start processes and complete tasks for you.

Prep work: Take a look at https://github.com/Gitteroid/GitterJavaSDK and https://github.com/seratch/jslack.

Interested parties:

  • be the first...

 

Example BPM Project

Idea owner: John Doe

Description: TBD

Prep work: TBD

 

Interested parties:

  • Tabrez Diwangi
  • Amruta Wandakar
  • Ethan Wong

 

Application Development Framework

 

Alfresco Share ADF Components

Idea owner: Mikel Asla

Description: Create new ADF Components to port Share features to the new development framework:

  • "Edit in Office" link to use AOS capabilities
  • "Manage rules" for folders
  • "Version history" for files
  • "Tags" for files and folders
  • Simple workflow
  • Tree navigation
  • Tag navigation
  • Create document & folders from template
  • ...

Prep work: Familiarity with Alfresco ADF and Alfresco SDK is recommended to get the most from participating in this project

 

Interested parties:

 

A Rapid Application Development experimentation using ADF

Idea owner: eugenio romano

Description: The goal of this project is to experiment a visual setup of pages (and layout in general) using the ADF Components. The main idea is to define a Rapid Application Development experimentation using Angular, to be used in the Alfresco Application Development Framework.

Prep work: Familiarity with Alfresco ADF to get the most from participating in this project.

 

Interested parties:

 

Example ADF Project

Idea owner: John Doe

Description: TBD

Prep work: TBD

 

Interested parties:

  • TBD
5 people found this helpful

Attachments

    Outcomes