Development of an Android Application for Moodle – Pre-development (1)

As I am approaching the end of my time at King’s College London, I have to write a BSc project. In my case, I decided to write an Android application that interfaces with Moodle and a timetabling solution, to give students a nice client when they forgot to download their slides, take notes and interact with fellow students. As my work might someday be useful to someone, I thought I’d just start writing about it as it goes along. Most of the parts of what will be written here are parts of my report, so please do excuse me if they seem a bit formal. This post is the first of two that outline my considerations before I started developing.

Building on top of an existing project

In today’s globalised and internet-enabled world, people are starting and abandoning projects all the time. By nature, developers are builders and our first instinct is to start from scratch no matter what we do. However, this leads to massive time-wasting, creating the same software over and over again without even taking the time to see what is already out there. Re-inventing the wheel is not productive and should be avoided as much as possible.

As the open-source movement has exploded in the past couple of years, there are many projects available whose authors are more than happy for you to hack around with their existing source code, as long as they are attributed the credit where appropriate. For this reason, I owed it to the credibility of the project to find out if there was an existing basis that I could build my application on top of and my search was fruitful.

As my background research pointed out, at the start of my project there were two Android applications available that properly integrated with Moodle. One of them turned out to be fully open-sourced and its main developer more than happy to help out.

Moodle-for-Android (initial project)

Moodle-for-Android[1] is a project that was started by a group of Monash IT students in collaboration with Yew Cheung International School Puxi Campus and presents very similar features to my initial project specifications

Features

The application is working, although a little buggy and currently integrates the following functionality

Authenticating a user through Moodle

The application provides a way for the user to authenticate to the correct Moodle instance, obtains a token and uses it to authenticate its requests for information at later stages. This authentication method is also referred to as oAuth[2].

Obtaining and displaying the user’s subscribed courses

Once the user is authenticated, he / she has access to a list of courses they are enrolled in through Moodle.

Obtaining the documents related to the user’s courses

The user has access to all of the documents that are uploaded on Moodle, related to the courses they are enrolled in.

Offline storage of documents

The user can decide to download his / her course documents and store them for offline reference. We will be performing a full offline synchronization, meaning that the application checks for updates of documents on the server and re-downloads them when appropriate.

Automatic downloading of documents

The user has a possibility to specify that the application should (or should not) download all of the course documents accessible to it, automatically, for offline usage.

Showing course assignment details and deadlines

The user has access to all of the course assignments that are present on Moodle, related to the courses they are enrolled in. We will only be handling showing the course assignments, meaning the user cannot use any real interaction (like uploading a document).

Providing web-access to forums

Direct access to the web-forums from within the application is not available. However, a list of the existing forums (available to the user on the Moodle platform) is provided, but with web links to them. This enables the user to access these forums on the browser of his / her mobile device (it does mean the user has to re-authenticate him / herself to Moodle within the browser).


[1] https://github.com/M0nk3yofdoom/Moodle-for-Android

[2] http://oauth.net/

One thought on “Development of an Android Application for Moodle – Pre-development (1)

  1. android

    Hi, Neat post. There’s a problem together with your web site in web explorer,
    could check this? IE still is the market leader and a big component of folks
    will miss your fantastic writing due to this problem.

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s