EmSpace development (technical details)

EmSpace was created using the open source social networking engine Elgg as a framework, Elgg is licensed under the terms of the GNU General Public License v2 as published by the Free Software Foundation and the MIT License. The factors determining the suitability of Elgg as the framework for our social network were based on system functionality, development support, the extensible nature of the software and the theming options available. Elgg 1.8.16, Version – 2013051700 was installed on a PHP server using a MySQL database on campus.

The initial setup of the Elgg core installation required disabling many of the features which would allow users to find other council profiles through the network. We required emSpace to look and act like a social media platform but in fact required that users would respond as councils in a walled garden. We wanted student responses as council to be hidden from public view but also hidden from one another as we wanted users to work independently. Features of the core Elgg framework that were deactivated in order to stop users from finding each other in emSpace were: blog, bookmarks, groups, member list, message board, messages, pages and search.

Once the Elgg framework was defined two plugins were installed, Facebook theme 1.4 and Blti 1.2.1. The Facebook theme plugin applied a base level HTML and CSS styling to platform from which we were able to configure the look of emSpace. The Blti plugin is based on the IMS LTI (Learning Tool Interoperability) v1.1 specification and allows for user authentication from the University Learning Management System (LMS) Moodle into Elgg. Users that were allocated to a group in the LMS shared one council account in emSpace, as such an extra MySQL translation table was required in the Elgg database to manage the relationship between each LMS user and council emSpace profile. The Blti plugin ‘start.php’ file was edited so that once the LMS user had been authenticated a database query would check which council profile the LMS user had been assigned. The Moodle LTI activity also passed custom parameters to the Blti plugin with the authentication data in order to account for users that had not previously logged into emSpace and as such were not listed in the translation table.

The plugin ‘LMS PBL Admin’ was developed to manage user allocation and to allow the facilitators to post to each council profile in the guise of a citizen. The ‘LMS User Config’ section of the plugin has three areas of user management:

  1. Assign User to Profile, this section of the plugin could be used to assign an LMS user to login as a council profile.
  2. List all LMS Users, presented the facilitator with the list of LMS users alongside the name of the council profile the user had access to.
  3. Create Dummy Users, created a set of dummy emSpace accounts and allocated them as friends with a specific council profile. It was not possible to have more than one council being friends with a dummy account otherwise each council profile would then be able to see each other through the ‘friends of my friends’ functionality.

The ‘Act as Profile’ section of the plugin was developed building on the Elgg ‘The Wire’ module code. The page presented the facilitator with a multiple-select dropdown box and text input box, the facilitator could then select the council profiles as they would like to post to and enter the text they would like to post. The script would then select the council profile, select the most recent post from that profile, select a random friend and then post the text as a reply to the council as that friend.

The Wire module of Elgg was selected as the primary means of communication in emSpace, it was used by councils to post status updates, facilitators to see a stream of all users’ posts and for dummy users to ask questions of councils. Some changes were made to the Wire code to improve functionality for the purposes of the project. The length of an individual post allowed in a single Wire submission was increased from 140 characters to 1000. The ‘All’ tab, which allowed any user to see all submissions to the Wire, was made available to facilitator accounts only in an attempt to disallow council accounts from seeing each other’s posts.

Some features which were originally planned for the first released were held back as they were not ready and as such have been marked for future development. In emSpace, the ‘Files’ area contains an ‘All’ tab similar to that of ‘The Wire’ which needs to have the same restrictions that disallow councils seeing each other’s uploaded. The ‘LMS PBL Admin’ plugin future development features are for dummy users profile pictures to be generated on account creation and to allow importing users into emSpace by uploading a CSV file created from LMS.