Author: Rawad Ghostin
Creation date: July 2020

Introduction

This report serves as a documentation for using the UpyLaB 2.0 web application.

Access

The web application can be accessed on: https://upylab2.ulb.ac.be .

Contact

UpyLaB Team: UpyLaB - Upylab@ulb.be

Accounts and Authentication

Signup

The user must specify his role (student/professor).
For both students and professors, the user must provide the following (required) information.

After accepting the Terms Of Services and submitting the form, the user is redirected to accounts/email-confirmation-required and instructed to confirm his email address using a link sent to him. The user is not able to login until his email address has been confirmed.
Upon visiting the activation link, the user's account is activated and he is logged in automatically.

For professors, a restriction is in place for authorized email addresses. If your email address is not authorized, you can send a demand via the alert link displayed on the page.

The activation link expires if one of the following conditions are met:

In case an expired activation link is accessed, an error page is displayed, informing the user of the expiration.

Login

After entering his credentials (username/password):

Logout

After logging out, the user is disconnected from his session and redirected to the login page.

Profile overview

The user is able to see information concerning his account. Namely:

Professors have the ability to add a description of themselves.

Password change

The password change procedure requires the user to provide his old password (once) and the new password (twice). On success, the user is redirected to /accounts/password-change/done, with a message notifying him of the success of the operation.

Password reset

The password reset procedure requires the user to provide his email address. A password reset link is sent to that email address (if it exists). The user is asked to choose a new password.

Professor Area

Concepts

Courses

Each professor can create and manage one or multiple courses. A course contains coding exercises for students to complete.

Open/Closed courses

A course can be switched between open/closed on discretion. In the case where an open course is made closed, the students already subscribed to this course remain intact.

Exercises

Each professor can create and manage one or multiple exercises. An exercise is a coding problem for the student to resolve.

Personal repository

The exercises owned by the professor define his personal repository Mon répertoire.

The personal repository page mainly displays:

The professor can preview an exercise by clicking on the eye icon.

Exercise editors

The professor manages an editors team who can edit exercises of his personal repository. The editors team is a group of other registered professors on the application. To add an editor, click on Ajouter un éditeur/importateur, search for the professor by his name and click on Ajouter éditeur.
The editor now appears in the Éditeurs du répertoire pane.
Editors can be removed by clicking on the red button in the Éditeurs du répertoire pane.

The editors can edit the exercise via the following page:

Editors are able to perform the same actions as the owner except:

N.B: When adding and editor/importer, the professor himself does not appear in the search results.

Exercises marketplace

The exercises marketplace is a store from which professors can share their exercises with the community. Symmetrically, professors can browse the marketplace for exercises from other professors and import them in their courses.

To import exercises in a course:

The professor can search for exercises in the marketplace via the search bar. The search is performed using a combination of exercise title, exercise author, keywords.

The eye icon opens a preview of the exercise containing basic information as well as th reference code.

Private/Public exercises

Professors choose which exercises to share in the marketplace.

An exercise can be switched between private/public on discretion. In the case where an public exercise is made private, the courses having already imported that exercise get to keep it (until removed).

Exercise importers

Similarly to the editor's team, a professor manages an importers group. An importer is another registered professor which has been given access to import the professor's private exercises, otherwise only importable by the professor himself. To add an importer, click on Ajouter un éditeur/importateur, search for the professor by his name and click on **Ajouter importateur. The importer now appears in the Importateurs du répertoire pane. Importers can be removed by clicking on the red button in the Importateurs du répertoire pane.

Homepage

The professor is redirected to the homepage after login.

The professor is presented with a list of:

Course creation

The professor enters the course title and clicks on Créer. He is redirected to the course management page.

Course management

On the course management page, the professor can:

Course exercises management

The professor is able to perform the following chapter management actions:

The professor is able to perform the following chapter management actions:

Once the professor is satisfied with the result concerning chapter management actions, he can save his work by clicking Enregistrer les modifications. Otherwise, he is able to reset his work by clicking on Annuler.

By default, each course contains a default chapter named Général which will hold imported exercises until they are filed into other chapters. It can be used to hold unorganized exercises as well.

NB: It is possible that a previously public exercise (for which you are not the author) imported in your course becomes private later on. In that case, the exercise remains usable in the course until unimported. Such exercises are marked with an !.

Course invitations

The professor is able to generate an invitation link to his course. Although the invitation could concern either an open or closed course, it is the only way for a student to register to a closed course.

Course invite generation can be done in the course management page in the Générer une invitation au cours panel.

The professor specifies both these options and clicks on Générer:

The professor can click on the Copier button to copy the generated link to his clipboard.

To use a course invitation, the student visits the link in his browser, logs in if no session cookie exists, and clicks on S'inscrire au cours. If the student is already subscribed to this course, the message Vous êtes déjà inscrit au cours is displayed. If the link is expired, the message L'invitation au cours #course name# est expirée.

Exercise creation

The professor enters the exercise title and clicks on Créer. He is redirected to the course exercise management page.

Exercise management

The professor is able perform the following exercise management actions:

The professor is able to write coding exercises by writing 2 scripts:

Click Enregistrer to save the changes. The output of the execution of the reference code by the test code appears in the Sortie du code de réference pane.

LTI

The application can be integrated in learning management systems that are compatible with the LTI protocol.

Configuring a new LTI access for a course

To configure a new LTI access, the professor types a name and click "" A new entry in the table should appear, containing :

The LTI access from the LMS point of view is configured by providing the generated key and secret. The steps required to perform this configuration is highly dependent on the LMS vendor, thus we recommend you refer to their documentation on this matter.

LTI access revokation

The professor is able to revoke an LTI access for his/her course by clicking on the delete icon in the table. A confirmation action is required for the revokation to be triggered.

Configuring an LTI connection to an exercise in a course

After having configured the LTI access for a course, the professor is able to make LTI connections to exercises inside their course. The LTI launch url that is required for this connection can be obtained by clicking on the LTI icon next to the concerned exercise. The URL will be automatically copied to the clipboard.

The LTI connection to the concerned exercise from the LMS point of view is configured by providing the launch URL. The LMS should be configured to send this required parameters : user_id, roles, lis_person_sourcedid, lis_person_contact_email_primary. The steps required to perform this configuration is highly dependent on the LMS vendor, thus we recommend you refer to their documentation on this matter.

Grading exercises

The LMS can be configured to enable grading for exercises. If this feature has been enabled, our application automatically sends a grade back to the LMS whenever a student submits a solution for an exercise.

Dashboard

Accéder au tableau de bord

Prérequis:

- Être connecté à la plateforme en tant que professeur
- Le professeur doit être l’auteur d’au moins un cours

Procédure:

Structure de la page

La page possède cinq sections:

  1. Analytiques du cours “NOM DU COURS”
  2. Étudiant(s) inscrit(s)
  3. Exercices
  4. Évaluation des étudiants
  5. Rapports planifiés

Analytiques du cours “NOM DU COURS”

Rôle:

Interactions possibles:

Étudiant(s) inscrit(s)

Rôle:

Actions possibles:

- soit de visualiser les analytiques d’un autre étudiant

Exercises

Rôle:

Évaluation des étudiants

Rôle:

Actions possibles:

1) Sélectionner le(s) étudiant(s): a) Soit en sélectionnant au moins une checkbox dans la colonne de gauche b) Soit en utilisant le tool de sélection rapide: il faut télécharger un fichier de type excel qui présente la colonne “Pseudo” 2) Choisir le(s) exercice(s): a) Soit en sélectionnant au moins un exercice à travers les checkbox b) Soit en sélectionnant un rapport planifié (composé par un ensemble d’exercices) 3) Attribuer la pondération: a) Pour chaque exercice, il est possible d’attribuer une pondération allant de 0 à n (où n= nombre d’exercices précédemment selectionnés). Pour cela, la dernière colonne à droite “Pondération” possède un menu de sélection et le total de l’addition des coefficients (automatiquement mis à jour). La pondération de chaque exercice est par défaut est 1. 4) Résultats: a) Affiche 4 tables dont la plus importante: “Table des points” b) Chaque table peut être exportée (en cliquant sur le bouton “Exporter”) en 4 formats (txt, Excel, CSV, PDF ou imprimée.

Rapports planifiés

Rôle:

Actions possibles:

- Insérer les données requises:
- ATTENTION: la date et l’heure doivent obligatoirement être dans le futur par rapport au moment où l’on clique sur le bouton “Enregistrer”
- ATTENTION: Il sélectionner au moins un exercice

Student Area

Homepage

Subscribed courses list

The student is redirected to the homepage after login. The student is presented with a list of his subscribed courses. Each entry of this list contains:

Each student is automatically subscribed to the upylab course upon sign up. He is however free to unsubscribe (and resubscribe) from this course on discretion.

cf. Course search section below

Searching for courses

By default, the search is performed using keywords for the course title. More specific searches can be performed using the Plus d'options option. In that case, the student can specify a combination of course author, course code and course title keywords.

When course author is specified, the search filter results by matching the exact author's firstname, lastname or full name (concatenation of both).

When course code is specified (mnémonique), the search filter results by matching the exact code (format is CAI-XXXX).

The student is able to browse a list of all courses by clicking on the Voir tous les cours option.

Search results

The courses matching the query are displayed in a list along with a result counter.

Each course in the list displays:

The student can click on a given course entry to be redirected to the corresponding course view page.

We note that in all cases, only open courses appear in the search results. Closed courses could eventually be included in the results in case we implement a "request access" feature for closed courses.

Course view

The course view presents the course to the student. Namely, the following components are displayed:

Exercises progression

Exercises are presented next to exhibitive icons representing their state.

ex_idle

ex_fail

ex_success



Untried, failed and passed respectively.

Open and closed courses

The student is always able to access the course view of any open course. On the other hand, the student is only permitted to access a closed course view if he is subscribed to that course.
The subscription to a closed course requires an invitation (cf. Course invitations). Unallowed user are presented with an error message: Ce cours requiert une invitation..

Exercise view

The student completes exercises on the exercise view page. He is presented with a code editor along with the following information:

Submitting a solution

The student writes his code solution in the code editor and clicks on Valider to submit his attempt. The stdout and stderr of his solution are displayed in the Sortie du code side panel. The number of attempts, date/time of last attempt and success state are updates respectively.

N.B: We note that in the current version, the state of a given exercise is reflected in all of the courses in which it is present.

Other

All pages involving potential intellectual material are protected by the CC BY 4.0 License and display the following block:

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.