Un project Staf-18 (promotion EVA 1998/2000).
Début du projet: | 31/ 05/ 1999. |
---|---|
Fin du projet: | 06/ 07/ 1999. |
Estimation du travail: | 34 jours |
Avancement: | 100%. |
Prénom et Nom: | Paraskevi (Vivian) - Synteta |
---|---|
LDAP: | uid=paraskev,ou=staf,o=tecfa.unige.ch |
Email: | synteta8@etu.unige.ch |
URLs: | home - work |
Via a form through a web page of TECFA campus to be able to edit a specific xml file or create a new one according to the reffering DTD.
More specificaly, create an online form through which a STAF student will be able to edit his own xml file for the management of project staf18 by just filling the fields of the form.
Like that, the student doesn't have to bother using specific software and, the professor can be assured (or at least control) that each student has filled in the right way his project's file. So, I would say that it makes things easier and less time-consuming.
In the beginning it sounded really nice, the worst came later :)But | Creation/Loading/Editing |
---|---|
détails: |
Construct an ergonomic HTML form, in a way that it's fields will be able to describe completely an xml file based on the project.dtd (DTD). Facilitate creation/editing on-line of the proj*.xml file. That is, filling the spaces between the xml tags with the data provided through the HTML form, creating a well-formed XML file and also validated according to it's DTD. Ability to visualize an XML file (among the ones created with the same application) by loading it's data on the same form. Like that, it will be possible to edit again the file and make any corrections/addings etc. The names given to the files created will have the format "uid".xml, that is the LDAP-uid that corresponds to the author of each file. |
Auto Critique: | Fianlly, I gave the opportunity to the user to choose his own name (that means that I should check whether a file exists already with the same name, which I don't check :) I have to be honest, no? |
Enseignant:14/ 06/ 1999 |
ok But this is IMHO a second priority (since it can be done quite easily with and XSL servlet |
Etudiant:21/ 6/ 1999 |
Misunderstood Now that I joined the workpackages Creation/Editing/Loading I hope that it's more clear what I mean by visualization. I mean to load the file again to the same form, otherwise of course the XSL servlet will do the work :) |
But | Student authentication |
---|---|
détails: | Based on the student's login name, and being authenticated via LDAP server with the given password, personal data will be filled in automatically and modification of a file will be possible only for the author/owner of the file (the rest will be able only to visualize it through the XSL servlet) and the super user that will be the professor. |
Auto Critique: | I didn't implement this one except from the login through LDAP just for practical reasons... |
Enseignant:14/ 06/ 1999 |
ok Just to make sure: The password is NOT part of the XML data, just the LDAP id. Your php application will simply ask the students to supply a password and ask the LDAP server if it's ok. |
Etudiant:21/ 6/ 1999 |
Ok, got it! Ok, as you can see from my latest staf14 I understood quite well now :) how LDAP works. |
Enseignant:07/ 06/ 1999 |
|
For the first year project staf18 of STAF students at TECFA. It will be reached from a web page through Tecfa Virtual Campus. This, I hope, that will facilitate the manipulation of their project management file.
OK
but concentrate on the editing WP. This is the only really difficult thing :)Ok
Ok, I agree that editing is quite difficult or maybe quite boring :) considering the amount of data that each xml file will have to deal with...Editing project.xml file
A student of TECFA in order to fill in the project.xml file for STAF18 he can go to Tecfa Campus and fill in a form with all the data needed. When he will submit the form immediately it will be created the corresponding xml file.
The fields that refer to his personal data like name, email, etc will be automatically filled in to correspond to his login name for the campus.
Once his file has been created, he will be able to load it again from the same page inside campus and modify it or edit it again. But, only the owner of each file will be able to edit it, the rest students will be able only to load a file and see it's content (probably through the XSL servlet) in order to avoid the deletion of a file by mistake by another student.
Enseignant:07/ 06/ 1999 |
|
Loading project.xml files
Every student will be able to go to a page inside campus and choose from a list of all the proj*.xml files created for staf18. When he chooses a file from the list he will be able to see it's content and get ideas. Later, he can create his own file or modify his existing file.Editing proj*.xml file
The professor of staf18 will be able to go and check the proceeding of all the proj*.xml files and edit his comments to each one. Here, we could add a different view for the professor that could be an overview of all the projects by a specific field etc.Item | Online resources |
---|---|
Précisions: |
Daniel Schneider's resources, existing parsers on the web, PHP similar examples from TECFA server, LDAP server.
|
Auto Critique: | |
Enseignant:/ 06/ 1999 |
|
Item | A PHP code that works |
---|---|
Précisions: | I will try to write a code that works and gives at least the minimum of my expectations. That is, I will create a quite ergonomic form and write the code for creation/editing the xml file. Student authentication seems trivial now I found out how it can be done, so I take it for granted :) But I cannot guarantee that I will create the complete form for all the fields needed because the proj*.xml file is quite huge :) |
Auto Critique: | In the end, I manage to provide almost all the possible fields... ouf! |
Enseignant:/ 06/ 1999 |
|
Problème: open Mod: / 06/ 1999 | HTML form |
---|---|
Précisions: |
I have to decide how am I going to make the form, either everything at the same page (problem: huge form), either split to many pages (problem: user lost inside navigation). But if I decide to make everything at the same page I have an extra problem with fields that might be more than one. For example, if the user wants to put more "GOALS" than one I HAVE to provide extra windows for these fields, which means having many smaller forms. Can you think of a better solution? |
Solution: | |
Auto Critique: | The problem is solved, frames! |
Problème: open Mod: / 06/ 1999 | LDAP server |
Précisions: |
How we can get the personal data for a student through LDAP? For the moment I got only the LDAP dn. |
Solution: | |
Auto Critique: | This is still an open question :) |
Enseignant:/ 06/ 1999 |
|
Enseignant:07/ 06/ 1999 |
|
Enseignant:07/ 06/ 1999 |
|
Problème: open Mod: / 06/ 1999 | Technical |
---|---|
Précisions: | I have still emacs without validation, I am still waiting for the XML books I ordered and I still have the same old computer to work :) |
Solution: | Have to live without :))) and accept it! |
Auto Critique: |
Item | |
---|---|
Précisions: | |
Auto Critique: |
Résultat | The application (Le dispositif) |
---|---|
Précisions: | This application is formed from all of the following:
|
Auto Critique: |
We are talking for a source code of approximately 4000 lines (!!!) 99% error-free (I spent quite some time debugging :) and testing (of course, a professional programmer might have done it better and may be smaller in certain parts, but no one is perfect :))) I used a "homemade" server made by Vlachoudis Vassilis (my husband :) that made my life easier working and testing everything at home before uploading everything to TECFA server for the final debugging, corrections and testing LDAP login... I didn't implement the part to parse the personal data of the members of the group for each project from LDAP server basically for 2 funny reasons: first, I didn't know the names of the variables that LDAP uses for such data and second, I asked Daniel, but I didn't get an exact answer (probably I wasn't clear enough) and I didn't get in trouble asking him again (I was really tired to go on with this and I just let this go :)) So, I don't check whether someone is the owner of a file in order to permit writing on it (thing that makes the authentication useless :))) for the moment... Both of the above are really easy to implement but I don't know in a way I didn't have the courage to finish them also... :) Things that are missing although I would liked to have included also are: a nicer interface (nicer buttons, colours, tables, etc), well-formed messages (to inform the user for every action), reload after submission(automaticaly of every page sumbitted in order to see how it looks like the xml file with new data) and some more that I forget right now :) I don't use anymore the tags PARA and LIST-ITEM because if a student uses my form to edit his xml file I don't think that they make any sense(ok, maybe the items but... :) and I don't include the new tags that were added later on like AUDITS... In conclusion, I under-estimated the difficulty that was ahead (eventhough Daniel warned about :) Without the coaching of Daniel and my husband I would have never have finished it. I worked from morning till night for almost a month, the most time spending to understand how everything works and how I should organize my work... The result is 4000 !!! lines of code (the biggest I ever wrote, and I am very proud about it :) But during this project I lived moments of enormous stress :( that made me realize that I should be more reasonable next time... |
Enseignant:/ 07/ 1999 |
Ambitieux Comme tu le dis toi-même, ton projet était très ambibiteux et t'as découvert quelques limites des formes HTML :). Le code marche bien effectivement (je n'ai pas trouvé d'erreurs). Une stratégie alternative (si t'as quelques semaines) serait d'écrire un parseur DTD (ou XSchéma) qui permettrait d'écrire un outil plus flexible :) |
Evaluation: |
Good work Your program works according to the specifications. Editing a structure like a typical project XML-file is indeed difficult....Note = |
Enseignant:12/ 07/ 1999 |
Les remarques de Sylvère - Projet 5b - Programmation: Outil de type "Tecfa campus" L'analyse de faisabilité, les spécifications, le projet et le rapport sont présents. Le travail effectué correspond aux spécifications préalables. Le projet est assez proche du travail que l'on pensait faire avec une Java Applet. L'utilisation de PHP est toutefois plus efficace s'il s'agit de traiter un DTD spécifique. J'ai un doute quant à la manière dont tu as approché la programmation du code. Un DTD peut être récursif et un projet pourrait par exemple contenir des projets. Placer un menu (frame du haut) pour éditer les différents éléments du projet ne permet pas facilement d'insérer un sous projet dans un projet. Il aurait mieux valu une seule fenêtre avec des boutons pour pouvoir ajouter ou supprimer un élémentÂ… un peu à la manière des formulaires Javascript vus dans les cours précédents. Quoi qu'il en soit c'était un travail courageux pour un projet difficile. |