Author: Rawad Ghostin
Creation date: July 2020
This report serves as a documentation for using the UpyLaB 2.0 web application.
The web application can be accessed on: https://upylab2.ulb.ac.be .
UpyLaB Team: UpyLaB - Upylab@ulb.be
/accounts/signup/
, /accounts/signup/prof
, /accounts/signup/student
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.
/accounts/login/
After entering his credentials (username/password):
sessionid
that allows him to stay authenticated for the duration of 14 days./accounts/logout/
After logging out, the user is disconnected from his session and redirected to the login page.
/accounts/edit-profile/
The user is able to see information concerning his account. Namely:
Professors have the ability to add a description of themselves.
/accounts/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.
/accounts/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.
Each professor can create and manage one or multiple courses. A course contains coding exercises for students to complete.
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.
Each professor can create and manage one or multiple exercises. An exercise is a coding problem for the student to resolve.
The exercises owned by the professor define his personal repository Mon répertoire.
/prof/personal-repo/<prof_id>
The personal repository page mainly displays:
The professor can preview an exercise by clicking on the eye icon.
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:
/prof/exercise/<exercise_id>/edit
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.
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.
/prof/marketplace/portal
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.
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).
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.
/prof/
The professor is redirected to the homepage after login.
The professor is presented with a list of:
/prof/course-create/
The professor enters the course title and clicks on Créer. He is redirected to the course management page.
/prof/course/<course_id>/admin
On the course management page, the professor can:
/prof/course/<course_id>/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 !.
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.
/prof/exercise-create/
The professor enters the exercise title and clicks on Créer. He is redirected to the course exercise management page.
/prof/exercise/<exercise_id>/admin
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.
The application can be integrated in learning management systems that are compatible with the LTI protocol.
/prof/course/<course_id>/admin
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.
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.
/prof/exercise/<exercise_id>/admin
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.
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.
- Être connecté à la plateforme en tant que professeur
- Le professeur doit être l’auteur d’au moins un cours
Dans la page d’accueil, chaque cours possède deux actions, cliquer sur
Soit, dans la page d'Administration du cours (l’autre action), cliquer sur le bouton “Tableau de bord”
La page possède cinq sections:
- soit de visualiser les analytiques d’un autre étudiant
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.
- 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/
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
/student/course-search-results
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.
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.
/student/couse-view/<course_id>
The course view presents the course to the student. Namely, the following components are displayed:
Exercises are presented next to exhibitive icons representing their state.
Untried, failed and passed respectively.
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..
/student/exercise-view/<exercise_id>
The student completes exercises on the exercise view page. He is presented with a code editor along with the following information:
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.