home projet tutoré documentation HTML d'une base de donnée généalogique contact

Sujet du projet

Nous avons réalisé 3 points :
Les 2 premiers points sont réunis dans une unique interface graphique du fait de leur similitude ; le dernier outil est indépendant.

AVANCEMENT DU PROJET

Voici les différentes étapes pour la réalisation du projet:

.le 21/02/2001 :
- mise au point sur les structures de données, les langages qui vont être utilisés et sur la répartition du projet.

.le 04/03/2001 :
- le langage principale sera JAVA, on utilisera JFlex pour analyser les unités lexicales et les transformer en class java à l'aide d'un logiciel trouvé sur le net.

.le 07/03/2001 :
- chargement par un parseur de la DTD transitionnale que l'on utilisera afin de vérifier l'existence des balises se trouvant dans la page html testée et écritures des méthodes pour la verification lexicale ;
- écriture du fichier SquelJFlex.java qui prend un fichier html et retourne un fichier squelette contenant uniquement les balises.

.le 09/03/2001 :
- analyse du squelette: écriture du fichier StackJFlex.java qui a partir de ce squelette stocke tous les Tag et leurs parametres dans une pile.
- écriture de Tag.java (contient différentes méthodes sur un Tag) et Param.java (contient différentes méthodes sur les paramètres d'une balise constitués d'un attribut et un résultat)

.le 19/03/2001 :
- création d'une interface graphique qui permet d'executer le programme avec divers options.
- écriture de Analyse.java qui charge, grace au parseur, la DTD choisie si on veut une analyse lexicale et fait la vérification syntaxique, c'est à dire qu'elle prend en paramètre la pile de Tag et vérifie qu'à chaque balise ouvrante il y a sa balise fermante, à moins que ce ne soit une balise spéciale, que l'ordonnencement des balises soit correct et corresponde a une structure de squelette minimal. Pour l'analyse lexicale, elle vérifie que chaque tag et chacun de ces parametres soit reconnus par la DTD ; si des parametres sont requis pour une balise, on le signale.

.le 25/03/2001:
- écriture de Download.java qui permet de télécharger une page web dans le répertoire choisi.
- écriture de PageWeb.java qui appelle SquelJFlex.java et StackJFLex.java pour lire un fichier, créer son squelette puis sa pile de Tag : on cache dans le constructeur les détails d'implementation.

.le 4/05/2001 :
- mise en attente du projet pour cause de révision pour les examens du deuxième semestre...

.le 1/06/2001:
- modification de l'interface avec plus de possibilités ( choix de la DTD )
- demarrage du troisieme point du projet : le suivi de projet.

.le 7/06/2001 :
- écriture de SiteWeb.java qui lance l'aspirateur sur un site choisi. En fait, elle va analyser lexicalement et syntaxiquement selon les besoins de l'utilisateur cette page, puis elle va aspirer tous les liens locaux ou exterieurs contenus dans cette page en créant une arborescence dans le répertoire choisi. C'est à dire qu'à la fin, on aura ce même site web avec tous ses liens mais en local.

.le 12/06/2001:
- écriture de LiensAdresses.java, LiensImages.java et LiensDoc.java qui contiennent respectivement la pile avec les liens sur des adresses, les liens sur des images, et les liens sur des documents

.le 14/06/2001:
- écriture de viretrait.java qui crée un fichier à partir du fichier html source en enlevant tous les / apres href= pour le bon fonctionnement de l'aspirateur afin d'obtenir les bons liens lorsqu'on clique en local
- écriture de virehhtp.java qui créé un fichier à partir du fichier html source en enlevant tous les http pour la même raison

. le 16/06/2001:
- debuguage et nombreux tests pour analyser les divers cas où cela ne fonctionne pas

. le 22/06/2001: soutenance :
- les différentes fonctions seront expliquées à l'oral à cette occasion.




ANALYSEUR SYNTAXIQUE ET LEXICAL / ASPIRATEUR
Lancement du projet

Après avoir compilé tous les fichiers java avec javac *.java, il suffit d'exécuter java Fenetre et une interface apparait où l'on demande l'adresse du site à analyser, dans quel repértoire on veut stocker les résultats de l'aspiration, quelle type d'analyse on veut effectuer ; syntaxique uniquement ou syntaxique puis lexicale auquel cas il faut spécifier une des 3 DTDs. Au fur et à mesure de l'exécution des différents étapes, des messages indiquant ce qui se passe sont affichés sur la sortie standard .

Les étapes de l'analyse

top



AIDE A LA CREATION DE DOCUMENT : LE SUIVI DE PROJET
L'idée

La réalisation d'un projet informatique fait souvent intervenir plusieurs personnes et pour permettre un échange facile des différentes versions d'un même projet, il faut être en mesure d'avoir la documentation associée à chaque version et pouvoir produire une page html rendant compte à la fois des informations sur le projet en lui même mais aussi sur chacune des versions.

Réalisation et Fonctionnement

introduction L'outil présent permet à l'utilisateur de saisir des informations sur le projet dans un formulaire, formulaire généré suivant un modèle qu'il peut modifier : cela permet à chacun d'avoir les informations particulières à un projet. Les données sont "rangées" dans 3 sections : les données du projet (image) , des versions (image) et du fichier html résultat (image et exemple de fichier)La mise en page est assez moche il est vrai mais on peut faire beaucoup mieux en editant les 2 fichiers sq et metafichier (cf rubrique suivante) . Cette séparation se retrouve dans les 3 onglets du formulaire : projet version création. Pour la section version, une liste présente les différentes versions du projet ainsi que les outils classiques sauver,supprimer,nouvelle. Dans l'onglet création, on saisie les informations relatives au fichier c'est à dire le titre mais aussi les mots clefs ainsi que la description pour les robots.

Une fois les champs remplis, l'ensemble des informations cad les valeurs mais aussi l'apparence du formulaire est sauvé dans un fichier. C'est ce fichier qui peut ensuite est partagé entre plusieurs utilisateurs grace à la commande "charger" dans l'onglet projet. Ensuite le fichier index.html est crée dans le repertoire courant. L'utilisateur peut éditer le fichier sq qui est en fait le squelette du fichier index.html.

Edition des fichiers metafichier et sq

Le fichier métafichier sert de modèle lors de la création d'un nouveau projet. Son édition permet de rajouter dans chacune des 3 sections les textFields ou textArea ainsi que le code HTML qui sera produit ou le caractère $ spécifie la valeure saisie dans le champs.
Dans le fichier sq, les 3 sections sont indiquées par des commentaire du type "! section 0 fichier ", "! section 1 projet ","! section 2 versions ". Avant "! section 2 versions ", la ligne "$ ...code HTML...." permet d'ajoute "code HTML" entre 2 versions (par exemple, en mettant HR, on aura une règle horizontale entre 2 versions).

Lancement du projet

Compilation des sources : javac *.java
Lancement : java SDP_MVC
La présence des fichiers sq et metafichier est obligatoire (sq pour la creation du fichier html, metafichier pour creer un nouveau projet).

et les bugs ...

Tout d'abord, soit on charge soit on crée mais pas les 2 PENDANT LA MEME EXECUTION, ca plante a un moment ou au autre ... Ensuite il semble que l'édition des versions pose un pb : si on modifie un des champs d'une version et on sauve, 2 versions avec le meme nom cohexistent dans la liste - bug mineur . Sur certaine version de la machine virtuelle, il y aurait un pb de champs (le JTextField serait a remplacer par un TextField mais du coup, l'affichage des 3 panneaux pose probleme).
top