Skip to content

Latest commit

 

History

History
60 lines (42 loc) · 6.96 KB

Dauphine Data.adoc

File metadata and controls

60 lines (42 loc) · 6.96 KB

Dauphine Data

Application de mise à disposition de données de Dauphine

Contexte

L’université Paris-Dauphine crée et met à jour de nombreuses données publiques, qui sont parfois mises à disposition uniquement via son site web, voire parfois non mises à disposition et simplement conservées dans des bases de données.

Le mouvement open data considère que les données bénéficient d’une exposition maximale, dans des formats facilement lisibles par des machines. Entre autres bénéfices, cette approche facilite la réutilisation et l’innovation.

Ce projet a pour but de créer une plate-forme qui servira à la mise à disposition de certaines données publiques de Paris-Dauphine. Il visera à mettre également à disposition certaines données non publiques après authentification. Par exemple, un enseignant a droit d’accès aux adresses e-mail des étudiants qui suivent son cours, mais ces données ne sont pas publiques.

Ce projet sera éventuellement développé en collaboration avec la Direction des Systèmes d’Information (DSI) de Dauphine.

On repartira d’un projet existant.

Contexte de l’application Pole Info

Le département MIDO propose six masters MIAGE : IF, ID, SITN, chacun en formation classique et en formation par apprentissage. Chaque master a ses cours, ses enseignants intervenants, etc. Les responsables de ces masters souhaitent disposer d’un outil informatique pour faciliter leur gestion, par exemple, recruter et affecter les enseignants aux cours, affecter les étudiants aux cours facultatifs en fonction de leurs préférences, des places disponibles et des contraintes horaires, etc.

L’outil actuellement utilisé (PoleInfo3) n’est plus maintenu et ne communique pas avec l’extérieur, gardant donc privées des données qui pourraient être utiles, et ne bénéficiant pas des données centrales de Dauphine (éventuellement mieux mises à jour). Il est demandé, en vue de son remplacement sans discontinuité de service, d’exposer les données de l’outil existant pour permettre la création d’interfaces graphiques compatibles et la réutilisation des données existantes.

Vous repartirez et enrichirez le projet existant Dauphine Pole Info, qui a posé les jalons utiles pour le remplacement de PoleInfo3 (PI3) et propose un modèle de données proche de celui-ci. Il faudra continuer le développement de l’accès aux données compatible entre Pole Info et PI3 ; et développer de plus une passerelle entre Dauphine Data et Pole Info.

Commencer par (pour chaque projet)

  • Build status dans README

  • Renommer packages pour préfixe correct

  • Prendre en compte warnings Eclipse. Résoudre build Travis.

  • Se débarasser de Lombock

Fonctions demandées : DD

  • Gui pour voir les données.

  • Ajout d’une indication d’origine aux entités (indiquant la source des données), source par défaut = source officielle = Dauphine. Quand un user ajoute des données, l’origine est ce user. L’utilisateur doit pouvoir préciser qui a accès aux données qu’il ajoute : au moins lui-même nécessairement, et potentiellement des utilisateurs nommés, ou tout le monde. Il peut aussi modifier les droits d’accès après coup. Quand on demande les entités, par défaut, on montre uniquement les officielles. Un user peut aussi demander les entités d’une origine donnée, ou les entités de toutes les origines. Dans tous les cas, on ne lui montre que ce qu’il a le droit de voir.

  • Modifications temporalisées et non écrasement (utiliser Hibernate Envers). Les droits d’accès cependant sont écrasés.

  • Documenter en détail et clairement le mécanisme d’authentification sur le CAS de Dauphine. Le document, au format Asciidoc, doit être compréhensible par un étudiant ayant les prérequis pour ce cours mais non expert en programmation web. Illustrer avec une application de démo, de préférence de code ouvert, sur GitHub, si permis par la DSI. À effectuer en partenariat avec la DSI.

  • Récupération des données de l’annuaire de Dauphine (en partenariat avec la DSI). (Ou cours, planning, …)

  • Prise en compte des remarques suite à review code (sécurité & qualité) par la DSI.

  • Possibilité d’entrer le menu du CROUS de la semaine

Fonctions demandées : PI

  • Faire tourner PI3 sur vos machines (en local) en vérifiant et complétant les instructions existantes

  • Automatiser déploiement de PI3 à distance avec un Docker (sur le modèle utilisé pour DD)

  • Faire en sorte que PI écrive les données de façon à ce que PI3 arrive bien à les lire, et inversement. Écrire tests pour vérifier.

  • Automatiser déploiement de PI à distance sur la même machine que PI3.

Fonctions demandées : passerelle entre PI et DD

  • Étendre schéma des données DD pour permettre de stocker éventuelles infos supplémentaires utiles pour PI. Commencer par lister les besoins. S’assurer qu’une donnée est soit écrite par PI (celles pas dans schéma de base DD), soit écrite par DD (les autres), mais jamais les deux. (Discipliner les utilisateurs de PI3 pour non écriture des données propres à DD, ou de préférence désactiver dans PHP ou SQL l’écriture sur PI3 des données propres à DD.) À défaut, stocker dans DD les versions PI à côté des versions DD, et PI utilise uniquement les versions PI.

  • PI, sur demande, lit toutes les données propres DD et les écrit dans PI3. Si ceci écrase une donnée de PI3 qui ne correspond pas, erreur et l’écriture n’est pas faite.

  • Lorsque modification depuis PI, PI écrit dans base PI3 et dans la base de DD, en enregistrant ses ajouts (de façon temporalisée) avec pour origine PI.

Authentification

Voici les informations dont je dispose concernant l’authentification.

Dauphine utilise le CAS Apéréo, la partie visible de Passeport. Il y a (ou avait) aussi un système de « proxy tickets ». Mais ce système est peu à peu démantelé par la DSI car développement jugé trop compliqué.

CAS sur intranet Dauphine, accessible uniquement depuis une machine sur domaine dauphine.fr. Renommer “localhost” (dans fichier /etc/hosts ?) en “myservice.dauphine.fr”. Il faut s’adresser au CAS à partir du port 80 ou 443, donc il faut changer la configuration de Glassfish. Connexion au CAS de test : appeler la page https://passeport.qualif.dauphine.fr/cas/login?service=http://myservice.dauphine.fr/open_data/login avec une url de service de la forme http://myservice.dauphine.fr. Le CAS envoie un ticket à l’application (il redirige l’utilisateur vers http://myservice.dauphine.fr/open_data/login?ticket=ST-2788-n1aHBsxSUlQ1V9JuKGYS-passeport.dauphine.fr ?). On peut ensuite demander d’autres informations sur la connexion via "https://passeport.qualif.dauphine.fr/cas/p3/serviceValidate?service=http://myservice.dauphine.fr/open_data/login&ticket="+ ticket + "&format=json".