**** MAQUETOR v0.9.0 - Manuel d'édition des données de maquette **** Les données décrivant le diplôme sont stockées au format JSON et peuvent être modifiées à volonté en respectant la syntaxe. Une maquette est ajoutée en appellant la fonction addMaquette qui prend en paramètre le JSON décrivant la maquette. 1- Généralités sur JSON JSON (Javascript Object Notation) est un format textuel de description de données. Un objet est ici une liste de couples clé/valeur, délimitée par des accolades, les couples étant séparés par des virgules. Exemple : {"nom":"Robert", "age":3} décrit un objet avec pour nom "Robert" et pour age 3. Les clés sont des chaines de caractères délimitées par des guillemets (dans l'exemple, les clés sont "nom" et "age"). Les valeurs peuvent être de 4 types différents : chaine de caractères, nombre (y compris des nombres à virgule comme 3.1415), objet ou tableau. Un tableau est une liste de valeurs délimitée par des crochets, comme par exemple ["toto", "titi", 4, {"nom":"Robert", "age":3}]. Les valeurs dans un tableau peuvent également être de n'importe lequel des 4 types précédents (dans l'exemple, le tableau contient 2 chaines, un nombre et un objet). Dans MAQUETOR, une maquette est un objet avec deux champs : "FORMATION", dont la valeur décrit la structure de la formation et "MODULES", qui est un tableau des modules. 2- Description du diplôme Le champ diplôme a pour valeur un objet avec les champs suivants : "FORMATION": { "NOM": "Licence Informatique 2018", "ETABLISSEMENT": "Université de Trifouillis", "ANNEES": "2018/22", "NB_SEMESTRES": 6, "LMD": "L", "PARCOURS": [ { "ID": "info", "NOM": "parcours informatique", "DESCRIPTION": "Informatique", "ANNEES": [3] }, { "ID": "MIAGE", "NOM": "MIAGE", "DESCRIPTION": "Méthodes Informatiques Appliquées à la Gestion des Entreprises", "ANNEES": [2,3] } ], "BLOCS": [ { "ID": "C1", "NOM": "COMPETENCE 1", "DESCRIPTION": "Elaborer une modélisation numérique d'un problème et de ses données" } ], "RESPONSABLES": ["responsable de licence : tartempion@univ-trifouillis.fr","responsable de L1 : duchmol@univ-trifouillis.fr"], "M3C": ["compensation entre modules d'un même bloc","pas de compensation entre années"], "PRESENTATION": ["Cette formation permet de former des informaticiens généralistes","Spécialités de bac recommandées : Mathématiques et NSI"] } Dans le tableau "PARCOURS", chaque parcours est décrit avec les années où il existe. Si le parcours existe les 3 années d'une licence par exemple, il faut mettre "ANNEES": [1,2,3]. Il peut ne pas exister de parcours dans la formation, et alors on laisse le tableau vide : "PARCOURS": [] Le tableau "BLOCS" décrit chaque regroupement de modules (il peut s'agir de blocs de compétences). Il peut ne pas exister de bloc dans la formation, et alors on laisse le tableau vide. Dans le tableau "M3C", on décrit les modalités générales de contrôle des connaissances et des compétences sous forme de chaines de caractères. 3- Description des MODULES Chaque module est décrit par un objet dans le tableau MODULES. Les modules peuvent être décrits dans n'importe quel ordre. Un objet module contient les champs suivants : { "SEMESTRE": 1, "ID": "UEinfo1.3", "TITRE": "BASES DE PROGRAMMATION", "TYPE": "UE", "STATUT": [{ "MODALITE": "obligatoire", "ECTS": 6, "BLOCS": "C1" }], "OBJECTIFS": ["Savoir écrire un algorithme simple et l'implémenter"], "CONTENU": ["Notion d'algorithme","Variable, type de donnée, expressions","Instructions, conditionnelles, boucles","Tableaux", "Programme, sous-programme, fonction, passage de paramètres"], "PREREQUIS": [], "CM": 12, "TD": 24, "TP": 12, "EFFECTIF": 253, "GROUPES_CM": 1, "GROUPES_TD": 8, "GROUPES_TP": 16, "M3C": { "SESSION_1": "(partiel+examen)/2", "SECONDE_CHANCE": "épreuve de 2h", "SESSION_2": "max(session1,seconde chance)" }, "ENSEIGNANTS": { "RESPONSABLES": ["Machin","Bidule"], "INTERVENANTS": ["Truc","Chose"] } } L'identifiant du module ("ID") doit être unique, mais la syntaxe des référence est libre. Pour une UE annuelle, il faut mettre dans le champ semestre un tableau des semestres (par exemple [1,2] pour une UE sur toute la première année). Une UE qui a lieu plusieurs fois à plusieurs semestres différents doit être décrite par des objets différents, car d'un semestre à l'autre, les effectifs peuvent être différents, ainsi que les nombres de groupes. La valeur du champ TYPE est libre (il faut juste que ce soit une chaine de caractères). Mais les valeurs "SAE" et "STAGE" conduisent à un affichage différent (les SAE ont un trait gras et les stages un trait pointillé). Le champ STATUT indique si le module est "obligatoire" ou "optionnel", son nombre d'ECTS et le bloc dans lequel il apparait (on utilise l'ID du bloc). S'il n'y a pas de bloc, il suffit de ne pas mettre le champ correspondant : "STATUT": [{ "MODALITE": "obligatoire", "ECTS": 6 }]. Si le module apparait dans plusieurs blocs, les champs "ECTS" et "BLOCS" sont alors des tableaux. Par exemple, si le module est optionnel et compte pour 2 ECTS dans le bloc d'identifiant C1 et pour 3 ECTS dans le bloc C2, on écrit "STATUT": [{ "MODALITE": "optionnel", "ECTS": [2,3], "BLOCS": ["C1","C2"] }]. Si le module est à choix, il faut ajouter un champ "CHOIX" qui indique le nombre d'ECTS à choisir dans une liste de modules. Par exemple si le module est obligatoire à choix et qu'il faut choisir 6 ECTS parmi les modules d'identifiant ref03 et ref04, on écrit [{ "MODALITE": "obligatoire", "ECTS": 6, "CHOIX": [6,["ref03","ref04"]] }]. Le module qui porte ce statut doit apparaitre dans la liste des modules à choisir (par exemple si ce statut est celui du module ref03, on doit mettre ref03 dans la liste). Pour la liste de choix, on peut spécifier des groupes de modules. Par exemple, si on doit optionnellement choisir 4 ECTS entre la combinaison "ref7" + "ref8" ou la combinaison "ref9" + "ref10", on met, pour chacun de ces modules (s'ils comptent chacune pour 2 ECTS) : [{ "MODALITE": "optionnel", "ECTS": 2, "CHOIX": [4,[["ref7","ref8"],["ref9","ref10"]]]}]. Si le statut du module est différent d'un parcours à l'autre, que ce soit par modalité, par le nombre d'ECTS ou le bloc, il faut renseigner un statut par parcours (en utilisant les identifiants des parcours). Par exemple "STATUT": [{ "PARCOURS": "info", "MODALITE": "obligatoire", "ECTS": 6 },{ "PARCOURS": "MIAGE", "MODALITE": "optionnel", "ECTS": 5 }]. Le tableau PREREQUIS contient les identifiants des modules requis pour suivre le module décrit dans l'objet (par exemple "PREREQUIS":["ref56","ref_titi"]). Dans les items "MCC" et "ENSEIGNANTS", la saisie est libre. Dans les champs "SESSION_1", "SECONDE_CHANCE" et "SESSION_2", on met une seule chaine de caractères. Dans les champs "RESPONSABLES" et "INTERVENANTS", on met autant de chaines que désiré. On peut ajouter un champ facultatif indiquant à quel point le module coûte dans la formation, en pourcentage entre 0 et 1. Pour un module qui ne coûte rien : "COUT": 0.0. Si le champ COUT n'est pas présent, le module coûte 100%. On peut ajouter un style d'affichage du module, par exemple "STYLE" : "Electro". On peut ajouter des notes qui apparaitront en stabiloté dans la description du module : "NOTES" : ["ce module n'ouvre pas cette année","module de la licence de physique"]