MyJoe - Entry for the UoB ETech Competition 2016/17
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Entry for the University of Birmingham Emerging Technology Competition 2016/17.

About the App

MyJoe collates important information spread across different university services, so that students can keep up to date with what is going on with their course, and allow students to focus on studying rather than administrative tasks. The app has several features, including:

  • Canvas assignments (including an indicator to show if an assignment has been submitted, and showing grades)
  • Showing a customised timetable, from Web Timetables, based upon their programme and chosen modules
  • Campus maps
  • Opening times for some campus locations
  • Links to Library Services' JustAsk chat system, Careers Network appointment booking, and Outlook's directory for looking up contact details
  • Emergency phone numbers to security
  • Settings menu (accessed through the person icon), to logout of Canvas, or change the timetable programme/modules

The app would help new students at the university to become familiar with the web services that are offered, in one convenient app.

Future Improvements

In the future, I'd like to add the following to the app:

  • Support for Library Services, to show your current loans, any fines or overdue books, and reservations that are ready to be collected
  • Improve the speed and efficiency of the app
  • Add on-boarding screens when the app loads, to show users how the app works and guide them through setup
  • Obtain API keys for Canvas OAuth, instead of asking the user to login and then executing some JavaScript to obtain an API key


Security was an issue when making this app, since I didn't want to store any username or passwords on devices.

For Canvas, I ask the user to login as usual, then execute some JavaScript on the page to generate an API key for the user. This API key is stored in the device's Keychain, which is encrypted. The API key can be revoked from the user's account settings on Canvas.

For Web Timetables, I currently ask the user to select a programme, followed by their modules. I would like to automate this process, by obtaining these details from my.bham or Canvas, but I need to work out how to securely do this.

Bugs & Other Issues

I have fixed any bugs that I have experienced while developing this app, but in the unlikely situation that anything goes wrong with the app, either force quitting (double press home button, followed by swiping up on the app), or reinstalling the app, should fix the issue.