Hi guys. I am new to Moodle development. For a project at university I plan to create an extension of Moodle. My extension would allow students to create their own private learning space on Moodle where they can invite members of a group, for example, and upload resources, chat and work on a project. I would ideally like to include components such as to-do lists and perhaps a chat however I know these are whole other projects by themselves so I will only do what time permits, maybe I can include other plug-ins for this somehow, I know Moodle already has a chat feature. Would you say this is feasible as a project? I have been going through some PHP tutorials and have managed to get a WAMP server with Moodle working. I'm a little unsure about what exactly I am creating and whether it is classified as a plugin or an activity. When I know which I will hopefully be able to start either of these tutorials: https://docs.moodle.org/dev/Activity_modules or https://docs.moodle.org/dev/Tutorial. I just wanted to make sure in advance that what I was doing was feasible and hasn't been done before if possible. If the project itself is trash I would appreciate it if you gave me a pointer on what the best tutorial to follow would be so that I can work through it, learn how to develop for Moodle and gauge what I can do in the time I have left. Thanks for any help.
It does sound like your best bet would be to install and link Mahara to your Moodle site. It probably does most of what you seem to be looking for - especially when combined with Moodle through Single Sign On and other tight integration features so they can be used together. You could then just focus on developing (or finding plugins for) the bits that 'Mahoodle' doesn't do the way you want it to.
The other option is to create a Moodle course for each individual and give them 'teacher' rights over it - enabling them to invite and enrol other users, create their own forums, add their own activities, resources etc.
Yes, it's feasible. There are a few ways to go depending on how much Moodle development you have to show and how much other software you can leverage.
The new module template is a good place to start on "pure" Moodle development and there are a couple that might suit:
A simpler approach could be to leverage an existing social platform and display it's contents in an iframe linked to by a block:
https://github.com/richardjonesnz/moodle-block_superiframe (original work by Justin Hunt).
You could also browse the plugins database here at moodle.org and see if there is some other plugin that you can study or leverage.
I'm sure more experienced developers will have other ideas and sources too.
Moodle can do 99% of what you want to do right out of the box... no coding required. In fact, the Learn.Moodle.net site does it for thousands of students each time they offer the free MOOC (twice a year).
The only part that it does not have is for the students to create their own course. Allowing students to create their own course could go out of control.
What they will do instead is to use the Moodle Request a Course feature where a student submits a request which includes the course a name, short name, summary and reason for wanting this course. The request is then approved by someone with that ability or administrators. The student then receives a notification that their course has been created.
The student will then be able to build and customize the course as they see fit. They will be able to add any type of Moodle activity or resource available to them into their course. They will also have control over enrolment methods.
To enable the Course Request feature, go to Home > Site Administration > Courses > Course request. Here is a video that will show you how to do it:
You may also find the following plugin to be of interest through it is not available for Moodle 3.0+ yet.
Additional relevant information that you may need:
Hope you find some of this information useful.