Giter Site home page Giter Site logo

interfacewebprojetl2's People

Contributors

w95psp avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

interfacewebprojetl2's Issues

Actualisation des propositions d’attributions par l'algo

On s'est dit, pour l'actualisation des propositions de l'algo, en fait, les données changent seulement lorsqu'il y a une modification des données en entrée.
Donc au lieu de les mettre à jour toutes les x minutes, on pourrait juste faire un appel à votre script lorsqu'un changement est effectué, non ?

Page Administration > Groupes

Page qui liste les groupes

Opérations possible

  • Supprimer un groupe
  • Déplacer une personne d'un groupe à un autre
  • Ajouter une personne à un groupe

Interface en général

  • Largeur fixe ou dynamique ?
    • Etant donné la quantité de données - relativement faible - qui sera affichée, une page à largeur fixe me parait plus pertinente ;
    • Personnellement, en terme de design, d'organisation, je préfère.
  • Responsive design ? (http://fr.wikipedia.org/wiki/Site_web_adaptatif)
    • Les étudiants ont de plus en plus des smartphones ;
    • C'est toujours désagréable les sites non adaptés au périphériques que l'on utilise.
  • Couleurs à utiliser ?
  • Contenu
    • Pour un étudiant, ce qui est intéressant, c'est de : regarder et comparer les différents projets proposés, former un groupe, puis - si il est "leader" de son groupe - formuler des choix.
    • Pour un prof : ajouter un projet, visualiser les groupes intéressés par un projet qu'il propose ainsi que les proposition d'affectation faites par l'algorithme, visualiser les projets en général
    • Pour l'admin : visualiser l'ensemble des groupes, avec leur choix, en étant capable de modifier l'ensemble des groupes, [à compléter]

Choses à faire

Groupe site web

  • Contacter le SIF pour voir comment exploiter l’authentification centralisé de la fac
  • ...
    (à compléter j'imagine)

Comment gérer les données des années successives ?

Un id "promo" ?

Implications

  • Modifier BDD & appels
    Il suffit de mettre des id de promo (genre l'année universitaire courante), et ce, uniquement dans les tables étudiants et groupe. Toutes les autres tables contiennent une référence directe ou non vers un enseignant ou bien un étudiant.
  • Il faut prévoir des ID aussi gros que l'on veut : #20

API

API ?

Une API, Application Programming Interface, soit interface de programmation, c'est une sorte d'ensemble de moyens pour communiquer entre deux entités.

Ici, je pensais entre le serveur et le client.

Bon après, je pensais à une "API", avec des guillemets, c'est à dire juste prévoir tout côté serveur pour : pourvoir lister les projets, en créer un, les modifier, s'identifier, créer un groupe, rejoindre un groupe, ajouter un utilisateur dans un groupe, formuler un choix de projet.

Pourquoi une API ?

Comme ça la partie serveur est client est plus découpée, on pourra faire un truc full ajax par exemple (sans avoir besoin de rafraîchir la page, donc)
http://fr.wikipedia.org/wiki/Ajax_%28informatique%29

Page Administration > Notation

Page proposant de modifier les modalités de notations.

Problématique BDD

Etant donné que les notes des élèves sont conservées au fur et à mesure des années, il faut que les notations soient cohérente.
Donc faudrait un idPromo dans la table notation, non ?

Interface d'administration

Déjà

Il y a deux personnes qui lisent et notent le rapport :

  • L'encadrant du sujet (:-1: Problème : il peut y avoir plusieurs encadrants !)
  • Un enseignant autre, désigné par l'administrateur (Est-ce que cet autre enseignant doit être dans le jury ?)
    Problème : note individuelle (par élève) ou note globale de groupe ? Si ça dépend, lesquelles, comment ? (Il me semble que l'on en avait parlé mais je ne retrouve aucune trace)

Il y a un jury présentation à l'oral, qui noterons suivant divers critères le travail des élèves indépendamment.

Pour les critères, ils sont modifiable lorsque aucun projet n'est affecté.

Todo

  • Si l'administrateur veut assigner les deux profs qui notent le rapport, il peut aller dans l'onglet groupes de la page d'administration, ou aller sur la page de projet concerné, en mode édition
  • Si l'administrateur veut assigner le jury, il peut se rendre onglet groupes / page projet mode edition
  • Réaliser l'interface de modification de critères de notations

Page détails projets

Choses à faire :

  • Harmoniser le style des boutons
  • Style des boutons : rouge (class=red) & vert(class=green) (annuler / valider)
  • Drag and drop document projet ?
  • Edition des langages d'un projets : aide à l'édition du champ, genre http://mbenford.github.io/ngTagsInput/demos
  • Ajouter des icônes ?
  • Changer la police du textarea ?
  • Modifier l'attribut action de la balise form : ça redirige vers une page qui n'existe pas, faut rediriger vers quelque chose du genre join($urlParams[0], "/")+"/change" ou quelque chose comme ça, et faire un routage dans details-projects.php

Pages

Définir :

  • Nombre de pages
  • Quelles pages pour quels types d'utilisateurs (= visiteur, administrateur, étudiant, encadrants...) ?
  • Pour chaque pages, quelles données sont nécessaires ?

Organisation du menu

Un seul niveau ?
On différencie le menu en x version(s), soit x le nombre de types d'utilisateurs différents ?

  • Établir explicitement ces x menus

Faire import CSV

SI un user se connecte et n'est pas dans la base, alors mail admin

Choix du menu

  • Horizontal ou vertical ?
  • Couleurs
    • background du menu en général
    • background de la page courante
    • background des pages non courantes
    • background lorsqu'une page non courante est survolée
  • Autres éléments graphiques (ombres, bordures, transitions, border-raduis...)
  • Icônes ?

Page Administration > Promos

Page qui liste les promos

Opérations possible

  • Consulter la liste des promos
  • Consulter, pour chaque promo, une vue statique résumée
  • Ajouter une promo

Classes d'utilisateurs

Il faut définir les différents types d'utilisateurs pouvant accéder au site. A priori :

  • Etudiants
  • Encadrants
  • Administrateur(s) (configurable, liste d’encadrant(s))
  • Autre ?

AngularJS

Pour la partie client, est-ce que utiliser ça vous dérange d'utiliser AngularJS ?

En gros, ça permet de relier le contenu des variables existant côté client (sur le navigateur donc), avec le rendu HTML directement.

Exemple :

Soient les variables :

var listeDesCouleurs = ["bleu", "rouge", "vert", "jaune", "je hais toutes les couleurs"];
var favoriteColor = "bleu";

Et soit ce code HTML :

Clique donc sur une couleur :
<ul>
    <li ng-repeat="color in listeDesCouleurs">
        <button ng-click="$parent.favoriteColor = color;">{{color}}</button>
    </li>
</ul>Ta couleur préférée est : <b>{{favoriteColor}}</b>

ça donne : https://jsfiddle.net/vrvunk96/3/

Donc c'est vraiment super pratique pour faire des choses dynamique :-)

Page Administration > Encadrants

Page des encadrants

Opérations possible

  • Lister les encadrants
  • Modifier/ajouter des informations

Pas d'ajout : les encadrants [devraient] sont automatiquement répertorié lors de leur première connexion.

Par rapport au algos

J'ai plusieurs remarques :

Globalement

Par rapport aux demandes pour la base de donnée :

  • Ajouter un attribut tailleGroupe dans la table groupe. (Correspondant au nb d’etudiant dans le groupe (2, 3 ou 4)). : il va falloir mettre à jour ce champ à chaque changements dans la base groupe, et surtout, on peut l'obtenir très rapidement, avec un truc du genre :
SELECT idG, count(*) as numberOfStudents FROM Groupe as grp
LEFT JOIN `Etudiant` as Etu
    ON Etu.idGrEtu=grp.idG
  • Ajouter un champ nbEtudAffecte : même chose, on peut le calculer
  • EstBloque : si, comme on en avait discuté, on mets un champ idGroupeDefinitif (null lorsque non affecté, >0 sinon) dans la table Projet, alors, soit $id l'id d'un projet, savoir si il a été affecté à un groupe revient à faire un petite requête du genre SELECT (idGroupeDefinitif IS NULL) as disponible FROM Groupe WHERE id=$id.

Par rapport à l'affectation à proprement parler

En fait, actuellement, le process c'est le suivant :

  • On prend toutes les candidatures, avec leur détails
  • On vérifie si les candidatures sont éligible
  • Si c'est le cas, on les affecte dans l'ordre dans lequel la base les sort

Mais du coup, l'ordre des choix n'est pas du tout pris en compte ?
De ce fait, il n'y a pas d'optimisation en terme de choix de l'étudiant et de "contentement", non ?

Sinon

  • /*on caulcul un delai pour que le groupe ne puisse jamais etre choisit ( c'est sale mais ça marche)*/ : moui effectivement, je ne peut qu'être d'accord au sujet du fait que ce soit sale xD pourquoi ne pas juste supprimer l'entrée ?
  • Aussi, si un prof peut invalider une candidature, ça provoque pas mal de problèmes, puisque les étudiants vont devoir reformuler leur 6 choix, et étant donné que le moment d'insertion semble être décisif dans votre algorithme d'affectation, ça met directement le groupe hors jeu !

Pour choixVoeux

Nous avons déjà implémenté cette partie : https://github.com/W95Psp/InterfaceWebProjetL2/blob/master/Interface/Sources/ajax.php#l11



Faudrait effectivement se voir, rien que pour se mettre d'accord niveau base de donnée parce qu'on utilise pas toujours les même dénomination, ni les même table ^^

Désolé pour l'issue un peu longue et chiante hein

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.