Proposals/Mahara Mobile 2.0
From Mahara Wiki
Mahara Mobile is the mobile app for Android and iOS that allows people to collect their learning evidence offline and then upload into their Mahara files and journal area when internet is available again.
It is not a replacement for Mahara and doesn't allow to manage portfolios. It is a file uploader and journal entry creator that allows doing tasks that can be done offline to prepare learning content.
In September 2019 we are looking into refreshing Mahara Mobile as it is encountering more problems and because iOS is deprecating certain APIs that will not allow us to continue using our Cordova app as it is.
We are going to create a proof-of-concept in React Native around the most important areas:
- Uploading of files
- Generate and re-generate a token to access Mahara
Technical details for the current Cordova app are available.
- 1 Overall requirements of the app
Overall requirements of the app
The requirements for the app have not changed to the Cordova app.
- Offline use: People gather their learning evidence by using normal device functionality, e.g. to take a photo, video, record audio and then tag the file / journal entry, give it a description and a title
- Accessible: Comply with WCAG 2.0 (or better even 2.1)
- Transmit information securely
- Capability to upload content into a specified Mahara instance; the instances can be changed by logging out and logging in with another instance or by being able to add multiple accounts (think Tweetdeck where you can be logged in with different accounts and decide where you want to post something). Right now we do not have account management. People log in to access one instance and log out to access another.
- Default Mahara colour scheme and Mahara Mobile logo.
- Storage: Use device storage for any files
- Connect via various authentication methods
- LDAP / AD
- SAML / other third-party SSO
- Via LMS, e.g. if institution only uses LTI or MNet (currently that is handled by people pasting in a token generated on Mahara itself)
- Add a file
- Create journal entries
- Edit pending files and journal entries
- sync tags, journals, folders from the Mahara instance
- Default settings for folder, tags, journal
- Take photos and use built-in tools for editing etc. and then add it to Mahara Mobile
- Record audio
- Descriptive error messages to give people indication of why something failed. E.g. instead of "Unable to sync" say "Unable to authenticate" when that's the actual issue
Nice to have:
- Log files for troubleshooting
- Error log for troubleshooting (push to Mahara?)
- Add file in bulk
- Bulk delete of pending files
- Get notifications from Mahara; which can be decided on in "Notification settings" in the account settings
- History of uploaded items; the list can be cleared
- Pending upload for when you are on 3G and not wifi
- Sync and manual upload trigger
- Show custom theme based on Mahara theme: Moodle allows having a stylesheet as part of a Moodle theme that is then picked up by the mobile app -> makes it easier to theme as everything is in one place
- QR code in Mahara to easily fill in the token in Mahara Mobile when a token needs to be generated manually
Screen 1: First-time setup
Scenario A: Manual authentication
- There's a splash screen on which you can enter the Mahara URL to which you want to connect.
- With click on "Next", the possible authentication methods are displayed.
- One method is selected and then executed, i.e. for internal the normal username and password fields are displayed whereas for SSO sites you are forwarded to the SSO site itself. Mahara Mobile does not store a username or password. In Mahara Mobile 1.x I think we sent people off to the actual Mahara site to ensure that the password was entered over SSL but we displayed the login form as part of Mahara Mobile.
- . Login is successful.
Scenario B: Automatic setup via QR code
Alternatively / in addition provide QR code on Mahara that will make setting some of that up easier, e.g. generate token in Mahara and show QR code for taking on the settings (token and Mahara URL). That would also get us to get around supporting multiple authentication methods, which can be tricky with SSO.
QR code may be tricky if the token is generated on the mobile device rather than a desktop.
Note for both scenarios: A learner who has established a connection via token should not be logged out of Mahara every time they upload files via Mahara Mobile and also have Mahara open. There is a security measure in place that you can't be logged in to the same instance of Mahara at the same time, but the upload via token should be exempted.
Screen 2: Profile
- A small profile picture and the name of the user are displayed to give learner the certainty that they logged into the correct account
- URL / site name of the connected Mahara site.
- A configure button takes the learner to the settings for the app where default values can be configured or another server connected to:
- Default tag(s)
- Default folder for uploads
- Default journal for new posts
- Change language (nice to have)
- an "Sync" button as the swipe down is not yet known to everyone in order to re-connect to the serve and get all new tags, journals, and available folders.
- Button to log out
Screen 3: Add
- Three main actions as buttons / tabs: Profile, Add, Pending (they could sit at the bottom of the screen if on iOS). The first screen is the "Add" screen with the three items of "Camera", "Library", "Journal entry".
- This is the most used screen. When someone has established the connection to Mahara Mobile, they should be taken to this screen per default when logged in.
- Available actions:
- Add file: Open file library on the device; there will be a difference between devices
- If possible: Take photo / video: Immediately opens device camera
- Record audio: Opens built-in audio recorder
- Add journal entry: Opens journal entry editing fields
Note: Ideally, all files that are created by taking a photo from within Mahara, recording video or audio, are still also available on the device itself instead of being deleted once uploaded to Mahara.
Add file screen
- When a file is added or photo / video / audio taken and you are returned to Mahara Mobile, you can add a title for a file, a description, tags, and in which folder to store the file in Mahara. The previously selected default folder is chosen but can be changed.
- "Save" button to confirm changes / additions and then move the item to the "Pending" screen for upload to Mahara.
Add journal entry screen
- Title field
- Entry field: Larger text area; if possible with formatting options but not mandatory
- Tags field
- If possible: Decision whether to save as draft or not
- "Save" button
Screen 3: Pending
- All items waiting to be uploaded are displayed in a list.
- Clicking an item opens up the details for it (title, description, tags, folder, thumbnail when image).
- "Edit" and "Delete" buttons on each item for these actions. Alternatively, long-press an icon to select it and mark for deletion to support bulk delete.
- When "Upload to Mahara" is clicked,
- remove items from the pending list as they are uploaded successfully.
- show a progress indicator to show that something is happening.
There is other information that would be good to display and make accessible (via menu? links on profile?):
- Privacy statement of the app
- About the app, incl. sentence about relation to Mahara site of an institution
- Contact: Should link through to "Contact us" of Mahara / be sent there or to the selected alternate contact address that can be entered on Mahara rather than a generic app contact so that we don't get all support requests from institutions
Nice to haves
- Only display notifications from the last month
- The notifications that are to be displayed in the mobile app are configured on the Mahara notification settings screen (change to be made there).
- Indicator for the number of new notifications.
- A "View all" button allows to show all available notifications, i.e. also those that had been hidden previously
- Notifications can be swiped off the screen. They aren't deleted, just hidden. The notification item contains the icon for the notifcation type (from Mahara), the subject line, the user and the date (all info to be taken from Mahara)