MCS Moodle Mobile Application

From MCS Wiki
Jump to: navigation, search

Contents

Motivation

Motivation for this project was the personal need and want for a more convenient way to access the MCS Moodle website. The goal was a simple and clean interface designed for mobile devices that made it easier to view assignments and due dates on the go or in class. The current MCS Moodle website is indeed accessible via mobile devices, but it can be clunky with very small links , particularly the log in link, and the need to constantly zoom in and out. This app aimed to tackle those problems and more when viewing the site from a mobile device.


Research

Several avenues of research were explored in the development of this project. The first aspect of research involved gathering information on how to make the application intuitive and simple for users. This was done in several ways, including researching similar existing apps, reading journal articles on interface design, and conducting a survey on CSC 1180 students about their thoughts on what an app like this should be like. The survey with the students, in particular, yielded great feedback and criticisms. Once an acceptable interface prototype was completed, research was focused on looking into how to actually implement this application. First to mind was building from the ground up with Eclipse and the Android Development Kit. This, however, came with a lot of complications. Firstly, I hate Eclipse. It is clunky and bloated software that implodes on itself any time you touch the keyboard. Secondly, and more importantly, developing only for Android will ensure that many students across campus would not even be able to use the software due to the prevalence of the iPhone. With these factors in mind, Sencha Touch was chosen as the framework for which to build my application. Of course, many days and weeks were spent studying this framework in order to develop a functioning app.


Technologies

  • Sencha Touch Framework
  • Sencha Cmd
  • Javascript
  • EXT JS
  • Java Runtime Environment
  • Ruby
  • HTML5
  • CSS3
  • XML
  • PhoneGap
  • Cordova

Sencha Touch is a high-performance HTML5 mobile application framework. Sencha Touch can be used to produce a native-app-like experience inside a browser or in a hybrid shell. Sencha Touch supports Android, iOS, Windows Phone, Microsoft Surface Pro and RT, and BlackBerry devices. This grants the ability to develop a single app and deploy it to all the popular mobile operating systems.

The Sencha framework makes extensive use of HTML5, CSS3, Ruby, Java, and most of all, Javascript and EXT JS. Ext JS is a pure JavaScript application framework for building interactive web applications. EXT JS provides most of the logic and visual components for any application developed with Sencha Touch. It includes an overwhelming amount of built in features as well as a MVC(model-view-controller) architecture for keeping projects organized and readable.

PhoneGap is the software used to convert Sencha Touch Web Apps into native applications on various operating systems. PhoneGap utilizes Cordova to do this. Cordova is an open-source mobile development framework. It allows the use of standard web technologies such as HTML5, CSS3, and JavaScript for cross-platform development. Applications execute within wrappers targeted to each platform, and rely on standards-compliant API bindings to access each device's sensors, data, and network status.

These technologies were used instead of others, such as Eclipse with the ADK, for the ability to deploy the app on multiple platforms. The application developed is technically a Web App, but it looks, feels, and runs exactly like a native application. The Sencha Touch framework provides robust capabilities for mobile development and the surface has merely been scratched with what can be done with this framework.


Challenges

Challenges number many for any project such this, and this project is no different. The first challenge faced, choosing how to develop the app, was a trivial one, but still a challenge nonetheless. Sencha Touch proved to be everything I could have hoped for and was a great alternative to building the app from scratch with Eclipse.

The next challenge was designing an intuitive interface for this application. I struggled with the want to design with my particular tastes in mind rather than those of the end user. This was an issue I wasn't even aware of until I conducted the research survey and was provided feedback and criticisms on my design. This experience solidified the need for appropriate research, such as surveys, in order to design the best product for the end user.

By far the biggest challenge was attempting to sync my app with the MCS Moodle servers. Through all my efforts I was still unable to complete this aspect of the app. Without being able to retrieve information from the servers, the app in its current state does not meet the requirements for core functionality. There are several reasons why I was unable to sync the app with the servers. Firstly is security restrictions. I was not able to gain access to the information I needed directly due to the fact the the information is sensitive student data. There was suspicion that this data would not be provided very early in development. The plan to retrieve the needed information was to attempt to interface with the MCS Moodle website and parse the html for the information needed. This proved to be much more difficult than expected and I am not sure given another entire semester to work on this project that I would be able to get the app running smoothly with this method. Without direct access to this database I was not able to meet the core requirements for my project in the allotted time period.


Future Work

There is much potential for future work with this project for both myself and others. Should the college wish to pursue a Moodle app in the future, the framework is already complete and all that needs to be done is allowing access to the Moodle database. There are also many features I would like to implement within the app for the future given the chance. These features include:

  • Submissions of assignments
  • Ability to view pdf's within the app
  • Notifications of newly assigned assignment and due dates
  • Functionality for professors(assigning grades, posting assignments)

All of these features would require direct access to the Moodle servers and therefore cannot but implemented at the current time.


Links

Sencha Touch

PhoneGap

Finished Product(Username: "cec6s" Password: "1234"

Personal tools