## Activities: Courseboard

mod_courseboard
Maintained by Franz Weidmann
- quick and uncomplicated way to tell what bothers him/her about teacher/student/course - teacher can have a quick summary how his course is seen from the students perspective - teacher can answer questions - students can trade informations, help with little problem
66 sites
14 fans
Courseboard by Franz Weidmann

With this activity the students can give the course/teacher
a short feedback, new thing is that those posts are public (on a "wall") and if the students
choose so, anonymously and that in a quick way(short text, without much clicking).
A post can also be commented and by that a little discussion could also be possible.
In the end, this plugin should enhance the communication between student and teacher, but student to student too.

### Contributors

• Fri, 24 Oct 2014, 3:11 AM
Franz - $plugin->maturity is expecting one of the maturity related constants. From https://docs.moodle.org/dev/version.php you can see that "Supported value is any of the predefined constants MATURITY_ALPHA, MATURITY_BETA, MATURITY_RC or MATURITY_STABLE". So it should be MATURITY_BETA. Peace - Anthony • Sat, 25 Oct 2014, 7:22 PM Hey, i fixed that, should i press "Request re-approval" or how should i proceed? • Mon, 27 Oct 2014, 4:24 PM Hi Franz. Please request the re-approval one you believe all the raised issues were fixed. • Tue, 28 Oct 2014, 2:41 AM So i request re-approval. Following issues i think are fixed: - security, Userinput will be taken and given out checked. The use of a sesskey prevents cross-side request forgery. - coding style was improved with the help of the codechecker-plugin. - seperated the AJAX-part of the code into a seperate file. - better overview of the HTML Output of the server with using of renderer. • Sat, 1 Nov 2014, 8:00 PM Hey guys, normaly it doesnt take a week until one of you replies, so dou you have no time at the moment or is there a problem with the plugin? • Tue, 4 Nov 2014, 7:25 AM Thanks Franz for the updated version. It's significant improvement from the first versions we saw earlier, most notably in the input/output processing area. There are some issues yet that you may want to pay attention to. PHP throws "Notice: Uninitialized string offset" in renderer.php, lines 251 and 141. Please make sure you are developing with the full debugging on to catch these things during your testing. Please consider rewording strings 'newmodulename' and 'pluginadministration', it seems like they are missing a space. Also note the activity title is also displayed when editing the module instance so 'New modulename' is not optimal there. Why not to follow what other activity modules display there to achieve consistency in UI. The capabilities 'mod/courseboard:view' and 'mod/courseboard:write' do not seem to be used at all. You tend to call DB queries inside loops. Note this easily leads to significant performance issues once the module is heavily used in bigger courses, and it makes the code not to scale well. The post https://moodle.org/mod/forum/discuss.php?d=79455#p352662 contains more background info on this subject. You do not store the ID of the user who submitted the post to the course board, regardless the chosen anonymity level. This is quite uncommon pattern in Moodle as we generally store this information for potential future analysis and reporting. You may wish to re-consider the database schema yet. Also note, storing things like 'amountcomments' explicitly in own field separated from the actual count of associated comments violates basic guidelines for DB tables normalization. Same applies to the field 'didrate' that should typically be implemented via a separate table (ideally with additional info such as the timestamp of when the post has been rated etc). There is no support for essential activity module APIs such as courseboard_user_outline() or courseboard_get_participants(). The function courseboard_scale_used_anywhere() is not valid at all. Also, there is no support for backup and restore of this module. These missing features are not adequate for a plugin that claims to be in "beta" maturity level (as this level suggests the plugin is feature full). So users of your plugin could easily run into data-loss troubles if they relied on these basic common features. Your current code does not support common CSS styling. So it does not give the site theme many chances to eventually customize the look and feel of your plugin. Please note that styling via the 'style' attribute of HTML tags is discouraged in most cases. To be completely honest, the overall code is far away from the standards we like to see in Moodle plugins. Moodle has guidelines for contributed code (see https://docs.moodle.org/dev/Coding_style). Your quite specific way of indenting (or often not-indenting) the lines makes it quite difficult to follow the code logic. Why is view.php starting with global$DB;? Also note, in recent Moodle
versions, it's preferred to use the MUST_EXIST flag for methods like $DB->get_record(). Plugin renderers should not access the global$PAGE object, they are supposed to use \$this->page.

Please fix the @package docblock tag so that it contains valid component name (see https://docs.moodle.org/dev/Frankenstyle).

As the Courseboard is now implemented as a fresh new plugin, I believe the db/upgrade.php does not make any sense now and should be
completely removed.

For now, I am going to mark this plugin as needing more work until we get these issues resolved. Thanks for your patience with the
review and approval process.
• Mon, 10 Nov 2014, 4:27 AM
Hey David,

i now hopefully fixed all the issues you mentioned.

You mentioned my codingstyle. I changed a few things and used the code-checker, but indenting was not the problem. Can you give me an example where i dont intend nicely.

Greets Franz.
• Mon, 10 Nov 2014, 4:31 AM
Edit:

With a upgrade.php i couldnt upload the plugin, so i didnt delete it.

A support for a css theme i didnt include too, because primarily i want that the plugin is working and a css theme is therefore a secondary goal.
• Wed, 12 Nov 2014, 10:35 PM
Edit:

- simplified creation and output of the date for a post/comment

I wonder when i should upload a new version, only when there are big differences or is it also ok when it is something minor like the change with the date here?
• Thu, 13 Nov 2014, 3:25 AM
It's really up to you as the maintainer of the software to decide when to officially call it a new version. I personally like the approach http://en.wikipedia.org/wiki/Release_early,_release_often
• Thu, 13 Nov 2014, 5:22 AM
Thanks Franz for attempting to address raised issues promptly. There are still some issues with the code that should be improved.
Your styles file does not contain specific CSS selectors. So the defined styles may affect other parts of Moodle outside your plugin
scope (once they are concatenated with other plugins). There are some hard-coded English strings in the code.

I am going to approve this plugin to give you the opportunity to get wider feedback from the community. I can see you are eager
about improving your plugin so I wish you good luck with further development and clean-ups of the code in future versions. You are
cleared to land, welcome to the Plugins directory!
• Thu, 13 Nov 2014, 6:26 PM
Okey, thanks a lot for the useful help and i hope i can contribute with this plugin.
• Wed, 7 Oct 2015, 4:35 PM
Hey Franz,

I like this plugin very much. Thank you! The one thing I'm missing is an optinal subscribe function. I use this activity as feedback-forum in my corses and if I want to know if there are new posts I have to login into the course and check it directly in the courseboard. An email notification can save a lot of time and also can assure that every post/feedback is answered immediately. Do you plan to develop this plugin further?

Cheers and thanks, Anna
• Tue, 21 Jun 2016, 7:52 PM
Thanks for the great plugin! There is one small problem - my name always gets mangled up because something inside the plugin seems to swallow the "umlauts". In the drop-down list choice between "Anonymous" and my name, my name is written correctly; but in submissions, the name is mangled to "Guido_Rling". I have not yet managed to locate where this problem occurs, but would appreciate if it could be fixed.
Note: the correct spelling - as I am registered here with transliteration - would be "Guido Rößling".
• Tue, 21 Jun 2016, 7:55 PM
I just checked - my name already appears in this form in the database table for the plugin.