Gestion des absences de l Université d Angers Présentation d UnivAbsences Par MONJAL Guillaume, LAURENT Corentin, RAFAILLAC Maxime, RAOULT Benoit 1
POURQUOI? Pourquoi ce sujet? Sans ce projet Gestion des absences par tableur Emargement sur papier Saisie des absences manuellement par l administration Avec les applications UnivAbsences Application accessible depuis tout support* Gestion de l historique Pour l étudiant, historique de ses absences Simplification de l appel Gain de temps pour le personnel administratif *possédant un accès internet 2
UnivAbsences plan Gestion de projet Base de données Application web JQuery 4 Application IPhone 1000 heures, 10000 lignes d application web, 3500 lignes d application IPhone 3
Gestion de projet Versionning, Issues, Méthode AGILE 4
VERSIONING Comment tous travailler sur le même repository? - Utilisation des commandes Mercurial - Repository hébergé sur Bitbucket - Travaille sur le même projet - Gain de temps 5
ISSUES & METHODE AGILE Comment se répartir les taches? - Création de tâches sur Bitbucket - Assignation à une personne - Mémorisation des bugs/erreurs rencontrés - Conserver un fil conducteur Méthode AGILE - Méthode SCRUM - Réunion quotidienne 6
REPARTITION Répartition des taches Calculé en fonction du temps passé 7
Base de données Tables, Trigger, Scheduler, Problèmes rencontrés 8
TABLES TABLES ANNUABSENCE 9
TABLES TYPES D ABSENCE - 4 types d absence PRESENCE_JUSTIFICATIF IS_JUSTIFIE EN_ATTENTE Description 0 0 1 En attente de justification 0 0 0 Injustifié 1 0 0 Injustifié avec justificatif non valide 1 1 0 Justifiée JUSTIFICATION Justificatif valide Justificatif valide Justificatif valide Absence Justificatif valide temps Justificatif invalide Justificatif invalide 10
TRIGGER TRIGGER ou DECLENCHEUR Exécute un script après un évènement (Insertion, Modification, Suppression) sur une table Permet l auto-ajout des tables d historisation Conserve l ancienne et la nouvelle valeur après modification Justifie les absences APRES l ajout d un justificatif 11
SCHEDULER SCHEDULER ou PLANIFICATEUR Exécute un script planifié Université d Angers Gérée en batch via le planificateur Unix Permet le passage des absences de en attentes à injustifiées Répondre au cahier des charges du livret de l étudiant 12
PROBLEMES RENCONTRES TABLE MUTANTE Vérification des justificatifs lors de l ajout d une absence cas d une absence déjà justifiée Trigger impossible L application requête pour vérifier si un justificatif est déjà présent avant l ajout d une absence 13
Application web Jquery Mobile Requêtes Oracle, JSON, JSP, Servlet 14
ARCHITECTURE ARCHITECTURE GLOBALE Serveur de l université Base de données ANNUABSENCE Conteneur web (Tomcat) Service web IPhone Ordinateur ou Smartphone Application native iphone 15
LE SERVEUR LES CARACTERISTIQUES DU SERVEUR 16
LE SERVEUR COMMUNICATION AVEC LE SERVEUR Requête HTTP (GET ou POST) Instruction SQL Client Réponse (?) Serveur Données BDD Mais de quel type est la réponse du serveur? 17
LE SERVEUR LES PAGES JSP Requête Client Conteneur Web PAGE JSP 18
LE SERVEUR Java Server Pages HTML Java JavaScript JSP 19
JQUERY MOBILE JQuery Mobile Qu est ce que Jquery mobile? Framework javascript Basé sur les technologies web les plus performantes Jquery Ajax Pourquoi l avoir choisi? CSS généré par JQM Auto-redimensionnement Challenge Framework très récent (première release stable: 16/11/11) Surtout utilisé avec du PHP comme langage serveur
JQUERY MOBILE JQuery Mobile Diapo avec différentes taille d écran : meme URL avec 2 affichages différents User agent
JQUERY MOBILE JQuery Mobile dans les jsp Scriptlet Java JSP HTML (JQM) JavaScript (Par ordre d exécution)
JQUERY MOBILE JQuery Mobile et AJAX - Ajout d absences - Visualisation absence déjà justifiée - Auto-complétion - Navigation entre les pages Pas de validation, dynamique, sans rechargement intégrale de page
JQUERY MOBILE Les plugins Calendrier (datebox) Infobulles (SimpleDialog) Graphique (JQPlot)
LE SERVEUR EXEMPLE CAS PRATIQUE «Ajout d une absence par l administration» Liste des promotions Recherche élève par auto-complétion Choix de la date Génération automatique de l emploi du temps de l étudiant 25
LE SERVEUR Perspectives d évolution Suppression d un justificatif Gestion des droits Gestion des cours dont l appel a été effectué Validation automatique dans le calendrier Impression des rapports du tableau de bord Envoi d e-mail à l étudiant au-delà d un certain nombre d absences Internationalisation (I18N) 26
4 Application iphone xcode, Objective-C, Service web 27
IPHONE Développement ios, comment ca marche? SDK ios xcode (MAC) 4 Langage Simulateur 28
IPHONE Web service IPhone IPhone { "cours": [{"nommatiere":"ei5 AGI Optimisation", "nomjour":"lundi", Requête HTTP (uniquement GET) avec paramètres ]} "hdebut":"09:30", "hfin":"10:50", "typecours":"td", "nomgroupe":"ei5 AGI-IAIE TD G2", "isappeleffectue":"false", "no_etape":"5ei5", Réponse au format JSON "no_individu":"3390", "no_evenement":"70688", "no_base":"istia", "no_annee":"2011", "no_semaine":"6", "salle":"e23"} Web Service Traitement divers 4 29
IPHONE Fonctionnalités Etudiant Liste des absences avec leur état Liste des justificatifs éventuels Détails des justificatifs 4 30
IPHONE Fonctionnalités Professeur Effectuer l appel Liste des cours de la journée Liste des étudiants participant au cours Visualiser différentes statistiques Liste des matières enseignées Liste des 10 étudiants les plus absents Ratio des absences justifiées/ non-justifiées/en attentes 4 31
IPHONE Perspectives d évolution Authentification CAS ou LDAP (Obligatoire) Encodage des requêtes et décodage des réponses Améliorations graphiques (CoverFlow) 4 32
CONCLUSION Difficultés rencontrées Adaptation à JQuery Mobile (JavaScript, syntaxe, etc.) Base de données de l Université d Angers Gestion des performances de l application Développement Iphone Authentification (passer par le CAS) Déploiement Gestion du temps 33
CONCLUSION Conclusion Projet professionnel Problématique du projet Adaptation aux remarques Réponse aux besoins des utilisateurs 34
Démonstration Intérêt de l application 35
? Questions Merci de votre attention http://frontal.univ-angers.fr/absence 36