Project: Cohort Module Enhancements

Hello @darius, @burke and others,

During the Design Forum on the 4th of May we discussed what steps had to be taken to carry this project out in the right direction. Some of the valuable suggestions we received, in a nutshell are:

  1. Design the module so that Dynamic Cohorts can be supported in the future
  2. Rewrite the code for the complete UI (Angular included)
  3. Make the UI in a separate module, preferably as an Open Web App

There are a few issues if we were to proceed this way:

  • First of all, the current architecture of Cohorts is such that it does not support Dynamic Cohorts. So building something currently keeping in mind a feature that is not yet implemented seems difficult. That being said, we will make sure that during the progress of the project we’ll make sure that we don’t implicitly assume we’re working only with static cohorts.

  • Second, implementing the complete UI as an Open Web app would require rebuilding the entire UI from scratch and also experience and knowledge in Polymer.js I believe, which has a learning curve attached to itself and the time period allotted for GSoC is a bit too short for that.

If we were to go ahead with the project keeping in mind that we want to generalize it and integrate it into core ASAP (and I believe that is the plan, which sounds awesome) there is a good chance that the project still remains quite unusable as it is right now (Again, time window for GSoC).

@maimoonak mentioned in the meeting that her organization already has a use for this module in their project. In fact, @sharonvarghese worked on the project keeping in mind the requirements for Maimoona’s use case last year.

So if we are able to complete the project as per her requirements and they can actually use the module on a practical basis, that would be a great achievement in itself :slight_smile:

We can work on integrating the module into core in future projects, presumably when the architecture can support Dynamic Cohorts so we can leverage that into the project.

Tentatively, the final plan is as follows, as per my proposal:

  1. In Coding Phase 1, revamp the complete UI and add features that allow us to manage, edit cohorts. Add a dashboard and integrate a search widget. This was one of the primary features needed for @maimoonak’s organization if they were to put the module to use. The plan is to use jQuery and Bootstrap since that would really speed up UI development and is easy to work with.

  2. In Coding Phase 2, complete the HFE integration, which should allow us to crate cohort-centric forms. Also, the REST endpoints will be redone.

While we do know that this was not the optimal path to go ahead, keeping in mind the time constraint and also not wanting to keep the project unused for presumably another year (until the next SoC) we decided to go ahead with this so that atleast it is completed and usable for using in a set of particular scenarios.

On a sidenote, we plan on utilizing the Agile board to keep progress of code and milestones as tickets in the form of a sprint. I’ll post a link as soon as it’s ready.

Looking forward to your views and opinions!

Cheers, Shreyans