1. Gestion des absences de l’Université d’Angers
Présentation d’UnivAbsences
Par MONJAL Guillaume, LAURENT Corentin, RAFAILLAC Maxime, RAOULT Benoit
1
2. 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
POURQUOI ?
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
3. 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
5. 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
VERSIONING
5
6. Comment se répartir les taches ?
- Création de tâches sur Bitbucket
ISSUES & METHODE AGILE
- Assignation à une personne
- Mémorisation des bugs/erreurs rencontrés
- Conserver un fil conducteur
Méthode AGILE
- Méthode SCRUM
- Réunion quotidienne
6
11. 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
TRIGGER
Justifie les absences APRES l’ajout d’un justificatif
11
12. 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
SCHEDULER
12
13. TABLE MUTANTE
Vérification des justificatifs lors de l’ajout d’une absence cas
PROBLEMES RENCONTRES
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
15. ARCHITECTURE GLOBALE
Serveur de
l’université
ARCHITECTURE
Base de données
ANNUABSENCE
Conteneur web Service web
(Tomcat) IPhone
Ordinateur ou Smartphone
Application native iPhone
15
17. COMMUNICATION AVEC LE SERVEUR
Requête HTTP (GET ou POST) Instruction SQL
Client Réponse (?) Données BDD
Serveur
LE SERVEUR
Mais de quel type est la réponse du serveur?
17
18. LES PAGES JSP
Requête
Client Conteneur Web
LE SERVEUR
PAGE JSP
18
20. JQuery Mobile
Qu’est ce que Jquery mobile?
• Framework javascript
• Basé sur les technologies web les plus performantes
• Jquery
• Ajax
JQUERY MOBILE
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
21. JQuery Mobile
Diapo avec différentes taille d’écran : meme URL avec 2 affichages différents
JQUERY MOBILE
User agent
22. JQuery Mobile… dans les jsp
Scriptlet Java
JSP
HTML (JQM)
JQUERY MOBILE
JavaScript
(Par ordre d’exécution)
23. 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
24. Les plugins
Infobulles (SimpleDialog)
JQUERY MOBILE
Calendrier (datebox)
Graphique (JQPlot)
25. CAS PRATIQUE
« Ajout d’une absence par l’administration »
LE SERVEUR – EXEMPLE
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
26. Perspectives d’évolution
₋ Suppression d’un justificatif
₋ Gestion des droits
₋ Gestion des cours dont l’appel a été effectué
₋ Validation automatique dans le calendrier
LE SERVEUR
₋ Impression des rapports du tableau de bord
₋ Envoi d’e-mail à l’étudiant au-delà d’un certain nombre d’absences
₋ Internationalisation (I18N)
26
27. 4 Application iPhone
xCode, Objective-C, Service web
27
29. Web service IPhone
{
"cours":
[{"nomMatiere":"EI5 AGI Optimisation",
"nomJour":"Lundi",
Requête HTTP (uniquement GET)
"hDebut":"09:30",
avec paramètres
"hFin":"10:50",
"typeCours":"TD",
"nomGroupe":"EI5 AGI-IAIE TD G2", Traitement divers
"isAppelEffectue":"false",
"no_etape":"5EI5",
Réponse au format JSON
IPhone "no_individu":"3390", Service
Web
"no_evenement":"70688",
"no_base":"ISTIA",
IPHONE
"no_annee":"2011",
"no_semaine":"6",
"salle":"E23"}
]}
4 29
30. Fonctionnalités
Etudiant
Liste des absences avec leur état
Liste des justificatifs éventuels
Détails des justificatifs
IPHONE
4 30
31. 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
IPHONE
Liste des 10 étudiants les plus
absents
Ratio des absences justifiées/
non-justifiées/en attentes
4 31
32. Perspectives d’évolution
₋ Authentification CAS ou LDAP (Obligatoire)
₋ Encodage des requêtes et décodage des réponses
₋ Améliorations graphiques (CoverFlow)
IPHONE
4 32
33. 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
CONCLUSION
₋ Authentification (passer par le CAS)
₋ Déploiement
₋ Gestion du temps
33
34. Conclusion
₋ Projet professionnel
₋ Problématique du projet
₋ Adaptation aux remarques
CONCLUSION
₋ Réponse aux besoins des utilisateurs
34