Note: You are currently viewing documentation for Moodle 2.0. Up-to-date documentation for the latest stable version is available here: Student projects/Blog improvements.

Student projects/Blog improvements: Difference between revisions

From MoodleDocs
(Replaced content with "{{Moved_to_dev_docs}}")
 
(20 intermediate revisions by one other user not shown)
Line 1: Line 1:
<p class="note">'''Note''': This page outlines ideas for the Blog Improvement / Blog Assignment Type project. It's a ''specification under construction''! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Blog improvements|page comments]].''</p>
{{Moved_to_dev_docs}}
 
== Summary ==
 
This project aims to make improvements to the existing blog component and add a blog assignment module.  Blogs can help immensely in keeping a student's work and an instructor's supervision coordinated, especially in self and group-directed projects or long-term assignments.  The blog assignment module will make it easier for instructors to take advantage of the existing blog component. 
 
The improvements to the blog will be a new system of relating course entities to blog posts.  Assignments (and other modules), groups, and courses can all be associated with blog posts, providing a method of filtering a blog at each level and thus avoiding the need to search through a blog for relevant posts from a student enrolled in multiple classes.  These relations also provide a means of access control for group projects and the notion of a group blog.  A group may pertain to several students, and blog posts from each student related to the project can be filtered out of each of their blogs and combined on a single view.  Specific blogging assignments can also be associated with blog posts so the instructor is aware of which posts the student wishes to have considered for evaluation.
 
'''Mentor:''' [http://moodle.org/user/view.php?id=423027&course=5 Mathieu Petit-Clair]
 
'''Student:''' [http://moodle.org/user/view.php?id=27192&course=1 Joey Morwick]
 
== Goals ==
* Provide a means for organizing blogs in terms of which courses and assignments the blog entries are relevant to
* Provide a means for viewing blog entries for students collaborating on group projects
* Provide a means for students to blog about certain modules within a course, or the course itself
* Provide a means for allowing students to set viewing restrictions for given associations and for teachers to require certain viewing restrictions
* Provide an assignment module for submitting blog entries for credit
* Provide backup capabilities for associations and course associated blog entries
 
== Milestones in the Project ==
* ''Develop and finalize complete plans for updating the blog component and for the assignment module - '''May 26''''' '''(complete)'''
* Implement course associations in the blog component including privacy and post combination/filtering support - '''Mid-Late June'''
** update blog edit interface for adding associations to blog posts (insure only enrolled students/teachers can use a course association)
** ''Update Post display page to include associations under tags'' '''(complete)'''
** Update tags block for the front page (including filters for viewing posts with the same association)
** Add new visibility modifiers for posts
* Implement group associations in the blog component - '''Late June'''
** update blog edit interface for adding associations to blog posts
*** insure only group members can use a group association
*** implement both javascript and re-load methods of populating the lists of available associations (see mockup)
** Update post display page
** Update tags block for courses (including filters for viewing posts with the same association)
* Implement mod associations - '''Early July'''
** update blog edit interface for adding associations to blog posts
*** insure only enrolled students/teachers can use a mod association for a particular course
*** ''implement both javascript and re-load methods of populating the lists of available associations (as with group associations)'' '''(complete)'''
** ''Update post display page'' '''(complete)'''
** Update tags block for courses
** Update tags block for courses (including filters for viewing posts with the same association)
* Create the blog assignment module  - '''Mid July'''
** Create new subclass of assignment_base
** Insure students are limited in how they can use associations by the extra constraints teachers can set through the assignment edit page
* Implement backup support for courses with blog entries associated with them or with contained assignments and projects. - '''Early August'''
* Final bug-checking and refactoring - '''Mid-Late August'''
 
== Progress ==
 
Progress can be tracked in-depth on [http://moodle.org/blog/index.php?userid=27192 my blog].  Completed stages are marked out on the list above.  The first item that is not marked out is the current item I am working on.
 
== Interface Mockups ==
[[Image:Blog-edit.png]]
 
The interface for adding associations to a blog entry would appear under the tag portion of the form.  Javascript will populate relevant mod and group entries for selected courses, whereas when javascript is unavailable, a course association must first be set and then other associations can be set. 
 
[[Image:Blog-entry.png]]
 
Associations will appear with icons under the tags portion of a posted blog entry.  Each links to a list of blog entries associated with the course/project/assignment selected just as they are when a tag link is visited.
 
[[Image:edit-assignment.png]]
 
Settings for how many associations may be made for an assignment and the maximum visibility that may be used for an assignment will be present on the edit page of a blog assignment.
 
==Database Tables==
=== blog_association ===
Stores associations between blog posts and other moodle entities.  This table is similar to the "tag_instance" table.  An accompanying 'association' table will not be necessary as the id's in this table point to other existing tables, and the association itself has no substance as tags do. 
 
{| border="1" cellpadding="2" cellspacing="0"
|'''Field'''
|'''Type'''
|'''Default'''
|'''Info'''
 
|-
|'''id'''
|int
|
|autoincrementing
 
|-
|'''contextid'''
|int
|
|The id of the context being associated with the blog post (from table 'context' field 'id')
 
|-
|'''blogid'''
|int
|
|id of the blog post being associated (from table 'post' field 'id')
|}
 
==Security==
Several security issues exist for this project, such as:
* who may read blog entries with particular associations
* who may use particular associations with their blog entires
* who may grant permission to use certain associations
 
When creating a blog assignment, teachers can require the student use certain access restriction levels for the entries they associate with the assignment. 
 
For students, the blog settings panel should include options for visibility of entries associated with any of the courses, groups, or assignments the student has access to.  Two options will be included: the first will be the default visibility, and the second will be the visibility which takes precedence until the due date.  These fields will be populated with only those values allowed by the instructor.  Possible values are:
* Everyone on this site
* Members of the class
* Group Members (for group associated entries)
* Yourself (only the author and teachers)
 
In addition, these values will be added to the "publish to" field for each blog entry, so that visibility can be set on a per-entry basis instead of just an association-wide basis.  As with the association-wide permissions, the available values for the "publish to" field can be constrained by the settings of the teacher for a particular tag.  If javascript is enabled, the list will be re-populated when associations are changed.  Otherwise the page will be refreshed when an association is made.
 
==Contentious Points==
These are what I see as the points where community members may want to see something different from what I've settled on.  My answers to each question follow in bold.
 
* Is the "project" feature desired?  If not, would associating blog entries with groups be desired? - '''The 'Project' feature will not be implemented, and instead associations with groups will be implemented'''
* How extensible should the associations be? 
- '''At the database level, blog posts will be associated with moodle contexts.  Support for assignments will be added first, followed by other course mods, and other contexts as time permits.'''
* Should teachers be able to set permissions for using associations on a per-student basis?
- '''No, because Moodle is role based'''
 
==See also==
 
*[[GSOC/2008]]
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=97753 Blog Improvements - Updated Specification] forum discussion
 
[[Category:Project]]

Latest revision as of 05:34, 15 September 2011

This development related page is now located in the Dev docs.

See the Student projects/Blog improvements page in the Dev docs.