770 likes | 781 Views
A CVS reporting design project managed by Daniel Vikström, with web and PDF design and implementation by Carmine Protano, Francesco Severoni, and Ahmed Kamran. Also includes Eclipse design and reporting by Ivan Treščec and Mario Mikulaj, and reporter design by Aleta Mladen.
E N D
CVS Reporting Design • Daniel Vikström: Project manager / cvs manager / PDF imp. / cvsql interface design. • Carmine Protano: Webb & PDF design & imp. • Francesco Severoni: Webb & pdf design & imp. • Ahmed kamran: Webb & pdf design imp. • Ivan Treščec: Zagreb team manager / communication / Eclipse Imp. • Mario Mikulaj: Eclipse & reporter design & imp. • Aleta Mladen: Reporter Design
General Information • Compatibility :The webpage is compatible with the major browsers like Firefox, Internet Explorer, Netscape and Opera, the system will check which browser you have and adhere to that browsers standard. • Session Handling:We use Session handling to keep track of individual users on the website, but if a user clicks on the logout button his / hers session will be deleted. There is also a timeout which will fire if the user does not stay active, if the timeout is triggered the system will delete the specific users Session . • Uploading File:when user uploads files like template the system will create a directory in the root named by the username in this it will put the templates.When the user logs of the system it will delete the directory since all files are stored in the database.
System Components The Web Site Portal has been divided into some components: • Registration • Login • Template: • Upload • Visualization • Delete • Report: • Creation • Visualization • Delete • Generating PDF and Html
Web Site‘s Structure • Each page of the site is structured in this manner • CVS Reporting logo • A left page navigation(the same for all the pages) • a footer(the same for all the pages) • a body, one for each page unique for each page
Validation of input • For validation of the data in the forms there are diffrent controls in relation with the kind of datainput which is required, all of these controls are made with Javascript • Name, Surname, User Position,Username cannot be null and must be longer than 2 characters. • Email must be an valid email address, means that it must contain “@” and “.” symbols, it must also be longer than 7 characters. • Password and Retype Password must be longer than 8 characters and must be equal • A check if the username is in use is also done via Jsp
Store the Data • After that the User has filled in the fields the Data will be store in a xml File called with the user’s name • And this file will be stored into the database in the table user
Uploading Template The Upload page consists of four fields: • Name: the user wants to give for this template. • Template: Xml file. • DTD: associate with the Xml file. • Description: for template (it’s not mandatory).
Uploading Template Controls In the Upload Template there is validation of the data in the forms the control differentiate in relation with the kind of data input which is required; there are two kinds of controls: • Client Side Controls made with JavaScript: • Name, Template, DTD cannot be null. • The Field Template must be .xml file • The Field DTD must be .DTD file Server Side Controls made of JSP: • The System validates if the template has been previously uploaded by the user into the database, in this case the system will show an error message. • The System check if the DTD file is in relation with the Xml file, if there is some problem the systems don’t do the upload and show an error message.
Store Data into Database • If the system doesn’t find errors in the form, it will store the information into database in two different tables: usertemplate dtd
Checking Image Tag in Xml File • Now the system reads the xml file and if there is the image tag (it means the user must upload the logo company) it visualize the page for uploading an image file into the database. If in the xml file there is no image tag, the system will show the congratulation page, it means that the report has been uploaded.
Checking Image Tag in Xml File Xml File with Image Tag Xml File without Image Tag <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE company SYSTEM"company.dtd"> <company> <companyName fontStyle="bold"> Faculty of computer Science ´</companyName> <companyAddress> <streetfontSize="10"> Main Street </street> <postalCode fontSize="10"> 123345 </postalCode> <city fontSize="10"> Vasteras </city> <country fontSize="10"> Sweden </country> </companyAddress> </company> <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE company SYSTEM "company.dtd"> <company> <companyName fontStyle="bold"> Faculty of Computer Science </companyName> <companyLogo> univerity.gif </companyLogo> <companyAddress> <street fontSize="10"> Main Street </street> <postalCode fontSize="10"> 123345 </postalCode> <city fontSize="10"> Vasteras </city> <country fontSize="10"> Sweden </country> </companyAddress> </company>
Uploading Company Logo For validation of the data in the form, there are two simple controls: • Client Side Control made with JavaScript: • Company Logo cannot be null and must be an image file (.jpeg .gif .tif ) • Server Side Controls made of JSP • The Company Logo must be the same specified in the Xml file.
Store Xml file and logo into Database • If the system doesn’t find errors in the form, it will store the information into database in two different tables: logo usertemplate
Visualizing uploaded templates • In this page there will be all templates uploaded from the user. • Each user can see his information reports: • Name Template: name of template • Xml File: name of the .xml file • Type: type of .xml file • DTD: name of the DTD file associated of xml file • Date: date of creation
Visualizing specific Template On the click on the templates line will be open (under construction) a page to see all information about the template: • Name Template • Xml File • Type • Dtd • Description • Date • Logo
Deleting Template • In the viewing all template information page all the text areas are read-only because the user is not able to modify the information about the template. He can delete the template or click “Continue” to view the other template. • If the user decides to delete this template, all template’s information out will be deleted. • In the first moment the system deletes the record in the usertemplate table and if the image for this template is not null it deletes also the corresponding record in logo table it will also check if there is a report connected to it if so it will delete it.
Deleting Template When the system deletes the record in usertemplate table, it checks if there are other records that are using the same name_dtd field of the line deleted: • If that is the case, the system doesn’t do anything. • Otherwise delete the correspondence record with the same name_dtd field into dtd table.
Delete templete record from Database usertemplate logo dtd
Creating Report In the Creating Report Page for validation of the data in the forms there are different client side control in relation with the kind of data input which is required (made with JavaScript): • XML Report Template cannot be null. • XML Company Template cannot be null. • XML UserInfo Template cannot be null.
Saving New Report In Database When the user presses continue, if there aren’t errors, the system will store the report information in the report table, setting: • Id: auto increment value. • Username: username of the user. • Main:Xml file where there are information of visualization (The system for each report creates one this file setting default information). • reportInfoXml: Xml file where there are report information. • date: depend if in the Xml Report Template there is or not date’s information. In the first case the system stores those information and visualize the page for query and type information (Figure 19) , in the second case the system shows the page for query, type and date information (Figure 17) • type: public or private • Name_report: name stored into the reportInfo.xml file • Name_template_report: file’s name
User Used Template without date information Now there are two cases: In the first case User Uploaded Template without date’s information • Example of this XML report template • <?xml version="1.0" encoding="ISO-8859-1"?> • <!--In this file will be stored the information about the report's info--> • <!-- Western European encoding --> • <!DOCTYPE reportInfo SYSTEM "reportInfo.dtd"> • <reportInfo> • <reportTitle>CVSReport</reportTitle> • <reportDescription>Information</reportDescription> • <cvsql number="1" execute="yes"> • select * from usertemplate • </cvsql> • <cvsql number="2" execute="yes"> • select * from template • </cvsql> • <cvsql number="3" execute="yes"> • select * form information; • </cvsql> • </reportInfo>
Checking Date information on Client Site In this case, in the Inserting Report Information Page for validation of the data in the forms there are different controls in relation with the kind of data input which is required (made with JavaScript): • Date Start (Day, Month, Year, Week) cannot be null. • Date End (Day, Month, Year, Week) cannot be null. • Name of the report can not be null • The Date End must be following Date Start. • The user must to choice free query or fixed query. • If the user selects free query he must write the query in the text are. • If the user doesn’t select free query he must select one’s of fixed query. If the system checks that something is wrong visualize the page with an error message . Otherwise it updates report’s table whit type’s information.
Verifying Date Information After verifying the data input consistence, the system will update the xml file with those information: • <reportDate> • <day>17</day> • <month>01</month> • <year>2005</year> • </reportDate> • <reportPeriod> • <date> • <day>1</day> • <month>1</month> • <year>1</year> • <week>1</week> • </date> • <date> • <day>2</day> • <month>2</month> • <year>2</year> • <week>2</week> • </date> • </reportPeriod>
User used Template with date information In the case case User Uploaded Template without date’s information • <?xml version="1.0" encoding="ISO-8859-1"?> • <!--In this file will be stored the information about the report's info--> • <!-- Western European encoding --> • <!DOCTYPE reportInfo SYSTEM "reportInfo.dtd"> • <reportInfo> • <reportTitle>Report Prova</reportTitle> • <reportDescription>E solo una prova del cazzo</reportDescription> • <reportDate> • <day>9</day> • <month>1</month> • <year>2005</year> • </reportDate> • <reportPeriod> • <date> • <week>49</week> • <year>2004</year> • </date> • <date> • <week>50</week> • <year>2004</year> • </date> • </reportPeriod> • <cvsql number="1" execute="yes"> • select user from usertable; • </cvsql> • <cvsql number="2" execute="yes"> • select * from information • </cvsql> • <cvsql number="3" execute="yes"> • select date from project • </cvsql> • </reportInfo>
Validating Query Input In relation with the kind of data input which is required (made with JavaScript): • The user must choose free query or fixed query. • If the user selects free query he must write the query in the text are, otherwise he must select the fixed query.
Validating Query Input After the system will check if the user has chosen a fix or a free query: • In the first case it updates the xml file • Setting all execute attributes to “no”, excluding the query chooses of the user.
First Case: Updating Xml file • <?xml version="1.0" encoding="ISO-8859-1"?> • <!--In this file will be stored the information about the report's info--> • <!-- Western European encoding --> • <!DOCTYPE reportInfo SYSTEM "reportInfo.dtd"> • <reportInfo> • <reportTitle>CVSReport</reportTitle> • <reportDescription>Information</reportDescription> • <cvsql number="1" execute="no"> • select * from usertemplate • </cvsql> • <cvsql number="2" execute="no"> • select * from template • </cvsql> • <cvsql number="3" execute="yes"> • select * form information; • </cvsql> • </reportInfo>