07-09-2017 09:15 AM
These are project ideas and teams for the 2017 Global Virtual Hack-a-thon.
The hack-a-thon demo is scheduled for Friday, October 6, 2017. The demo recording will be posted here: Office Hours: Global Hackathon Demo - YouTube
For each project, you should consider addressing the following:
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.
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.
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).
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:
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:
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:
Result:
Source Code: GitHub - AFaust/alfresco-better-trashmanagement: Project of Alfresco global, virtual hack-a-thon 201...
Idea owner: Andrei Rebegea
Goals:
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 members 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 crawler 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:
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:
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 Site.
In that way you can navigate the repository contents as if it were a (real) 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 formatted texts
* images are shown
* other file types become downloadable objects
Target: I would like to migrate the existing CMIS based classes to the new Alfresco java client SDK. It could be a good opportunity to test it on a "real" project.
Prep work: Familiarity with CMIS and Spring MVC (and maybe Alfresco REST API ?)
Related work: https://github.com/david-ciamberlano/website-inventor / https://github.com/Alfresco/alfresco-client-sdk
Interested parties:
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:
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:
Idea owner: Mark Tielemans
Description: Add a feature to send e-mail from a document in Alfresco, using the configured outgoing e-mail server. The following milestones can be considered:
Prep work: Understand forms, custom actions and possibly SMTP.
Results: GitHub - MarkTielemans/alfresco-mail-attachment
Interested parties:
Idea owner: David Antón
Description: Alfresco add-on to analyze people photos and extract information about the gender, the age, face expressions and others. So you can make a bulk photo import to Alfresco, and then make searches (for example, to know how many 30 age people photos are in the repository).
Prep work: Alfresco SDK, Alfresco Repository webscripts, Alfresco Share customizations and Java knowledge.
Related work: https://github.com/keensoft/alfresco-google-vision / https://github.com/deas/contentreich-ecm-google-ms
Interested parties:
Idea owner: David Antón
Description: We would like to continue Beecon's 2017 Hack-a-thon project with some new functionalities:
Prep work: Alfresco SDK, Alfresco Repository webscripts, Alfresco Share customizations and Java knowledge.
Interested parties:
Idea owner: Douglas C. R. Paes
Description: Improve the way Alfresco handles objects' versions, allowing to keep different sets of properties, permissions and assotiations for different versions of the same object.
The idea is trying to implement something similar to what is presented in the following blog post http://www.tsgrp.com/2017/08/14/alfresco-versioning-how-to-make-it-better-with-the-tsg-chain-version... , but as an open source module.
Interested parties:
Idea owner: Filip Bruska
Description: Let's implement a new addon which will review a repository health. There are several Alfresco recommendations which should be followed. For example:
Most of them will be implemented as jobs and results could be seen in Alfresco Administration Console. Those healthy checks are inspired by Luis Cabaceira blog (chapter 😎
Interested parties:
Results:
Idea owner: Sujay Pillai
Description: Prometheus is an open-source systems monitoring and alerting toolkit. It already has a JMX exporter for exposing JMX Beans via HTTP for Prometheus consumption & Alfresco too has JMX read-only monitoring beans. The main purpose is to scrape some Alfresco JMX readonly values in Prometheus and expose it on Grafana dashboard.
Also would like to make use of the alerting mechanism in Prometheus based on events/conditions at Alfresco side.
Prep work:
Interested parties:
Idea owner: Boriss Mejias
Description: Implement a service that automatically restores Alfresco backups on a daily basis. The service will run Alfresco from the restored data, and then it will run verification tests to check how healthy and reliable the backups are. Reports will be generated on the verification status. We need help to write verification tests, and generating reports. It doesn't matter if you don't have previous knowledge on the topic. Feel free to join us just to understand how backup and restore works.
Prep work: There are three big parts: Infrastructure, tests, reporting. The infrastructure might be the less reusable part as we want to run the project based on how we run Alfresco at CIRB-CIBG. But tests and reporting will definitely be reusable for other projects, and they should be runnable on other infrastructures. We would actually be happy if someone wants to join using BART. That would make the infrastructure part also reusable
Interested parties:
Idea Owner: Roy Wetherall
Description: ContentCraft is a Minecraft server plugin that connects to an Alfresco Content server and builds a three dimensional representation of content hierarchies in Minecraft. Using a standard Minecraft client, users can then interact with a "real" content library, by walking through rooms and reading books!
Source: GitHub - rwetherall/ContentCraft: Bukkit plugin for Alfresco.
Objectives:
* Update source to latest Alfresco Community, Minecraft and Spigot versions
* Update server to use V1 Alfresco REST API rather than CMIS
* Optimize macro feature to allow directional changes, compress recorded files, allow replay (ie update)
* Investigate "pull" refresh. Allowing the content representation to change and be updated as the underlying content is changed.
* investigate new ways of representing folder hierarchies more than 3 deep!
* Host Alfresco and Minecraft server on AWS for everyone to connect to
Interested Parties:
Idea owner: Douglas C. R. Paes
Description: Collect projects containing Alfresco fixes, organize them, check what is still valid and create pull requests for the several open projects in order to validate the new contribution process.
Some know projects containing fixes:
GitHub - loftuxab/alfresco-community-loftux: Alfresco Community by Loftux
GitHub - loftuxab/share-community-loftux: Alfresco Share Community Edition by Loftux AB
GitHub - ecm4u/share-5.2.d-patched
GitHub - ecm4u/community-edition-5.2.e-patched: Patched version of Alfresco Share 5.2.e
GitHub - deas/alfresco: alfresco "core" fixes
Interested parties:
Idea owner: Daniel E. Fernández Pera
Description: When uploading multiple documents to Alfresco from external sources, sometimes is required to deliver each one to an Alfresco user. This addon will provide a configurable rule to match the name of the document with the user and also a configurable delivering action. For instance, a data list can be filled with a pair of document name / email as matching source and moving to user home folder as delivering action.
Prep work: Familiarity with Alfresco SDK 3 and Alfresco Repository Java-backed web script / service implementation and Share forms customisation are recommended to get the most from participating in this project
Results:
https://github.com/keensoft/alfresco-classifying-action
Interested parties:
Idea owner: Raúl Sampedro
Description: ALF_NODE_PROPERTIES table stores every metadata value for Alfresco objects: contents, folders, users... Commonly, this table is filled with millions of rows, as it stores about 30 properties per node. Using a table partitioning approach will improve performance and will reduce maintenance operations. This project will produce a shell tool to perform table partitioning on living or brand new Alfresco PostgreSQL databases and also a guide for automatic partition generation will be drafted. A simple "Node Id" partitioning pattern will be provided.
Prep work: Familiarity with Alfresco database structure, PostgreSQL table partitioning and shell scripting are recommended to get the most from participating in this project
Results:
https://github.com/keensoft/alfresco-node-partitioner
Further work:
Interested parties:
Idea owner: Rupesh Sawaliya
Git-hub source :GitHub - rupeshsawaliya/alfresco-inflightworkflow: Alfresco based Inflight workflow
Demo Video:In flight workflow dashlet - YouTube
Description: Our goal is to develop an Aikau dashlet for in-flight workflows of Alfresco, it is going to be used for and by Admin user for having status of all the in-flight workflows.
Admin user will have permission to see the workflow status and reassigning from one user to other system.
Future enhancement would be:
Prep Work: Not really
Interested parties:
Idea owner: Francesco Malagrino
Description: Integration of Salesforce in APS using Java delegates
Prep work: Familiarity with Salesforce API, Java Delegates and APS Workflow
Project link: https://github.com/Vegetam/APS-integration-with-Salesforce/
Interested parties:
Idea owner: Mauricio Salatino
Description: Activiti Cloud provide an out of the box deployment to a kubernetes environment. During the hackathon we will improve these descriptors and work together with community members to improve the documentation on how to get these deployment working.
Prep work: Take a look at Activiti Cloud meets Kubernetes (and they like each other) – Salaboy (Open Source Knowledge)
Interested parties:
Idea owner: Ciju Joseph / Francesco Corti
GitHub source:
Description: Alfresco Process Services has a standard way to develop custom Java Delegates in a maven project. The standard JUnit tests can be used, as usual, to test their behaviour. From a BPM perspective, the APS package named APP, should be managed together the Maven project, being part of the deployment. The goal of this project is to work on some samples, to manage the entire lifecycle of a standard APS project, to define improvements and automatic tasks to be used in CI/CD environment.
Prep work: Take a look at activiti-examples/activiti-project-structure at master · cijujoseph/activiti-examples · GitHub
Interested parties:
CI/CD of APS Apps
Blog: APS CI/CD Example
Unit Testing in APS
Blog: APS Unit Testing Part I
Blog: APS Unit Testing Part II
Idea owner: John Doe
Description: TBD
Prep work: TBD
Interested parties:
Idea owner: Mikel Asla
Description: Create new ADF Components to port Share features to the new development framework:
Prep work: Familiarity with Alfresco ADF and Alfresco SDK is recommended to get the most from participating in this project
Results:
https://github.com/keensoft/ng2-alfresco-aos-editonline
Interested parties:
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:
Idea owner: Kalpesh Patel
Description: 'ADF Chat Component' can be a very useful tool for the Alfresco users. Allowing users to communicate within Alfresco would definitely add value to Enterprise collaboration objective.
When we talk about Knowledge Management and similar kind of applications of Alfresco where users can share their knowledge and solutions to various problems, chat can be a very handy tool. The selective conversations can be treated as 'Knowledge Repository' and provided as a 'Learning Material' to others, too. Initially we are planning to develop basic features like Chat initialization, Group chat, Profile Settings, Manage Contacts and Chat notifications. However, we want this component to be extensible up to the 'chatbot' kind of functionality in future.
Prep work: Familiarity with ADF components, Overall Alfresco and share customization
Results: ContCentric / alfresco-adf-chat · GitLab
Interested parties:
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.