Add a link in iPeer to authorise iPeer with Canvas using oAuth2.
Once user authenticated and authorised, iPeer will retrieve the access token and refresh token, and save these values to the users table.
Provide functionality for the user to import courses from Canvas
When importing, for each course, the user would have the option to import the Canvas course as a new course in iPeer or link to an existing course (using a drop-down)
When a pair of iPeer and Canvas courses are linked, the user can:
Import student list from Canvas into iPeer (one way only)
When importing, the user can choose to either "overwrite" existing class list or "merge": If there are students enrolled in the course in iPeer that are not in Canvas, the first option will remove the users in iPeer that are not in Canvas, but the second option will keep all students.
Synchronise groups between Canvas and iPeer (two-way)
User can choose to sync from iPeer to Canvas or the other way around.
Since the student list between iPeer and Canvas may not be in sync, before the groups synchronisation, iPeer should retrieve the Canvas student list and compare first. Display warning if necessary.