Skip to content

Commit

Permalink
[audiences] replace import/export format by human-readable CSV
Browse files Browse the repository at this point in the history
  • Loading branch information
Drumor committed Sep 13, 2022
1 parent 0c52359 commit 300e7ce
Show file tree
Hide file tree
Showing 6 changed files with 236 additions and 91 deletions.
2 changes: 0 additions & 2 deletions doc/dev_doc/internals_doc/groupes_audiences.rst

This file was deleted.

47 changes: 47 additions & 0 deletions doc/dev_doc/internals_doc/groups_audiences.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
Groups & Audiences
==================

Those two structure lets teacher manage the course easily by defining his needs.
By default, a course contains neither audience nor group.
Depending on the needs, it will be recommend to use audience or group. But both can be used together as well.

Audiences
---------

Based on a description, an audience is a subset of students. This subset have no specific size. A list of tutors can be set to see the audience.

This structure is stored as a collection into the database. Audiences are available on frontend side only.

Here is database structure description:

.. code-block:: JSON
{
"_id" : "The id of the audience",
"courseid" : "The id of the course",
"students" : "The list of students based on user_id",
"tutors" : "The list of tutors based on user_id",
"description" "The audience description"
}
Groups
------

Groups are also subset of students based on a description. As this structure can be used for submission,
it's important to notice that groups are frontend structure.
Backend doesn't know group. It's a table on frontend level.

Here is database structure description:

.. code-block:: JSON
{
"_id" : "The id of the group",
"courseid" : "The id of the course",
"students" : "The list of students based on user_id",
"tutors" : "The list of tutors based on user_id",
"description" "The group description"
}
2 changes: 1 addition & 1 deletion doc/developer_documentation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,5 @@ Internals
dev_doc/internals_doc/architectures
dev_doc/internals_doc/submissions
dev_doc/internals_doc/frontend
dev_doc/internals_doc/groupes_audiences
dev_doc/internals_doc/groups_audiences
dev_doc/internals_doc/exercises
40 changes: 16 additions & 24 deletions doc/teacher_doc/course_admin.rst
Original file line number Diff line number Diff line change
Expand Up @@ -135,35 +135,27 @@ The student list is entirely managed by drag-and-drop.
Course structure upload
```````````````````````

You can generate the course audience structure with an external tool and then upload
it on INGInious. This is done with a YAML file, which structure is described below.
The course structure can be uploaded on the audience list view in the course administration.
You can generate the course audience structure and populate it with a csv file upload
on INGInious. The structure of the attented file is described below.
The file can be uploaded on the audience list view in the course administration.

Audiences YAML structure
*************************
CSV file structure
******************

The file doesn't need any header and is populate based on a person per line structure:

::

- description: Audience 1
tutors:
- tutor1
- tutor2
students:
- user1
- user2
- description: Audience 2
tutors:
- tutor1
- tutor2
students:
- user3
- user4
user_id , id_field , user_role , description

A comma ``,`` is used to separate the items while the quote char is ``"``.

- *user_id* is a string that identify the user. Based on the id_field this may take several form. Most common is the username but is not the only one. you may, for example, give email to identify the user.
- *id_field* is a string that corresponds to the type of user_id. It can be values used on user creation (like username, email).
- *user_role* is a string that simply represent the role of the user. it can be ``student`` or ``tutor``
- *description* is a string and corresponds to your audience description. Line with the same description will be merged within the same audience.


- *description* is a string and corresponds to your audience description
- *tutors* is a list of strings representing the usernames of the
assigned audience tutors.
- *students* is a list of strings representing the usernames of the
audience students.

Groups
------
Expand Down

0 comments on commit 300e7ce

Please sign in to comment.