Administration design

From GCompris
Revision as of 12:52, 5 July 2014 by Bruno (talk | contribs) (Brainstorm area)
Jump to: navigation, search

High level overview

GCompris contains a lot of activities for children in a large age range. It is used at home and at schools.

Home users can easily follow their children and propose them the most appropriate activities. But using it in classrooms brings a new set of requirements:

  • let the teacher hide inappropriate activities
    • activity filter
    • creating profiles to easily propose an activity set to a new audience
    • activity pre-configurations (like uppercase only)
  • let the teacher track children usage
    • must be as real time as possible to let the teacher help the children asap
    • no real need for long term persistence, teachers probably won't dig in old data to extract relevant informations.

Legacy version

In the legacy version the administration mode is accessible with a second icon launcher. In fact it just runs the same 'gcompris' binary but with the '-a' option.


The idea is to let an administrator configure as much or as little as he wants. For instance, the profiles can be used even if no classes, groups and users are created.

  • Classes / Users
    • Create users
    • Create classes and associate users
  • Groups
    • Create groups within a class
    • Associate users to the group
  • Profiles
    • create profiles
    • associate one or more class / group to a profile
  • Activities
    • enable / disable activities for a given profile
      • one by one
      • by a level filter
    • configure activities for a given profile
  • Logs
    • All success / failure in activities are saved in a log
    • A report contains the date, user, activity, level, sublevel, duration. An optional description of the difficulty encountered was planned but never implemented.
  • Login
    • If users have been created, they can be authenticated when GCompris is started in the normal mode (login pseudo activity). There are 2 modes, one where the children click on the button with his name, one where he must type his name. There is no password.

Brainstorm area

Most important features in order of importance:

  • profiles
  • tracking real time usage

In the old version the sharing of the configuration was done through a shared 'sqlite' database. This is not a good usage for it, it requires an admin to set it up on a shared folder. Does not suit well the mobile use case. Where do we save the configuration:, a teacher server, ?