BuddyPress Courseware

Social LMS

BuddyPress Logo BuddyPress is an open source social network project.
BuddyPress Courseware is a learning management system built to make teaching social again.
Also check out The Courseware Project we've open sourced in Nov 2013.

BuddyPress Courseware now is unmaintained, 2 years after the Google Summer of Code programme in 2010 and 2011 (accepted and mentored by WordPress and ScholarPress mentors).

This guide was written for helping new users get familiar with BuddyPress Courseware LMS. If you are a developer, you will need to wait, a guide for developers is not done yet.

The following list should cover all the features and functionalities of this component.


BuddyPress Courseware can be downloaded and installed manually from official WordPress plugins directory, or using plugin installation utility from WordPress → Plugins → Add New and search for it's name, after what just follow the standard installation procedure.

If you are installing it manually, you need to extract the zip file contents and then upload the resulted directory (should be named buddypress-courseware) into wp-content/plugins/ using your FTP or SFTP client.

Plugins Screen

Once you got it installed, go to WordPress → Plugins and activate the plugin.


Once installed and activated, BuddyPress Courseware offers some configuration options, which are useful if you want to tweak the system's behaviour. These settings are not required, I mean Courseware will work out-of-the-box anyway, but enabling some of them can offer you features like:

Options Screen
  • Globally enable courseware
  • Switch between European and US learning models
  • Collaboration settings
  • Gradebook default grade format
  • Webservices for bibliography fetching and formating
  • Customization options

All these options are well documented and can be accessed by going to WordPress → BuddyPress → Courseware.

Per Group Option

BuddyPress Courseware can be enabled globally or per group. This allows you to turn on and off courseware component for every group.

Roles: Students and Teachers

Courseware uses custom roles to differentiate students from teachers.

While existing users are easily treated as students after Courseware installation, teachers, must be defined. We designed a special moderation tool for that, that allows both: manual roles definition and by sending a request.

An ordinary user can send a request to become a teacher by going to Profile → Edit Profile → Courseware Tab. There, he will find 2 options:

Roles Screen
  1. Student
  2. Apply for Teacher

By selecting 2nd option, this will autmatically send a request containing your username and profile link to the site admin. This will review both, and using the link in the message, will be able to set you a different role.

Site admin, can also visit manually every profile, and edit user's role.

Once you get the Teacher's role, this will allow you managing the groups where you are admin as your own classes. The whole BuddyPress Courseware is built on BuddyPress Groups concept, in fact once you installed it, a BuddyPress Group can be named now a Class of students. All the Courseware features will use per group settings, each group will has its own data, though, some informations like Bibliography are globally shared.


By default Courseware will require both, a user to have teacher role and to be group admin to be able to manage a class/group courseware. To disable this (meaning a teacher will be able to manage courseware immediately he gets the teacher role), check the Allow any teacher to contribute to class Courseware content option available on the Courseware settings under Collaboration settings section.


Dashboard is the homepage for students and teachers when they visit the Courseware Tab on group page. The Dashboard concept is stolen from WordPress.

Student Dashboard Screen

For students it will reflect all the group activity, and some of their progress (the grades they obtained will generate a small chart at the bottom of the page).

Teacher Dashboard Screen

For teachers the dashboard will serve also the latest information about students activity and class content and will add quick links to add new content to the group.


Courses or Course (depends on EU/US Courseware settings), is the main content type, on group creation, adding/updating a course is the first step a teacher has to do. The Course content should reflect the most important informations and details for futher class activity.

Course Screen Edit Course Screen

Courses are integrated with Bibliography, so you won't need to add bibliography notes to it's content, since it can be added later by using Bibliography button.


Assignments should reflect teacher's interest from students/courseware participants. These should contain homework tasks, course exercises, todo's and other notes a teacher want's students to get aware of.

Assignment Screen Assignments List Screen

Assignments are integrated with Bibliography, so you won't need to add bibliography notes to it's content, since it can be added later by using Bibliography button.


Assignments will automatically enable responses for students. Responses get listed below assignment content by using Responses button on an assignment page. A student will find one of the Add a Response or Your Response buttons on assignment page. First if he didn't add a response yet, and the button will bring him to the editor screen. And the second if he already added a response and now he can review his response.

Add Response Screen

Responses are a way of students involvement in courseware processes. By responding to an assignment, student's answer can be used as a possible solution that will result into a grade a teacher can add later.

Responses are a one way functionality. (Currently), a student can add only one response per assignment. He's not allowed to edit or delete it, all he gets is a public permalink to his response. His response now will serve as a proof.

Assignment teacher/author, gets a notification once a student responded. Teachers are not allowed to edit student responses, but they can delete them, by this allowing a student to make a new response to current assignment. Teachers as students can later review anytime the existing responses.


Every assignment gets a gradebook. A gradebook will contain all the group/class users/students and offer controls to add grade, grade format, public and private comment to each one.

Gradebook Screen

Gradebook can also be imported from a CSV file. Such a file must look like the example below for username test:

test,10,numeric,"Private comment text","Public comment text"

To import the gradebook from a file, use the Import from CSV button. Remember, the data from CSV, will not be stored until you click Save grades button.

Every time a student grade is being changed, he will receive a notification with the assignment link. Assignment page will contain his grade information.

Forum integration

Warning: this option requires group forums enabled. To do that, you will need to visit Group page → Admin → Group Settings and check the Enable discussion forum checkbox.

Assignments might require additional information or questions from students, so we added an option to allow teachers and students exchange such informations by using BuddyPress Forums. A teacher will find on assignment page, a button Enable Assignment Forum, that will instantly create a topic with assignment content in group forums. Next time somebody will visit the same page, will be able to get to assignment forum by using Visit Assignment Forum button.


Schedules Screen

Schedules are a way of creating timetables for students, or events like exam/test announcements, class hour changes etc.


Calendar Screen

Calendar is the most dynamic part of the Courseware. The calendar will reflect all the assignment and schedules with their start dates, due dates and end dates. Calendar can be used for day/week/month views. There's also an ICS export option that can integrate calendar contents with your email client or Google Calendar.


Bibliography should help teachers add book/author refferences to courses and assignments. It integrates tightly with both.

Bibliography Screen

There are several types of bibliography you can add manually or by using specific webservices like ISBNdb and WorldCat. Also you can add webpages, as refferences. The last two methods are available on course and assignment page just by clicking Bibliography → Quick Add Book/Webpage buttons, the manual method for bibliography is available only by visiting Courseware Bibliography Tab.

Quick Add Bibliography Screen

Bibliography content is shared globally inside BuddyPress, so any other teacher will be able to use existing/added entry with his courses/assignments. Adding an entry to existing course/assignment allows you to edit it later, this way making it relevant for you content. You can also update a global entry, using the same page Courseware Bibliography Tab.

Bibliography can also be imported by using a BibTeX file. To do that, use the Import Bibliography button and paste your BibTeX content.

Activity streams

BuddyPress Courseware is tightly integrated with group activity, so that the courseware content will generate a specific stream. Later you can subscribe to group's feed to be up to date with all the activities.

Activity Streams Screen

Here's the list of activity streams Courseware creates:

  • New Forum Topics
  • New Courses
  • New Assignments
  • New Schedules
  • New Responses

All should be visible on the group homepage.

Support and Feedback responses

The project development is done on github. There you can create tickets and request features, or read the code. The stable branch will be synced with WordPress Plugins SVN: svn.wp-plugins.org/buddypress-courseware.

Project has a BuddyPress Group at: buddypress.org/community/groups/buddypress-courseware.
Or, you can use WordPress.org Forums.

Fork me on GitHub