Flow-control-xblock : anyone has experience?

In MOOC GdP We are launching an “on-demand” version of our MOOC and we are working on a system to send mails tailored to the situation of each learner. We were thinking about a complex grade export system linked to SendinBlue, but it seems there is a much simpler solution : flow-control-xblock

It I get it right, this would allow us to :

  1. Have learners see different pages at the end of an exam, according to their grade * (“passed” = congrats, take your badge, “not passed” = you have a second try…)

  2. But also, through the sendInBlue API (and using the knowledge of the URL visited) to mail a reminder/congrats tailored to the exam result ? In this case do we need to redirect, not to a subsection but to a section, in order to get a different URL?

Anyone has experience of Flow-control-xblock?

Before we move further and install/tes, are there some things to read/know?

References :
https://github.com/eduNEXT/flow-control-xblock
https://www.edunext.co/articles/flow-control-xblock/

Maybe @Felipe or someone from his team can help?

Hey, I’ll ask the core developer of flow-control to take a look at this.

I believe flow-control would let you do both 1 and 2. Specifically about 2 you could create a redirect using the action to redirect to a custom url and use the url of the section/subsection you want + a querystring with extra info you might need for the sendInBlue API.

Thanks Felipe!

Here is were we are on our test server.

So we want to present different pages according to the fact that an exam is passed/failed/no attempted.

We have

What we did:

  1. add prerequisite “exam attempted” => if the exam is not attempted, the exam result page won’t show in the first place
  2. use flow-control to check the 70% threshold (the conditional module cannot test such a condition, it can only test “correct” but not a score), so we installed the flow-control X-block
  3. the default page resulat is “failed try again” and the flow-control message (which replaces the “failed try again” page if >70%) is “congrats, get your badge”

important : place the result page on another sub-unit (=after the exam unit), so that it’s loaded after the exam is completed

@Remi Hope you have done this.

“To use this feature on your instance of Open edX, you must configure the Milestones application, then enable prerequisites in Studio and the Learning Management System.”

https://edx.readthedocs.io/projects/edx-installing-configuring-and-running/en/latest/configuration/enable_prerequisites.html#enable-course-prerequisites

Hi @Remi_Bachelet,

I’m Diego Millan, Software Engineer at eduNEXT and flow-control-xblock designer/developer. It seems like you manage to add prerequisites feature, and from there you are using flow-control to match against certain grade percentage thresholds. We have never combined the xblock with prerequisites, so it’s definitely an interesting use case. I just wanted to follow up on your implementation and results.

I’m available if you have any further questions.

Dear @diegomillan,
Could you please clarify xblock flow control functionality:

  1. Is it possible to take into account several problems at once
  2. How exactly the flow logic is implemented?
  3. Is it possible to have several outcomes?

The case I want to implement is the following:
Student takes an exam, and fills two survey (problem) fields - his age, and how long ago was his university graduation.
Based on these 3 conditions at once, I want to evaluate and comment his exam score with paragraph of text - as low /moderate /medium /high (e.g. young student and old alumni will have different evaluation of same exam score). So that ones who had low result will see corresponding low result comment, and ones who had moderate/medium/high - another corresponding comments.
Is it possible just with flow control?
If not - could you please give an advice, how can we implement it?

HI @konst54

Yes, it is possible to implement your use case relying on XBlock Flow Control, as long as you have a way to apply a mapping between “your business logic” and actual grade for a problem. Flow control calculates the average grade (0-100 scale) for the list of problems defined in the component configuration.

  1. Is it possible to take into account several problems at once

Yes, you just have to define a list of problem Ids separated either with commas or blank spaces.

  1. How exactly the flow logic is implemented?

Once you define a graded problem (or a list of graded problems), a threshold value, and also an operator to apply the comparison, Flow Control calculates the total score (If it’s a list, an average will be calculated) then, it compares the score against the configured threshold, and finally executes a custom action if the expression evaluates to “True”.

  1. Is it possible to have several outcomes?

Since evaluating an expression is a binary operation, you just have two possible outcomes. (Either you met the condition or not). That being said, you could try to see if adding more than one flow control xblock component could resolve the issue but we have not tested such use case.

For more info, see features.

I hope it helps,
Diego