Achievement Unlocked! (Development Discussion)

Achievement Unlocked! (Development Discussion)

by Christopher Shanahan -
Number of replies: 10

Okay, I know this has been suggested a few other times in the forum, but none of which actually managed to help our direction.

 

I'm in my last quarter of college, and as an interpretation of an assignment I and my team decided to attempt to integrate Achievements (similar to Steam/Xbox 360/etc.) into someone's academic progression.

 

We've created the list of programming requirements we intend to implement, but we're fairly lost as to what we're going to need.

We were instructed to use Moodle because it's understood that our college will be moving to Moodle, and our previous academic progress tracker would be too difficult to gain access to for modification.

 

What we're trying to do involves achievements based on overall progression (ie. Junior Standing, Never Been On Academic Probation, GE Section XX Completed), Quarterly/Semester-wise accomplishments (Heavy Class Load, Perfect Attendance to an Early Morning Class), and Class Specific quirks given by the professor (Class Clown, Best Presentation, Class Valedictorian).

All of these are fairly simple Rules that can be checked whenever Moodle does it's hourly update (unless I'm misunderstanding said hourly wipe).

And along with the above we were planning on implementing Privacy settings and sorting algorithms. So if you don't want people to know you've been on Academic Probation, or only have a C level GPA you can limit the visibility. And if you want to view the overall percentage of people who have YY Achievement you can search it by select tags (Professor, Class, Section, Major, Standing [Freshman/Junior/etc]).

 

Now I've found the Attendance Module, and the Stamp Module, and think both will be helpful, but I don't know exactly what we will need, nor just how large of a task this is.

So I'm coming to you, to ask for your help.

Having developed with this platform, is this too large an undertaking for a month or two of allotted dev time?

Is it even possible to complete the three biggest components (the three levels of Achievements) using only what is already created with Moodle?

 

At worst, we will have to present that it would simply be/not be possible to implement if we don't have the time, but we'd prefer to actually create a system our college can and will use in the future.

Or we could create the basis and try to integrate it with Moodle as best as possible so that the general Moodle dev team can try to pick it up and take it forward in their own way.

Average of ratings: -
In reply to Christopher Shanahan

Re: Achievement Unlocked! (Development Discussion)

by Mark Johnson -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

Hi Christopher,

I've not used the Stamps module myself, but reading the docs it seems like it has a large part of the work done for you (actually managing the "achievements"), you could modify this to implement the 3 categories/levels you're talking about, and give people permission to assign stamps as required.  It's worth noting there's currently no version of the Stamp module for Moodle 2, so you'd either have to upgrade it yourself or develop on 1.9.

All of these are fairly simple Rules that can be checked whenever Moodle does it's hourly update (unless I'm misunderstanding said hourly wipe).

As you've called it an "hourly wipe", I think you've misunderstood it slightly.  Moodle runs a cron job on an interval that you specify, which performs various tasks as defined by each module (at an interval specified by each module). As far as automatically assigning stamps goes, it would be fairly straightforward to write a task that checks the relevant modules (ILPs, Attendance, gradebooks) and decides whether certain stamps should be assigned.

Having developed with this platform, is this too large an undertaking for a month or two of allotted dev time?

I'd say it's certainly possible in the allotted time, although you'll need to allow time (I'd give a couple of weeks) for learning the Moodle platform, it's fairly complex.

In reply to Mark Johnson

Re: Achievement Unlocked! (Development Discussion)

by Christopher Shanahan -

Thanks for the reply, I honestly wasn't expecting one for atleast a few 12-hour cycles, based on this board's activity. (Maybe I'm just too used to boards where the main page completely changes every 3 minutes)

 

I'll definitely look heavily into the Stamp module now though.

And the professor who this assignment has for told us (when he suggested Moodle over Blackboard) that there's another group on our campus who has been working with Moodle for a little while now. So we might be able to have them lead us into it and get this done in a timely manner.

 

*edit*
Gonna be honest. I wasn't very hopeful of completing this when I first made this thread. After your post, I'm much more confident.

In reply to Christopher Shanahan

Re: Achievement Unlocked! (Development Discussion)

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

I wonder if this should be implemented as a block, which users could add to their My Moodle page or their Public profile page?

In reply to Tim Hunt

Re: Achievement Unlocked! (Development Discussion)

by Christopher Shanahan -

That sounds like it would handle the whole "Profile page" problem we'd have to tackle.

I'm not entirely sure what that would entail though.

 

We're still having trouble trying to simply get Moodle running so we can create some test users. So we're going to need a fair amount of help/tips.

In reply to Christopher Shanahan

Re: Achievement Unlocked! (Development Discussion)

by Christopher Shanahan -

I was just told by the professor who started this project that we are OFFICIALLY moving to Moodle next scholarly year.

 

So it's possible that this module could gain some use if we can get this to a minimal completion state.

I've discussed it with the professor that he might be able to use any unfinished code as a base project for future classes.

My group obviously won't be able to take this past minimal functionality, and I don't want to impose on this community the creation/upkeep of the module, so I suggested the above instead.

In reply to Christopher Shanahan

Re: Achievement Unlocked! (Development Discussion)

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

It just occurred to me that what you are proposing may have some similarities with Davo Smith's checklist plugin: http://moodle.org/mod/forum/discuss.php?d=144764

In reply to Tim Hunt

Re: Achievement Unlocked! (Development Discussion)

by Christopher Shanahan -

I'm not entirely sure how we could use that, outside of those few achievements that actually have a progress bar.

IE. "All Handed In" 7/10 assignments turned in.

As a class specific achievement. But that would require the Teachers performing the checking, and that's a future detail for the suggested plugin.

 

How did you think we would have been able to use it? (who knows I may be overlooking something)

In reply to Christopher Shanahan

Re: Achievement Unlocked! (Development Discussion)

by Christopher Shanahan -

Okay, the team and I, after finally managing to get Moodle installed, have taken a look at Stamps.

Stamps currently:
-Have one image per stamp Group
-Each group can contain more than one stamp.
-Stamps appear on the user profile, and in the group, as stars.
(currently unchangeable default image)
-When viewed by the user only groups are shown, which link to stamp
display.
-Can be granted by anyone.
-Can be viewed by anyone.

To be Achievements, Stamps must:
-Have one Image per Achievement.
-Achievements appear on the user profile as their image (scaled?)
-Can be created by Professors or higher.
-Can be viewed based on privacy settings.
-Must contain the conditions to grant them inside of themselves.
-Must be given periodically. (Use a "check now" button till update
function found)

 

It seems that we can fairly easily turn Stamps into Achievements that are simply given by the professor (simplified, cluttering, unique stamps).

And that leaves us with just getting the achievements to grant them themselves. Which will either be up to the Cron job, or the function that is inside Stamps that the Cron job calls. We're currently looking for the "inside Stamps" one, but aren't sure what function name to look for.

In reply to Christopher Shanahan

Re: Achievement Unlocked! (Development Discussion)

by James York -

Looking forward to hearing any updates on this project, as I am interested in applying a similar system in my own context.

Keep us informed ;)

In reply to Christopher Shanahan

Re: Achievement Unlocked! (Development Discussion)

by Sebastian Berm -

This looks very interesting.

Would it be possible to get us the whole list of all you'd like to see in this module? - I cannot promis anything, but we might be able to take a shot at creating something like this.

I agree the best place would be to use a few blocks to accomplish as much as possible, however it would also be nice if we had something like 'hooks' or 'events' on the profile page itself, as we could just register something to be called whenver the profile page is loaded. I noticed http://tracker.moodle.org/browse/MDL-17449 was never implemented in Moodle 2.1, so that would be pretty difficult sad.

I would say 1.5 months to be just enough to create something like this, however, it's a major undertaking, and while I'm saying I could possibly do this in less time, I would recommend against it.

Personally I would advise against using existing stuff for this, as it would take too long to figure out what to copy and what to replace. But that's just me.