PrOBATION REport Applicant's portal using java servlet tomcat

Document Sample
PrOBATION REport Applicant's portal using java servlet tomcat Powered By Docstoc
Institute of
Crete, Branch of
Department of

Alex Cuvelier


Cuvelier Alex
DUT Informatique
Université Lille 1
Mr. Patrick Lebègue
Mr. Ioannis Barbounakis
I want to thank fist my local supervisor for having welcome me in his
institute, for his availability and his advices which permit me to advance in
my project.

I also want to thank Mr. Lebègue for his availability and his advices.

I thank Alexandra Kouroutaki for having informed me about the
functioning and the events of the city of Chania and her welcome.

I thank the responsible of the network and the one of the computers
installation of the library for having permitted me working in the best

To finish, I thank all Khaled Boukercha for his help in the programming

   Table of Contents
THAN K S ............................................................................................................3

TAB L E OF CON T E N T S ........................................................................................4

INTR O D U C T I O N .................................................................................................5

        1.1. Apache Tomcat. .........................................................................................6
        1.2. Databases. ...............................................................................................8
        1.3. Regular Expressions...................................................................................13
  P R O J E C T C O N C E P T I O N ............................................................................................................................1 5
        1.4. The Database ...........................................................................................16
   A T T H E B E G I N N I N G O F T H E P R O J E C T , T H E A P P L I C A N T ’S D A T A O F T H E TE I DI D N O T A G R E E T O T H E S T R U C T U R E S T A N D A R D S
  O F A D A T A B A S E . T HA T C O U L D CA U S E P R O B L E M S W H E N O P E R A T I O N S W E R E C O N D U C T E D O N T H I S D A T A B A S E . I T H E R E F O R E

  F U L L Y R E S T R U C T U R E D T H E DA T A B A S E S O T H A T IT C O M P L I E S W I T H T H E S T A N D A R D S .
  ..........................................................................................................................................................1 6
        1.5. Web-Site.................................................................................................27
        1.6. Functions Class. ........................................................................................36
  R E S U L T S ..............................................................................................................................................40
        1.7. Results...................................................................................................40
        1.8. Encountered difficulties................................................................................40
        1.9. Languages difficulties..................................................................................40

CON C L U S I O N ..................................................................................................42

BIB L I O G R A P H Y ...............................................................................................43

WE B SITE S: .....................................................................................................43

   For the DUT of computer’s science that I am preparing at the IUT A of
the University of Lille 1, I am doing my work experiment placement with
the European’s exchange program: ERASMUS.

   I have chosen to go in Crete to discover a culture that I did not knew
and for the Technological Educational Institute of Crete, in the Electronics
Department branch of Chania and his recognition at both national and
international levels, its education and research programmes and its
excellently trained graduates.

When I arrived my tutor, Professor Barbounakis offered me to work on
updating the database managing information on the teaching staff of the
institute and develop a web client for this database.

The existing database had problems and data input should be done
directly in Microsoft Access through properly developed forms.

So I had to restructure the database based on data analysis knowledge
acquired at the IUT. But I had also to develop a web portal acting as client
for the database.

I chose to develop this client interface in Java thanks to Tomcat Servlet

   1.   Presentation of used technologies.

    At this point, I will describe the tools used in developing the project.
First, I would describe Apache Tomcat then databases management
software and finally the regex java API which manages regular

   1. 1. Apache Tomcat.

        1. 1. 1 . Generalities

   Apache Tomcat         is    a   free   software    Servlet   container.   Tomcat
implements     the   Java     Servlets    and   the   Java   Server   Pages   (JSP)
specifications from Sun Microsystems. This software is developed by the
Apache Software Foundation which is an American non-profit corporation.

   My project uses only the Java Servlet functionalities of Apache Tomcat
and I will describe here only these functionalities.

        1. 1. 2. Servlet Container

        A Servlet Container is a kind of web server specialized in the
execution of Servlets. It has the usual functionalities of a web server with
some java extension like the java virtual machine.

One of its main functionalities is to translate the specific URL address into
a request comprehensible by the java Servlet.

      1. 1. 3. Java Servlet definition

      The JAVA SERVLET API is a java application which allows adding
dynamic contents to a java web server using the java platform. Generally
these contents follow the HTML format (this is the format used for my
project) but may also follow other formats for a web browser like XML.

      A Servlet is a java object that receives a request and generates a
personalized response for this request. The request contains all the
parameters necessary for the demand of the user, these parameters are
represented in the address bar by a sequence of characters or by a java
object called HttpSession stored by the server.

      1. 1. 4. Lifecycle of a Servlet.

The Servlet lifecycle consists of the following steps:

   1. The Servlet class is loaded by the container during start-up.
   2. The container calls the init() method. This method initializes the
      servlet and must be called before the servlet can service any
      requests. In the entire life of a servlet, the init() method is called
      only once.
   3. After initialization, the servlet can serve client-requests. Each
      request is serviced in its own separate thread. The container calls
      the service() method of the servlet for every request. The service()

  method determines the kind of request being made and dispatches
  it to an appropriate method to handle the request. The developer of
  the servlet must provide an implementation for these methods. If a
  request for a method that is not implemented by the servlet is
  made, the method of the parent class is called, typically resulting in
  an error being returned to the requester.
4. Finally, the container calls the destroy() method which takes the
  servlet out of service. The destroy() method like init() is called only
  once in the lifecycle of a Servlet.

1.2. Databases.

  1. 1. 5. Microsoft Office Access.

      Microsoft Access is a Database management system (DBMS) using
the relational model. It is a member of the 2007 Microsoft office suite. It
combines a relational database engine with a graphical user interface.


      The main qualities of Microsoft Access reside in its graphical user
interface making it simple to use. Its use is instinctive for a programmer,
saves time in the programming cycle and offers the possibility of rapid
changes in the structure of the table.


      Delivered to the office suite, access remains a tool for office and is
used by small businesses. Indeed access is very greedy for resources and
is a slow DBMS. According to its specifications, 256 users can be
connected at the same time but in reality for comfortable use, the limit of
20 users should not be exceeded.

      The second problem is the low data storage capacity of an Access
database. It should not exceed two gigabytes.

 in the project

      Regarding the project, I used Microsoft Access especially in the
development phase for its simplicity of use and its ability to rapidly change
the structure of the table.

      1. 1. 6. MySQL

      MySQL is a relational Database
Management System (DBMS) developed by the
Swedish company MySQL AB now owned by Sun
Microsystems. It is a free software available under a GNU/GPL license or a
proprietary license.


      Unlike Microsoft Access, the main quality of MySQL is its speed
during read operations. Its speed during the write and update operations
is a little bit lower but compared to Microsoft Access, MySQL is quicker
even for these operations.

      The second main quality of MySQL is its licence, developed under
double license based on the use to which it is made:

         •   In a free product, it’s the GNU/GPL licence which applies

         •   In a commercial product, it’s a proprietary licence which

         1. 1. 6. 2. Main defects.

      MySQL has several defects, the first being its non-full compatibility
with SQL leading to developmental problems if one uses, as for this

project, a different database management system during the development

     Secondly, MySQL has relatively       a little number of functions
compared to the other DBMS.

 in the project.

     The project uses MySQL because it is a reliable and fast database
management system. So I used Microsoft Access for the development
phase but the project uses MySQL for its operational phase.

     1. 1. 7. ODBC.

     Open DataBase Connectivity (ODBC) is a
set of API and pilot created by Microsoft which
allows the communication between customer databases and the DBMS of
the market. The manager ODBC is present on Windows systems.
However, there are implementations on other platforms, including UNIX
and Linux platforms.

     The ODBC technology allows interfacing any application to any
relational or non-relational databases, as long as he possesses an ODBC
driver (almost all DBMS have such a pilot, which all major DBMS Market).
There are two types of ODBC drivers, client drivers and server drivers.
The server drivers of the project are ODBC-ACCESS (present on the
Microsoft system) and My-ODBC which is the ODBC driver for access to
the MySQL databases via ODBC.

 in the project.

     I used ODBC for the development phase of the project on Microsoft
Windows Vista. I used two ODBC drivers, operating with Microsoft Access
and MySQL.

       I did used ODBC in the development phase of the project for its
flexibility of use and since I had complications during my attempt to install
on Ubuntu 8.04 server.

      The string representing the driver for the connection is as follows:

       1. 1. 8. JDBC.

      The     API   Java    DataBase       Connectivity       (JDBC)     allows       Java
applications to access sources of data for which there are JDBC drivers,
through a common interface. Normally, this is for relational databases,
and JDBC drivers are available for all Blo c k dia g r a m of the clie n t driv e r
systems known relational databases.

There are four types of JDBC drivers:
          •   JDBC-ODBC bridge

          •   Native-API driver

          •   Network-protocol driver

          •   Native-protocol drivers

 in the project.
I used JDBC during the operational phase of the project on Ubuntu 8.04

At the beginning, I used it because I was unable to configure ODBC Linux

and I quickly realized that JDBC was more powerful than ODBC because it
is more direct.

The type of JDBC driver used is Native-API driver
The string representing the driver for the connection is as follows:


   1.3. Regular Expressions.
      1. 1. 9. Introduction.

       An expression or regular expression is a string, which describes a
set of strings according to a precise syntax. The expressions are based on
the mathematical theories of formal languages. Their power to describe
regular sets explains why they are found in several scientific fields in the
years after the war and justifies their high adoption. The expressions are
now used by scientists in editing and text control and the manipulation of
formal languages that are the languages of computers.

       The project is a portal of data entry, regular expressions are an
important pillar of the website. It is thanks to them that we verify the
validity of the data.

       1. 1. 1 0 . Java and regular expression.

       Java provides in its JDK, since the 1.4 version, a standard API
handling regular expressions. The API has to be imported at the beginning
of the java file as follows:

                     import java.util.regex .*;

Two classes are involved in the use of regular expressions in Java:
   •       Pattern
   •       Matcher

       The Pattern class is a compiled representation of a regular

       A regular expression, specified as a string, must first be compiled
into an instance of this class. The resulting pattern can then be used to
create a Matcher object that can match arbitrary character sequences
against the regular expression.

   The Matcher is an engine that performs match operations on a character
sequence interpreting a Pattern. A matcher is created from a pattern by invoking
the pattern's matcher() method.

   Once created, a matcher can be used to perform three different kinds of
match operations:

   •   The matches() method attempts to match the entire input
       sequence against the pattern.
   •   The lookingAt() method attempts to match the input sequence,
       starting at the beginning, against the pattern.
   •   The find() method scans the input sequence looking for the next
       subsequence that matches the pattern.

   For the project, I have used only the matches() because this is the
   one which fits mostly to the project requirements.

   The following code is the typical use of the java.regex package.

                     Pattern p = Pattern.compile("a*b");
                      Matcher m = p.matcher("aaaaab");
                          boolean b = m.matches();

       Project Conception

   1.4. The Database

       At the beginning of the project, the applicant’s data of the TEI did
not agree to the structure standards of a database. That could cause
problems when operations were conducted on this database. I therefore
fully restructured the database so that it complies with the standards.
I will describe in this part each table and its information and interactions
and associations between tables.

       1. 1. 1 1 . Tables and Information Dictionary

       This is the main table of the database. It represents an applicant
and his personals main information. Virtually all other tables are associated
with the applicants table. This table contains the main information.

       Field           Type                    Description
Code                integer      Number representing the applicants, this is
                                 the primary key of the applicants table.
Email               char(30)     Represents the email of the applicant.
Password            char(20)     Represents the password of the applicant.
First Name          char(30)     This field is the first name.
Last Name           char(30)     Represents the last name of the applicant.
Father’s Name       char(30)     The applicant’s father’s last name.
Birth date          char(10)     The birth date of the applicants, on the DD/
                                 MM/YYYY format
Birth Place         char(30)     The place where birth the applicant

    Field             Type                  Description
Address             char(255) The complete address of the applicants
                                 (with city and zip code).
Work phone          char(30)
Home phone          char(30)     Represents the phones of the applicant.
Mobile phone        char(30)
Type of job         char(30)         Between 3 choices: (scientist, special

                                           courses and laboratory).
Nationality        char(30)     This field is the nationality of the applicant.
Number of          integer      Represents the number of children of the
children                        applicant.
ID card            char(15)     The card number of the applicants.
edition Date       char(10)     The date of edition of the ID card
edition            char(30)     The authority which edit the ID card
working            char(15)     The working status of the applicant (Limited
Status                          time period, undefined time period,
                                permanent , other).
insurance          char(30)     The institution of insurance of the applicant
IKA number         char(10)     The social security number of the applicant
VAT                char(5)
PFA                char(5)
Master             true/false   If the applicant is candidate to a master at
Candidate                       the chania’s TEI

          1. 1. 1 1 . 2 . Academic Experiences table.

       This table represents all academic experiences (such as educational
experience) of the applicants. It contains information about dates, school
and a little description of the courses provided.

       Field          Type                       Description
Code               Integer      The primary key for the academic experiences
TEI                char(30)       Name of the school where the applicants has
                                           his academic experience.
Start Date         char(10)     Date of beginning of the experience. Under the

                                MM/YYYY format
End Date           char(10)     Date of end of the experience. Under the
                                MM/YYYY format
Number of          Integer      Number of month that the experience was long.
Lessons            char(255)    Description of the provided courses during the
Code applicants    Integer      Foreign key of this table, primary key of

 experience table.

       This table represents a working experience (a professional experience
in a different sector of education) of the applicants. It contains information
about dates, organisation and a little description of the project on which
the applicant worked.

       Field          Type                       Description
Code               Integer      The primary key for the academic experiences
Employer           char(30)      Name of the organisation where the applicants
                                          has his working experience.
Start Date          char(10)    Date of beginning of the experience. Under the
                                MM/YYYY format

End Date            char(10)    Date of end of the experience. Under the
                                MM/YYYY format
Number of           Integer     Number of month that the experience was long.
Project             char(255)   Description of the project or the work made
description                     during the working experience.
Code applicants     Integer     Foreign key of this table, primary key of

        This table represents any publication written by the user, it contains
information on other authors (if any) as well as references and type of

        Field         Type                     Description
Code                Integer     The primary key of this table
Code applicant      Integer     Foreign key for this table, primary key of
Title               char(100) This field represents the title of the
Type                char(30)    Between two choices (in conferences or in
references          char(255) The references of the publication (editor

         1. 1. 1 1 . 5 . Languages table.

       This table represents the languages (except Greek) spoken by the
applicants. It also contains information about their level of knowledge of
these languages.

    Field            Type                      Description
Language           char(20)     Represent the language spoken by the
Knowledge          char(20)     Represent the level of knowledge of this
                                language. Between 3 choices ( bilingual,
                                very well and well)
Code               Integer      Foreign key for this table, primary key of

applicants                      applicants


       This table represents the degrees obtained by the applicants, as well
as information about them.

       Field           Type                     Description
Code                 Integer    The primary key of this table
Code applicant       Integer    Foreign key for this table, primary key of
Start Date           char(10)   Date of registration in the degree
End Date             char(10)   Date of graduation
University           char(30)   Name of the university
Department           char(30)   Name of the department
     Field             Type                    Description
Years of study       Integer    Number of years of study to obtain this
rank                 Integer    Rank of the applicants in its promotion

 request table.

       This table describe support request passed by the applicants. It is a
very simple table.

       Field           Type                    Description
Code                 Integer    The primary key of the applicants table. It
applicants                      makes a part of the primary key of this
                               table with the request field.
Request              char(255) It makes a part of the primary key of this
                                table with the code applicant field. It
                                describes the support request passed by
                                the applicant.

  For Confirm Table.

        This table represents a user during the registration procedure. It
contains an email address that identifies the user and a coded text
previously sent to the mail box of the user to be sure that his intentions
are good.

        Field        Type                       Description
email              char(30)    Represents the user email.
randomText         char(50)    Coded text putted in the confirmation link send
                               to the user


This table represents the administrators login, code and passwords of the

           Field          Type                       Description
login                     char(20)                   The login of the admins
pwd                       char(20)                   The password of the

code                           Integer                The code used to
                                                      represent the admin.

This table represents the taught matters of the TEI.

           Field                          Type             Description
code                           Integer                The code that
                                                      represents the matter
matter                         char(60)               The name of the
group                          Integer                The group of matters
                                                      that the matter

        This table represents the courses and the preferences order that an
applicant can teach.

Field                               Type                    Description

matter                         Integer                The code of the matter in
                                                      the matters table
code applicant                 Integer                The code of the applicant
preference order               Integer                The index of the course
                                                      in the preference llist of
                                                      the applicant

           1. 1. 1 1 . 1 2 . LanguageList Table.

      This table represents the languages that an applicant can select in
the languages pages.
        Field                       Type                 Description
Language                 Char(30)                   The name of the

      1. 1. 1 2 . Associations & interactions between


         1. 1. 1 2 . 1 . Conceptual Data Model.

      The conceptual data model (CDM) is a simplified representation of
reality. In other words, a CDM is not directly usable by a machine, but it is
a mode of representation between the observed reality and the couple
software/machine. Its purpose is to highlight the essential characteristics
of the information system observed. The model Entity / Relations is
expected to generate data sets and meaningful relationships between
these groups. Once the model established and validated by the report has
observed reality, there are rules to transform files or database.

                C o n c e p t u a l D at a M o d e l of the pr oj e c t .

 Data Model

     The logical data model (LDM) is designed after the CDM, it is
closer to the final structure of the database and deals with the concept of
foreign key. Thanks to this model, we know which fields will be present in
which tables.

Lo g i c a l D a t a M o d e l of the pr oj e c t .

   1.5. Web-Site.

       1. 1. 1 3 . Graphics.

       The charter graphic site is very simple.     I used Cascading Style
Sheets (CSS) separated from the html page which can harmonize the
presentation site.
       It consists of a red stripe at the top of the page and bearing the
logo of TEI and the title of the page. The band is made up of a single
division and then placed between two <div> tags, this division is named

       The second division is named centre, this is the one that has the
dynamic information, so those who change from one page to another. This
division is very simple and has no background. The texts in this division
are just focused.

       The last division is the bottom division. It doesn’t have information
and it only consists of a red strip at the bottom of the page.

        1. 1. 1 4 . Procedures & web-pages of the applicants

           1. 1. 1 4 . 1 . Registration procedure.

        The registration procedure
allows the user who has not an
account on the portal to create
one. A link which permits access
to the registration process page is
available on the homepage.        The
user needs first and foremost a
valid e-mail account. The email
address of the user is therefore the most important information of this

        The first page of the authentication procedure is very simple and has
a single form where the users must enter their email address. Then the
server checks the format validity of the email address through a regular
expression. If the email address has a valid format, then the server sends
an email to the user. This email contains a URL leading to a confirmation

        At the same time, the server executes an insertion request in the
database. We insert in the table waitForConfirm the email address of the

user and a string randomly generated and coded to check later, the
identity of the user.

       In addition to the address of the confirmation page includes a link
two pieces of information. The email address of the user and the coded
text previously generated random.

Example of confirmation link:

       When the user clicks on
the    confirmation        link,     the
server    gets    the   information
contained in the confirmation
link     and     reviews      in     the
database       that     the        email
address    corresponds        to     the
random         text        previously

       If the address doesn’t match, the server will display a link to the
registration page that will allow the user to reregister.

       Otherwise, it displays two forms. These forms allow the user to
select a password. If the two passwords entered by the user are identical,
the server executes an insertion query in the database which finalizes the

registration of the user. Then the server redirects the user to the
FillingFields page.
 field procedure.

      The page FillingFields allows the user to enter personal information
concerning him. It consists of forms where the user enters the requested
information. Some information is absolutely necessary while other is not.

      When the user clicks on the button ok, the server checks the validity of
data entered against regular expressions. If the information is valid, the server
then proceeds to the inclusion of these data in the applicants’ table of the

 entry pages.

     In this paragraph, I will describe a group of pages of the project
which are very similar. They goal is to add information in the database.
These pages are:

               •   addAE (Academic experiences)
               •   addWE(Working experiences)
               •   addTS(These subjects)
               •   addLanguages
               •   addPublications
               •   addDegrees
               •   addSR(SupportRequest)

      They permit the database management of the eponym tables. The
“add pages” contain a form by field (except the code and code_applicants
fields) and an ok button. When the user clicks on the ok button, the

server checks the validity of the information and if it is valid, proceeds to
the insertion of this information in the database.

      Example of a typical “add page”:

                               The addLanguage page.

 display pages.

      After having seen the “add pages”, we’ll see the “display pages”,
their names correspond to the tables which they are associated.
      These “display pages” contain an html table which shows the
information added in the database by the user.

The “display pages” are:

            •   Academic experiences
            •   Working experiences
            •   These subjects
            •   Languages
            •   Publications
            •   Degrees

           •   SupportRequest

Example of a typical “display pages”:

                     The WorkingExperience page.

      1.1.15.The admin part.

     The administrator part of the site is accessible from the "Admin"
It allows the administrator to print the courses report and the report on
the applicants, add new courses and create new admin accounts.


      This is a course report accessible for any course of the database. It
consists of a table which gathers information on the applicants who wish
teach this course.

The information provided by the report courses is:

            •   First name, Last name

            •   Thesis Titles of the applicant’s PhD and Master

            •   The Title of the applicant’s first degree.

            •   The fact that the applicant is or not candidate to a master on
                the TEI

            •   The working and academic experience expressed in a number
                of months.

   applicant’s report.

         The applicant’s report is composed of three pages, the first includes
personal information about the user and a table containing the course that
the applicant can teach, the second contains the diplomas and the
publication of the applicant and the third contains information on
academic and professional experiences of the applicant and the languages
he speaks.

         1. 1. 1 6 . Tree structure of the site.

         In this paragraph, I will describe the tree structure of the web site.
To facilitate understanding, I have divided this tree structure into three

         The first part represents the tree structure of the web site from the
main page until the page MyAccount. It describes schematically the login

procedure, the registration procedure and the procedure for entering
personal information.

      The second part represents the tree structure of the web site from
the MyAccount page. The diagram shows the pages accessible from the
page MyAccount. Each page represented by the color red describes actually a
couple of display pages and add pages.

      Finally, the third party represents the site tree from the
administrators login page. All pages in red represent actually a collection
of pages.

   1.6. Functions Class.

      The class function is a class with all static methods and functions
useful to all pages of the portal. They are mainly based on formatting and
data verification. I will describe below each function or group of similar

      1.1.17.Data checking functions.

      There   are   three   data   checking   functions.   They   use   regular
expressions described in the first part of the report to check the validity of
strings which are passed as argument. I will describe here the two more

complex functions. The last is the function isNumber and checks only if
the string passed as an argument is digital.

 data checking function.

      Each data checking function is written on the form of the following

        pu b li c stati c bo ol e a n isV a l i d(Stri n g val u e){
                             Patt e r n patt e r n ;
                             Match e r match e r;

                                 patt e r n          =           Patt e r n . c o m p i l e(" R e g u l a r
        ex p r e s s i o n ");
                                 m a t c h e r = patt e r n . m a t c h e r(v a l u e);
                                 ret u r n m a t c h e r . fi n d();


      The function isMail verifies the validity of any email address entered
by the user on any page of the site.

      Its regular expression is as follows:


      The function checks that the first part of                                                      the string argument
consists of characters word (A-Z, a-z, 0-9) followed by a “@”, that the
second part of this string consist of characters word followed by a point
and a the final part of this string is between 2 and 6 characters long.


      The function isDate verify the validity of any date entered by the
user on any page of the site.

      His regular expression is as follows:


      This function seems to be very complex. It checks the validity of a
date passed as a parameter. The date should follow the format DD / MM /
YYYY, and must adhere to the timetable (for example dates like
30/02/2004 or 34-14-1998 cannot be accepted). The separator can be
either slash or dash.

      1.1.18.EnablePopUp function.

      The     function   enablePopUp         takes   as   parameter   an   object
PrinterWriter, writes in a document a line of code activating a JavaScript

      This function java script can display in a new window html pages, in
other words a popup.

The java script function is as follows:

                                 <S C R I P T lan g u a g e = j a v a s c r i p t >
                                               fun c ti o n
                                 O u v r i r P o p u p( p a g e , n o m , o p t i o n){
                                                            wi n d o w . o p e n( p a g e , n o m , o p t i o n)
                                 </SC R I P T >

Typical example of the OuvrirPopup function:

 <A hr ef =\"jav a s c r i p t: O u v r i r P o p u p('/T E I/po p u p/ p o p u p L N . h t m l ' ,' L a s t na m e
 hel p.','re s i z a b l e = n o , l o c a t i o n = n o , w i d t h = 2 0 0 , h e i g h t = 2 0 0 , m e n u b a r = n o , s t a t u s = n o , s c r o l l b
 ars = n o , m e n u b a r = n o ')\">(?)</A>

            The HTML above shows the following three characters (?) in the
form of a link. By clicking on the link, the Internet browser opens a new
window. This window is called popup because it is not resizable and is
smaller than a normal window.

            I used this feature in the project to assist the user during phases of
data                                                                              entry.
The fields which can create confusion have a link on their upper right
corner, which opens a popup window describing how to enter the data.


  1.7. Results

   Arriving in the late stages of programming, testing and resolution of
bugs, my website has reached its goal, it can display two types of
printable pages requested in the scope statement, the page which
summarizes information on an applicant and the page which helps to
chose which applicants could teach an available course.

  1.8. Encountered difficulties.

   The main difficulties that I was able to meet are those related to
language and those related to working alone.

  1.9.Languages difficulties.

   Firstly, the fact that my knowledge of the Greek language and its
alphabet was very limited caused me comprehension problems during the
restructuring phase of the database because it was written in the Greek

   A programmer must first understand the requirements of his "client" to
be able to provide information systems tailored to its needs. The fact that
I had to communicate with my tutor in English was an obstacle for the
project at the beginning and has led to some mistakes on my part. But
this language experience allowed me to improve my English and thus to
increase my programming abilities.

      1. 1. 1 9 . Installations difficulties.

      I met a major difficulty in my attempt to install ODBC on Ubuntu
server. I followed all the tutorials available on the Internet, asked
questions and asked for help on all forums to help computer that I knew I
could find the cause of this malfunction. An internet user advised me to
use my JDBC and it really helped me. I returned this difficulty by an
advantage because if I had not encountered it, I would not use JDBC
which is a really more powerful tool that ODBC.

       Having only used Linux in my academic institution and therefore
having never installed Linux by myself, I encountered problems when I
installed Ubuntu 8.04 server on a PC. I had to learn to use the installation
and setup on Linux. This difficulty has now become an advantage because
Linux installation and setup are very important for any programmer to
know in advance.

   1.2. Possible improvements.

      Possible improvements of the project are mainly better graphics. Not
being a graphic designer and being therefore not so good in this field, the
site has graphics limitations. A more graphical design of the site would
allow the users to better and easier use it.

      A second possible improvement would be to translate the whole site
in the Greek language and thus allow users to switch from one language
to another through a button.

     The last improvement possible for the site is its hosting. The site is
hosted on a regular computer with an operating system Ubuntu 8.04
Server. The site is therefore dependent on the power outages. This type of
accommodation has a second weakness, the site address is a numeric IP
address ordinary and therefore contains no textual address.

    As I explained in the results, the website meets all the
expectations of the scope statement except the possibility of
changing the language of the site.

     The project permits me first to discover a new type of
work, the work in an international context. It allowed me to
compare different ways of doing things and thus keep the best
of both.

      To carry out the project, I had to use what I had learnt
during two years of studies at the IUT but I also used new tools
and therefore I learned to use them. It allowed me to approach
the area of the communication between a programmer and his
client both talking in the common English language which has
brought much to my experience.

      The work placement helps discover the Cretan culture, a
way of life less stressful and more relaxing than in our societies
of northern Europe and take advantage of its climate so
different from what I have known in Lille. This course will
therefore allow me to deal more calmly life with business,
project management and work in an international context.

Web sites:






     •   Delanoy Claude, Programmer en Java, Eyrolles, 2008

     •   Goncalvez Antonio, Java EE 5, Eyrolles, 2007

     •   Joe Celko, SQL avancé : programmation et techniques avancées,
         Vuibert, 2000

     •   Etienne Langlet, Apache Tomcat 5 : Serveur d'application Java, ENI,