Skip to content

Commit 40d6f35

Browse files
committed
docs: add login and user mode docs
1 parent cff9f83 commit 40d6f35

File tree

4 files changed

+89
-0
lines changed

4 files changed

+89
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# User Authentication
2+
3+
Since Graasp Desktop v.0.15.4, a user authentication is available in order for multiple users to use the application.
4+
5+
![Login Screen](./img/loginScreen.png)
6+
7+
The authentication process is triggered right at the launch of the application. It asks for a username before allowing access to the application. Each new username will create a corresponding user account on the fly. If a username already exists in the database, the user will sign in with the corresponding account and be able to access previously stored data.
8+
9+
One can use the application anonymously without restriction, but any saved data will not be retrievable after the user closes the
10+
session.
11+
12+
In order to automatically authenticate whenever the application is launched, the
13+
current user session is stored in a dedicated part of the local storage and is used to sign
14+
in. When the user signs out, the cached session is cleared and the application redirects
15+
to the login screen.
16+
17+
## Alternative solution: Space-level Authentication (online)
18+
19+
Graasp offers a practical method for students to access spaces. From a link, before accessing a space, students create personal credentials, resulting in a Light account. This account allows to save data for this student for this space only.
20+
21+
If online data from Light users are required in Graasp Desktop, it is necessary to implement a authentication procedure triggered each time a space is visited.
22+
23+
However, as of today's requirements, Graasp Desktop is used in poorly connected countries. Trying to fetch data online is thus not necessary. Additionally, authenticating at a space-level is rather tedious and tends to be repetitive in a context where the user only consumes and visits spaces. Security should also be handled with high precautions.
24+
25+
The following schema depicts a proposed space-level login. Blue steps run while online, whereas grey steps are performed in an offline environment. If online, the application connects to and fetch the online account user data. If offline, the application skips the online procedure and immediately access the space.
26+
27+
![Space-level Authentication Flowchart](./img/spaceLevelAuthentication.png)
467 KB
Loading
Loading

docs/authentication/userMode.md

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# User Modes
2+
3+
Though different user accounts can be created to access the application and save personal data, spaces are shared among all the users. To handle these spaces (avoid unexpected action on other users), we divide users into different categories/modes/stakeholders, leading to different permissions.
4+
5+
## Stakeholders in Graasp Desktop
6+
7+
### Teachers
8+
9+
Teachers need to manage spaces (as they can online) and their students. Assuming that
10+
spaces are exclusively created and edited on the main online platform, Graasp Desktop
11+
is primarily a common pedagogical course support to provide the spaces to their classes
12+
in an offline context.
13+
Additionally, teachers use Graasp Desktop to gather and browse their students’ data in
14+
order to gain insight of their progression throughout the courses, as well as to
15+
eventually correct their submissions.
16+
17+
### Students
18+
19+
Students use Graasp Desktop to learn in offline environments, either during classes or
20+
remotely at home. They visit spaces created by their teacher, and might also visit other
21+
interesting spaces if they have a stable internet connection. Additionally, students
22+
eventually save resources and leave activity traces while visiting spaces. Such data
23+
results in interesting analytics of their learning sessions, that students can display to
24+
evaluate their learning progression. Finally, students share their resources with their
25+
friends or teachers in order to be evaluated.
26+
27+
### Developers
28+
29+
Even though they are not directly related to the pedagogical purpose of the
30+
application, developers are necessary in order to maintain and improve the
31+
functionalities of the Graasp Desktop application. For instance, they need full access to
32+
the database and to all the application’s features, as well as particular development
33+
tools to implement new features.
34+
35+
### Researchers
36+
37+
Graasp Desktop is an educational support to collect meaningful data from learners,
38+
and researchers can use it to conduct their studies. They require specific applications
39+
to track the users, as well as a mechanism to manage consent from users to have legal
40+
access to their data.
41+
While Developers and Researchers also have their importance in the development of
42+
Graasp Desktop and could have their own modes, as part of this thesis, we only focus
43+
on teacher and student differences in order to develop a teacher mode.
44+
45+
| Action | Student | Teacher |
46+
| :-------------------------: | :------: | :------------------------------: |
47+
| Visit a Space | yes | yes |
48+
| Export a space | yes | yes |
49+
| Save a Space | no | yes |
50+
| Add a Space | no | yes |
51+
| Delete a space | no | yes |
52+
| Sync a space | no | yes |
53+
| Load a space | no | yes |
54+
| Load space's data | no/yes\* | yes |
55+
| Classrooms functionalities | no | yes |
56+
| Displayed data in dashboard | own data | own and other users' shared data |
57+
58+
<center>*Student*'s and *Teacher*'s permissions comparison</center>
59+
60+
## Implementation
61+
62+
Since Graasp Desktop 0.15.4, the _Student_ and _Teacher_ modes are available. By default, a user is a _Student_. To become a _Teacher_, the setting **Student Mode** should be disabled in the settings. _Developer_ and _Research_ are not yet available.

0 commit comments

Comments
 (0)