Based on feedback from mentors of previous GSOC projects, this year we'd really like our student projects to be popular with the Moodle community, rather than just offering projects which have a mentor. (We'll be working out who can mentor which project later on. If you're willing to help mentor or co-mentor a GSOC project, please let me know.)
Thus, if you have any ideas for new features that would be suitable as GSOC projects, please see Development:New feature ideas for information on what to do.
Hopefully, with everyone's help, we'll be able to come up with lots of interesting project ideas, which will encourage good students to apply to Moodle!
PS For further details of GSOC 2009, see the Google Summer of Code™ 2009 Frequently Asked Questions.
For all its flaws... having an explicit mentor means that the mentor has made sure that the feature is achievable (not too complex, reasonable workload, reasonably spec'd, simple dependencies), and not too easy.
It also means that you have a mentor!
Following the link you posted, it's a wild mix. Some things are good GSoC projects, but there's plenty of of trivial stuff, things that people request but may not be good idea, and some very hard tasks. If we don't do a bit of preselection, we may end up spending a lot of time saying "actually, that may be popular but it isn't a good gsoc project".
Edit: What I mean to say is - neither mentor nor votes are good enough as the sole metric. Maybe we need a combination of factors. Some prioritization strategy that mixes both mentors and votes? Maybe add some third variable? log(rand()) ? : End edit.
Anyway -- I throw my hat into the ring, and will be available to mentor one or two projects, and I will be specially keen on projects that have a positive impact on K-12 usage, plus the general areas that I've worked on in the past... (webdav, performance, email->forums gateway...)
I have a couple of ideas for the K-12 stuff... where should I put those projects?
Martín, you're right that neither mentor nor votes are enough to determine good student projects - we need a strategy which combines the different factors. Perhaps people willing to mentor projects can choose issues from the list of most voted-for new features that interest them, and which they know are achievable?
Thanks for offering to mentor one or two projects. How about posting about your ideas in the Moodle in K-12 Schools forum?
- what I need need and need is the "conditional branching" in the questionnaire (see: http://moodle.org/mod/forum/discuss.php?d=90901)
- what I don't need but I spend a lot of time every time I face the problem is the "bulk upload of pictures" for a gallery styled database. See: MDL-14019
- what I would like to see, because I believe a VLE is not only "L" but also "E" is MDL-10285
In my personal opinion what should be faced deeply is the data collection as general issue. Sometimes I asked for related issues as in:
- Quite bigger than these and with hight impact for students is what I asked in: MDL-9738 I tried to search the web for this, but I didn't find any good always working solution. This last one by itself is enough to be already a very big project.
I tried it is not easy at all. You have to read css, to understand them and to create the PDF following the layout described by them!! It is really difficult. See, for instance, http://www.digitaljunkies.ca/dompdf/. He is not updated since last July 2007!!!
If you like my ideas, thanks. Vote for them in the tracker if you still didn't do this.
Few ideas from me-
1. Any online environment require a strong backoffice system. The backoffice user information system should provide more support to admin. A strong database support for report generation. Like, after a course is over, the same is reset for another schedule. Now, if the admin wants to keep record of the details of all users (including student progress/creator/teacher) associated with the course, then he must have a previlage to keep track of them. This in turn would help admin/teacher to generate different types of reports as n when required by him of a particular course for adminstrative purposes.
2.The content posted in 'lesson' or any other activities can have read only(optional) previlage to protect it. The content index buttons created during the design does not place itself in order. It should be made more user friendly.
3.wiki needs to be made more user friendly and easy for collaborative work so that both novice and expert computer users can use it easily.
4.User must have previlage to generate his own questionnaire for survey.
5.Blog should facilitate acess to the individual user postings, to any site vistors as is available in any community portals.
I think it would be an extension of mentees logical, but for supervisors and his supervisors and so on.
Then a chief could see the activity of his employees, and his chief (chief's chief, one step above), could see all chiefs and all his employees' activity.
Grouping is not applicable for this case, because it has only one level, and I think the porpouse of groups and groupings is other.
It would be nice for students and teachers allowing to edit the same text from a wiki at the same time , and maybe list the name of the users that are editing instead of block the wiky text.
I would like to see one group work on something similar to a GIFT file that will import Text into a series of Branch Tables. In stead of feed back, place the jump commands for next, this, previous page. I would settle for importing an OOwriter file with 2 levels of outlining with just a continue button.
Another group could work on importing a series of pictures into a series of Branch Tables. This could be similar to ImportPPT.php. Simply insert pictures from a zip file in alpha order. ImportOOImpress using the webpage concept in PPT might be a good starting point.
A more involved importing image project would be to create simple format such as a GIFT format, where the instructor could determine the image name ./lesson1pics/image3 and maybe allow some text. Again KISS is important.
I would not get too involved with the more advanced adpative functions of Lesson with an imported file in any kind of page (branch or question).
There is the relatively new online Google document/spreadsheet tools. Not sure how similar the code will be in the future (remember what happens to PPT html code with every version upgrade) but we might get more bites using that standard than OO.
I don't know how appropriate the following are for projects, but I'll toss them out there anyway...
- The ability for parents to access and grade their child's work (primarily assignment activities) while still following privacy laws and without having to enroll parents in courses. http://moodle.org/mod/forum/discuss.php?d=115981#p510395
- This may seem trivial, but not a day goes by that I don't wish I could do this: Enable teachers to customize the font style/color used for inline commenting, similar to how some email programs display your reply font in a different color. As it is, comments teachers add look identical to student text, making them difficult find or focus on. I change mine blue, but it can be tedious to repeatedly select phrases, wait for text color pop-up, etc.
- An integrated internal email system with a more familiar, user-friendly and flexible interface.
- The ability for admin/teachers to have two 'virtual' accounts/roles they can 'toggle' between (similar to 'switch roles' or 'sign in as') for the differing tasks, and Moodle will recognize that 'role' as being online. With duel roles, capabilities often don't behave according to role and users sometimes have to resort to two separate accounts. http://moodle.org/mod/forum/discuss.php?d=115188#p508900
- Allow more flexibility in bookmarking, or maybe even a 'favorites' (or whatever) setup. Most of the items, courses, resources I repeatedly access can't be bookmarked. I often find myself with numerous windows open - Thank goodness for duel monitor setup!
- More flexibility in the Online Users block, specifically so teachers and students connected by any course can see each other regardless of location. Example: A teacher is in class A; He/she has students in classes B, C and D. Independent of where they navigate to, they remain visible to each other. This would be most useful in self-paced learning environments where instructors of multiple classes wish to be visible and available to students in those classes. Mike Worth actually accomplished this, but with the most recent update, it quit working (on my site). http://moodle.org/mod/forum/discuss.php?d=113381#p501733
- Defining Outcomes along the Categories can help a better definition of a degree. As teacher of a course, you could choose among the outcomes in the degree.
- Improving collaboration among teachers in Courses from the same Category (degree)
More outcome features could include:
- a block showing most/least attained outcomes in a course
- a page showing outcomes not assigned to activities
We are working in vocational training and outcomes are very important in our degrees' definition. Here in Europe, it would also help many faculties to adapt their degrees to Bologna system.
Dreaming, dreaming, it would be really nice to have a table like this at category level:
SSO to a PHP application may be 1/4 to 1/2 of a GSoC project, depending on the other software's authentication system; SSO from a PHP application may be 1/4 of a GSoC project; SSO to and from a PHP application may be 1/2 of a GSoC project. Integrating with subsequent PHP applications should take less time, since the student should be familiar with Moodle Networks after the first one. Integrating with a non-PHP application might be a full to 3/4 of a GSoC project since the student would need to implement the Moodle Networks protocol in another language. (This is based on my experience as both a GSoC participant last year (though with a different mentoring organization), and my experience programming with Moodle Networks. However it is still just a guess.)
SSO is, of course, just one possibility. I'm sure that a creative student could come up with very interesting integration ideas.
This is written like a rant ... unintentionally. No constructive energy at the moment, I guess.
1. What about a request for a protocol for WML-enabled devices/browsers? Moodle hasn't been able to (neatly) organize information in its format for a mobile device yet (that I'm aware of). I know there are several projects out there that work to hit this, but it seems like it would be nice that without any real "extra" work for the administrators of a site, a site would have an option to have a check for the browser protocol and render the page accordingly. There seems to be a growing demand for this.
2. Another thought was a Facebook App that would "plug in" to Moodle, allowing updates on course information (perhaps course information from "recent activity" and assignment/forum updates)... I know there are many potential privacy issues and again, this has been discussed before, but with a clean interface on what should be allowed to be published (both at the site level and course level), I think that one could control what gets sent to them (and how frequently) without any real privacy concern. I don't know about any of you, but it seems that students spend a LOT more time on Facebook than on Moodle and any way that we can help them stay plugged in, the more successful they can be. I have an interest in this and would be willing to help with the application, if it were deemed to be worthy of pursuit.
3. Improvements to the Import feature of Moodle for proprietary systems like Bb and WebCT. I know you all do your best, but it seems like with the evolutionary process, they (other companies) make it more difficult. Perhaps this is chasing a ghost, but having the ability for users to bring their content over more efficiently I would think would allow for an even higher adoption rate. What about a "Wizard" to import things and provide a way to better structure them? Oooo... or better yet....
4. ... a course set up wizard, allowing new instructors the ability to specify their course set up and have Moodle build the shell for them with everything configured to their specifications. It's not bad now, but having a step-by-step walkthrough might help new users get their initial configuration correct right away (we've had a few challenges with these things). If more information is desired, let me know. I don't want to ramble if it's not worth rambling.
I like a lot of the other ideas that have been presented as well so far. It's going to be tough to decide I think!
One very old and heavily voted request of (presumably) appropriate size is to have ability to subsribe on a single thread (discussion) instead of whole forum only (MDL-1626).
Other important medium-size usability things is
- AJAX course editing interface improvment, that can make it really usable - see MDL-13785
- bulk activities editing - see http://docs.moodle.org/en/Development:Linked_activities
I assume that a version of TINYMCE will be the default editor, so it might make sense to provide a similar fix for it, although providing this capability for Moodle's current HTML Editor would also be appreciated.
The demo on webmastersherpa.com is fully workable in it's present format and can currently be used as an intermediary between Word and the html editor in Moodle (grabbing the source code generated and pasting it into the html editor). Images still have to uploaded and added to the Moodle page manually and some minor cleanup is currently required. Wether this can be further refined for such a direct Moodle implementation is not known but having it built-into the Moodle editor would be a great asset.
Would be nice to have along with the above
The option for an extended images or file folder would be cool too, one that you can navigate to from the 'file browser' window when linking files/ inserting images. Maybe at category levels, so when one pic (or file) is used in several courses you don't need to upload/store a separate copy in every course so it gets backed up with the course (or copy/paste the url from the site files).
Otherwise I think Java might be needed (see how screenshots are added in the tracker for example).
in TinyMCE you can control that feature with init code - http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste
If plugin Paste is enabled and button pasteword in toolbar you normally paste text from Word through different popup when you press Paste from Word button.
Automatic [paste_auto_cleanup_on_paste] can be done with
paste_auto_cleanup_on_paste : true,
in init code. This feature is disabled by default.
Like Martin said, Word cleanup is already in HTMLArea (you press the button after pasting the text) - check also settings from Administration > Appearance > HTML editor
I do hope the copy/paste of images can be further explored as this would be very helpful.
an idea would be to start a Virtual Desktop from inside Moodle and to be able to Share the Desktop with course participants. This would guarantee a more comfortable way to share Desktops.
So you need
- A open source virtual machine (Virtualbox) for example (exists already)
- A image of a Virtual Desktop with many educational programs (exists)
- A Java-Application to start the Desktop in the browser (to be programmed or take the one from ulteo if it is opensource)
- A moodle module to integrate the Virtual Desktop in Moodle (to be programmed)
For more advantages of a Virtual Desktop integration look at this post.
If I had asked people what they wanted, they would have said faster horses.
To make this worthwhile it would have to 'just work' client side as making them install things to save them the hassle of installing things seems silly
Im pretty sure they can handle that at google summer of code.
also, use tinymce for the html editor, so it also works in Safari
Some moodle users complain chat module is slow and unstable, I propose to use jabbser server as chat backend, this will release moodle from heavy chat load, possiblly, more students can chat concurrently. What need to do:
1. Setup OpenFire jabber server (or other jabber server you prefered)
2. When create a chat module in moodle, moodle will create a jabber conference room in jabber server, and starts to talk with it.
3. When student logged into chatroom, moodle will create a jabber account on jabber server automatically, then students start to chat in the chat room, or start a private conversation with teacher or other students.
Pros of this solution:
1. Jabber server will process all the chat messages, moodle just process http requests and responses.
2. More advanced features in chat module will be possible.
You need to setup matching accounts, groups and chatrooms and get the accounts enrolled into them. With ejabberd, I have this problem mostly solved. These solutions are bound to be server-specific, because the XMPP proto doesn't define "remote control" protocols.
Most good servers have APIs to control them this way, but it's nonstandard.
Some can lookup against backends (like our own auth/db and enrol/db plugins do) but it doesn't always do what you'd expect...
Good quality jabber integration is... neverending fun...
- Checking the web server configuration (cache header, compression headers, etags, etc.)
This scripts would be multiplatform (done in PHP) and would be integrated in the administration panel in Moodle, so they are easy to use.
In big installations, when you switch a theme, you are making all this users download again the files because the ones cached are no longer used. This might create a bottleneck when making the changes.
The main idea here, which is used by big applications and services out there, is to preload parts of the new theme in the old one so you distribute the load in time. Of course this preloading technique must be used in background and should not affect the user´s interaction with the page. There are several utilities out there, such as YUI Get Utility, that can help to achieve this purpose.
Moodle could have a simple selector in the administration panel to select the next theme so if can handle the way of sending the new files to the current users in background.
Thus the compiled CSS files are both smaller and cached for longer than in a standard install.
We use a variation of this on a site that has over 100 themes available for users to choose from ... each of the themes is compiled when modified and given a unique name. The config.php file updated to point to the compiled version of the CSS. All the CSS files on the site are given a far future expiry using mod_expires. In addition, because all the CSS is pre-processed, weblib was modified to skip styles.php saving a little extra processing time.
While this approach doesn't deal with the pre-loading raised by David, it does reduce server load and improves perceived performance considerably.
I started another thread about this idea to see if there's any interest.
I am hoping to see a new feature that allow the teacher to create a private folder for each student in the course, so that the private/sensitive feedback for each student is not accessible by the other students in the course. Each student would only see his/her folder being displayed on the course's main page.
I can see three useful functions:
- Browsing available extensions in remote repositories e.g. moodle.org or other sites via moodle networking
- Implies some integration with database module
- Upload file or get it from a repository
- extract file and place contents in the /mod or /blocks directory
- Triger the notifications screen upgrade process
- available module updates could be shown at the top of the admin block
- This would make upgrade simpler as one could just start with a fresh copy of the core files and have the installed extensions added automatically according to the records of installed modules in the database.
On sloodle we have a ton of 'to-do's - some of which could be student projects within the timescale. Its not "core" Moodle, but would we be able to suggest ideas for inclusion with the GSoC projects? We have a few people who could mentor.
We've been getting some great feedback on sloodle recently - even though there is a ton of stuff to do - and the opportunity to get a little extra boost for the project would be greatly appreciated.
We've started something that was for our own use (so our staff could see/try a variety of plugins and advise clients) and also for some of our training courses. It is a single site demonstrating plugins, filters, blocks, questions types, etc. It's still very much under construction and has around 60 at the moment, but should have 100 by April. The Database is also a 'basic attempt' to provide management information on these - and could be improved a lot...
I personally feel that any plugin listed should have a working example - but I'm not sure whether this should be the responsibility of the developer, or managed by Moodle - perhaps a specific plugin site. If plugins don't 'work as advertised' I think we have some resposibility to indicate this if they are being listed on Moodle.org.
The mediawiki developers must be doing something right with their layout.
I would love to have a plugin or something to define multiple attributes of tasks, materials and all kinds of stuff
This would be extremly useful for assign tasks individually for example by reading competence.
The easiest way to achieve that maybe tags.
So if have a text of a certain complexity I could add a tag to adress an audience (only for experienced readers) or I could assign different tasks for the same text for different students (like Mike could answer question from level 4-6 while Sandra should answer question from level 3-4).
This would be really helpful.
You could use them for a lot of things btw.
So this would be a nice task for GSOC
I've looked very briefly at the community version of the video portal software ostube.de
Worcester College of Technology showed us their use of the software at the rsc-eastern.ac.uk - vle forum - Norwich City College.
Because video is such a powerful learning resource I've loosely described ways this might be linked with moodle as a possible GSOC project:
ostube really requires Linux, so this is not really a cross platform suggestion, but I think an application like ostube with a degree of integration with moodle, begins to form a more comprehensive open source e-learning solution (minus the MIS/ilp/assessment... side of things).
Whilst you're welcome to submit an GSOC application and propose a project which is your own idea, applications proposing projects from our Projects for new developers list generally stand a better chance because there are core Moodle developers willing to mentor them.
Your post Hi and GSoC Ideas was a good move. The response to it will help us determine whether it would be worthwhile trying to find a mentor for either of your ideas.
Remember that there's nothing to stop you submitting two applications to work with Moodle, one proposing a project which is your own idea, and one proposing a project from our Projects for new developers list.
It should also be possible to use a Moodle site as an OpenID provider.
This task is probably too small to be a full GSoC project, though, so it may need to be combined with something else.