URL:
<http://gna.org/task/?6535>
Summary: Submission of Tableur Etudiant
Project: Gna! Administration
Submitted by: matchek
Submitted on: lundi 16.03.2009 à 17:25
Status: None
Approval Status: None
Should Start On: lundi 16.03.2009 à 00:00
Should be Finished on: jeudi 26.03.2009 à 00:00
Category: Project Approval
Priority: 5 - Normal
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
_______________________________________________________
Details:
A new project has been registered at Gna!
This project account will remain inactive until a site admin approves or
discards the registration.
= Registration Administration =
While this item will be useful to track the registration process, *approving
or discarding the registration must be done using the specific Group
Administration <https://gna.org/siteadmin/groupedit.php?group_id=2929> page*,
accessible only to site administrators, effectively *logged as site
administrators* (superuser):
* Group Administration
<https://gna.org/siteadmin/groupedit.php?group_id=2929>
= Registration Details =
* Name: *Tableur Etudiant*
* System Name: *tableuretudiant*
* Type: Programs
* License: GNU General Public License V3 or later
----
==== Description: ====
Vous allez écrire des outils pour aider un enseignant à calculer et à
diffuser les notes de ses étudiants. Les différents outils devront être
intégrés dans une application.
Les outils à écrire :
* Un outil pour récupérer dans un tableur une liste d'étudiants lue
dans une page HTML.
* Un outil pour envoyer individuellement par email leurs notes à des
étudiants.
Tout autre outil qui pourrait rendre service à l'enseignant sera le bienvenu
mais le point important est tout d'abord de fournir les 2 outils ci-dessus,
avec une application robuste, fiable, bien documentée, extensible et bien
écrite (code qui applique les bons principes étudiés pendant le cours).
Pensez à écrire une application agréable à utiliser, avec une bonne
ergonomie. Si besoin est, fournissez de l'aide en ligne pour faciliter son
utilisation. Un bon conseil : faites tester votre application par une
personne qui n'a pas participé au développement, et sans lui apporter
d'aide pendant le test.
Pour fixer les idées et faciliter la correction, l'application devra
fonctionner avec des fichiers de tableur d'extension ".xsl", compatibles avec
excel dans sa version 97. Open Office et d'autres outils gratuits peuvent lire
et enregistrer sous ce format.
Voici différentes étapes d'un scénario typique d'utilisation de
l'application (les parties "Option" ne sont pas obligatoires mais seront un
petit plus pour l'évaluation du travail) :
1. L'enseignant récupère dans une table Java (JTable) la liste des
étudiants depuis une page HTML locale (sur votre machine) ou distante (sur
un serveur Web distant), par exemple, la page des étudiants de licence 3
informatique ; le format de la page HTML n'est pas imposée mais votre
application devra au moins fonctionner avec cette page test.
Option : l'application permet de récupérer les noms et les prénoms
dans des colonnes séparées s'ils ne sont pas séparés comme dans le
fichier exemple fourni. Par exemple, si un cellule du tableur contient
"Pierre Dupond", votre logiciel mettra "Pierre" dans une cellule de la table
Java et "Dupond" dans la cellule contiguë (à droite ou à gauche, comme
vous voulez). Au besoin l'enseignant corrigera ensuite "à la main" lors de
l'étape 3 cette séparation pour le cas où la colonne "Nom et prénoms"
comporte un nom ou un prénom en plusieurs parties et n'a pas fait une
séparation correcte.
La page HTML contiendra ces informations sous la forme d'un tableau
HTML (<table>); on ne demande pas de récupérer des informations qui sont
contenues sous une autre forme. Le tableau contiendra nécessairement les
noms et prénoms des étudiants. Il pourra ne pas contenir toutes les
informations voulues (par exemple, ne pas contenir l'identifiant ou l'email
des étudiants) ; en ce cas, l'enseignant les ajoutera "à la main" dans
l'étape 3 suivante. Si la page contient plusieurs tableaux HTML l'enseignant
pourra indiquer quel tableau il veut récupérer ; testez avec une page HTML
qui contient plusieurs tableaux et dont le tableau qui contient la liste des
étudiants n'est pas le premier tableau de la page.
Option : l'utilisateur de l'application pourra aussi indiquer les
numéros des colonnes du tableau qui contiennent les informations qu'il veut
récupérer.
Votre programme devra obligatoirement utiliser les expressions
régulières (dans le support de cours sur les entrées-sorties, mais
étudiées bientôt dans le cours du lundi pour vous permettre de travailler
plus tôt sur le projet) pour extraire de la page HTML les tableaux HTML et
leurs différentes parties. Vous ne devez pas utiliser de parser HTML.
2. Lorsque l'enseignant est satisfait de ce qu'il voit dans la table Java,
il lance l'enregistrement dans un fichier au format ".xls".
3. (Cette étape ne doit pas être automatisée par votre projet)
L'enseignant modifie éventuellement "à la main" dans un tableur les
données récupérées à l'étape précédente. Par exemple, il peut ajouter
des colonnes pour faire ses calculs ou en ajouter des noms qui n'étaient pas
dans la liste des étudiants. A la fin de cette étape, la feuille du tableur
contiendra au moins des colonnes pour
* les noms et prénoms des étudiants ;
* les identifiants des étudiants ;
* les notes à transmettre ;
* les emails des étudiants.
4. L'enseignant peut alors importer les données et les visualiser dans
une JTable de l'application (pas nécessairement la même qu'à l'étape 1).
Les lignes et colonnes de la feuille du tableur qui contiennent les
informations utilisées seront déterminées par l'enseignant ou par un moyen
quelconque (à déterminer) par l'application (un plus serait d'avoir un moyen
par défaut mais de permettre aussi à l'enseignant de désigner les colonnes
et les lignes au moment de l'exécution, si la feuille du tableur n'a pas le
format "standard" pour votre application). L'enseignant peut éventuellement
faire des modifications simples des informations contenues dans la JTable.
Vous choisirez quelles modifications seront offertes par votre projet ; il
devra être possible, par exemple, de modifier une note ou de corriger une
faute de frappe dans le nom d'un étudiant, vue au dernier moment. Les autres
types de modifications sont en option.
5. Lorsqu'il est satisfait des informations contenues dans la JTable,
l'enseignant envoie les notes individuellement à chacun des étudiants. Le
contenu de l'email pourra avoir un format prédéfini (pour les envois
rapides) mais aussi un format quelconque écrit par l'enseignant. Ce format
indiquera l'emplacement dans le texte de l'email des différentes
informations (nom de l'étudiant par exemple) sous une forme définie par
l'application, par exemple "#prenom# #nom#, votre note en POO est #note#", Ce
qui enverra par exemple le message suivant à l'étudiant "Pierre Dupond" (et
à tous les autres étudiants, en changeant les données) : "Pierre Dupond,
votre note est 12,5". Pour éviter les envois erronés, l'application pourra
effectuer un "pseudo-envoi" en affichant, d'une manière ou d'une autre, tous
les emails qui seront envoyés lors de l'envoi réel ; si ces pseudo-emails
conviennent à l'enseignant il lance alors l'envoi réel. Option : Il sera
possible de choisir de n'envoyer les notes qu'à certains des étudiants de
la JTable.
Ce projet comporte une partie de recherches personnelles sur des points qui
n'ont pas été vus en cours, par exemple pour envoyer un email ou pour
travailler avec une feuille de tableur. Vous pourrez évidemment utiliser des
API déjà écrites et libre d'utilisation pour écrire et lire une feuille
d'un tableur. N'utilisez pas d'API externe si la fonctionnalité est déjà
incluse dans le JDK ou fournie dans une extension du JDK ; l'envoi d'emails
est fournie par l'API "javamail".
Les informations nécessaires à la configuration pour l'envoi d'emails,
comme le serveur sortant, ne devront pas être écrites en dur dans le code
Java. Elles devront être enregistrées sous la forme d'un fichier de
ressources. Option : elles pourront être modifiables facilement par
l'enseignant lors de l'exécution.
Toutes les API utilisées devront être incluses dans le fichier envoyé au
correcteur (voir le format de l'application à rendre).
==== Other Software Required: ====
java 1.6
_______________________________________________________
Reply to this item at:
<http://gna.org/task/?6535>
_______________________________________________
Message posté via/par Gna!
http://gna.org/
_______________________________________________
Register mailing list
[email protected]
https://mail.gna.org/listinfo/register