Encerrado

J2EE Servlet (Struts + Hibernate)

We need a J2EE application wich implements Struts and Hibernate, runs under Jboss 4.0.2, and JRE 1.5.

The servlet must read data from a PostgreSQL database and display it in several ways (a plain table or different types of charts).

We provide a .war showing the basic functionallity and the design.

## Deliverables

Check the attachment bellow, it has three parts the .war, a folder called res, and a folder called "ind2", the app will look for the folder (it's by default pointing to: {JBOSS-HOME}/server/default/deploy/ind2").

The first page is an introduction to the app, don't be afraid if you don't understand Spanish, just click the left button and Skip it.

* * *

The next one is the real first page of the app, it will show you a list of Indicators (Indicadores in Spanish) (think of them as classes of statistical data), each one is measured in different units, so them must be defined in a table of the DB, the table must contain the following rows:

* CODIGO: an unique integer for each indicator.

* NOMBRE: the name of the indicator.

* PORCENTUAL: a boolean value that tells us if the indicator will be shown as a percentage.

* COMPARACION TEMPORAL:a boolean wich tells us if the indicator can be compared by a temporal criteria.

* COMPARACION UER:another boolean telling us if the indicator can be compared by UER, i will explain this later.

* ESCALABLE: the last boolean and tells us if you can get the indicator for a UER taking the data from the sons of it.

* URL HOJA: An url.

* UNIDAD: The unit in wich the indicator is measured (Km,Kg...)

This table JUST DEFINES the indicator, but for one to be displayed in the first page requires to have any data linked to it.

The data is located in another table with these rows:

* CODIGO: It must be related to the same row in the table before, here it tells us wich class of indicator this data belongs to. An integer.

* UER: Spacial Reference Unit (from the Spanish **U**nidad **E**spacial de **R**eferencia, it is something like a Continent, a Nation, or a city). An integer.

* FUENTE: An integer.

* VALOR:The value, the real data, if the indicator is expressed as a percentage hero goes the source value (If we will express the 60% of 1000, here won't go 60, but 600), a Float.

* VALOR DE REFERENCIA: If the data belongs to an indicator that is expressed as a percentage, it is needed to know what is the "100%" (In the example before would be 1000)

* INTERPRETACION:An integer.

* TIEMPO:The date of the data in format dd/mm/yyyy.

For the INTERPRETACION and FUENTE it will be another table (for each one) correlating the CODE with a String that will be the NAME.

For the UER is slighty different:

There will be one table where the code of each UER TYPE is related to its CODE(Ex: CODE:1 UER TYPE:country, CODE:2 UER TYPE:continent, and goes on)

And another table in wich each UER(integer) is related to its UER TYPE(integer) and to its NAME(String) (EX: UER:1 UER TYPE:2 NAME:USA, UER:2 UER TYPE:2 NAME:France).

An UER can be part of another(Ex: Florida is part of USA, and USA is part of the ONU, but also is part of Nort-America) so it's up to you how to handle this belonging issue. It is not a tree structure. You can handle it with another table in wich one row is for the son and another for the father, each son can has more than one father and visceversa).

Everything with a code(UER TYPE, INTERPRETACION, FUENTE, CODIGO in the data table) must have a reference in the related table where the relationship code-name is made.

Well so, the first page only show the indicators wich have data attached.

You can check (with checkboxes) the indicators in wich you are interested, and then click the next button, this will take you to the next step in wich you select the UER in wich you are interested for each indicator, it must be shown in a hierarchized structure,not as it is displayed by the war attached, you can see the way we want it in the [url removed, login to view] located in "res" folder, this design is for each father (a UER with no fathers) UER, and if one UER has two fathers it will be displayed in both tables.

There will be as many tables as father UERs for each indicator selected.

As you can see there are three types of checkboxes:

1. The one behind the pie, if you check it you will be allowed to see a pie with the percentual contribution of each son UER of the father of the table (If a son UER has another son UER we don't care, just the direct son).

2. The ones behind the calendar, if you check the one in the line of the father of the table, everyone of these will get checked, if you check it, you will be allowed to see a date based comparison, of that UER.

3. The ones behind the map,the same with the one in the father line, if checked you will be allowed to see a UER based comparison, of every UER with that box checked.

If you select the pie checkbox, the percentual contribution works this way:

Let be the data of the father UER 100, One fo the sons contributed 20 to that, another 60, an the other one 20, so you show that in the pie, some indicators cant be shown this way, so for this is the ESCALABLE boolean, if this is set to false, the checkbox will be blocked.

The calendar checkbox will be blocked if the COMPARACION TEMPORAL value for that indicator is set to false.

The map checkbox will be blocked if the COMPARACION UER value for that indicator is set to false.

These two comparisons will be made in an horizontal bars chart. You can see how selecting in this step as many right checkboxes as you want in the war. (Be careful of not to select any right checkbox or it won't work)

If the user selects to compare both by UER and temporally the result will be shown in a line cart with the x-axis as the time, the y-axis as the amount and the lines as the UERs.

After all the tables of all the indicator will be a submit button, that will take you to the final page wich will show the results descripted bellow.

If the application don't find a data for a certain UER it wil try to create it by adding the data of all the sons (if possible), if the ESCALABLE value for that indicator is set to true, if the indicator has the PORCENTUAL value set to true it will add the values of the sons, and assing it to the VALOR cell, and will add all the VALOR DE REFENCIA cells of the sons and set it to the VALOR DE REFERENCIA CELL of the father.

In the res folder you will find visual references for some of the things I said.

Habilidades: Java, JSP, PHP

Ver mais: works spanish, work home france, data structure explain, visual basic spanish, types tree data structure, types data structure, true results, tree types data structure, tree box, tree structure, tree data structure types, tree data structure example, tree database structure, struts direct, string data structure, relationship tree, postgresql r, pie database, php struts, parts tree, parts express, map string

Acerca do Empregador:
( 71 comentários ) Bogotá, Colombia

ID do Projeto: #3034853

3 freelancers estão ofertando em média $71 para este trabalho

divnesan

See private message.

$85 USD in 5 dias
(6 Comentários)
0.0
vw6974016vw

See private message.

$51 USD in 5 dias
(2 Comentários)
0.0
kumarvarun1985

See private message.

$76.5 USD in 5 dias
(0 Comentários)
0.0