etendering system srs

Upload: ashish-desai

Post on 31-Oct-2015

608 views

Category:

Documents


152 download

DESCRIPTION

Software Requirements Specification of E-Tendering System made in J2EE using Struts2 and Hibernate Framework, mysql as a backend.

TRANSCRIPT

E-TENDERINGSYSTEM

by

Ashish Desai (ID No. 092002)Pranav Bambhroliya( ID No. 092003)

A project submittedinPartial fulfillment of the requirementsFor the degree ofBACHELOR OF TECHNOLOGYinComputer Engineering

Internal Guide:External Guide:Prof. P.M. JadavMr. Mishit VoraAssociate ProfessorSr. SoftwareDept. of Computer Engineer,Engineering,DataSoft India DDU, NadiadPvt. Ltd.

Department of Computer EngineeringFaculty of Technology, Dharmsinh Desai UniversityCollege Road, Nadiad-387001April 2013

CANDIDATES DECLARATION

I declare that final semester report entitled E-Tendering System is my own work conducted under the supervision of the external guide Mr. Mishit Vora from DataSoft India Pvt. Ltd.

I further declare that to the best of my knowledge the report for B.Tech. Final semester does not contain part of the work which has been submitted for the award of B.Tech. Degree either in this or any other university without proper citation.

Ashish DesaiBranch: Computer EngineeringStudent ID: 092002

Pranav BambhroliyaBranch: Computer EngineeringStudent ID: 092003

CERTIFICATE

This is to certify that the project work titledE-TENDERING SYSTEM

Is the Bonfire work ofASHISH DESAI (ID. - 092002)PRANAV BAMBHROLIYA (ID. 092003)

carried out in the partial fulfillment of the degree of Bachelor of Engineering in Computer Engineering at Dharmsinh Desai University in the academic session December 2005 to April 2006.

Mr. Prashant M. JadavProf. C.K. BhensdadiaAssociate Prof.Head, Dept. of Computer Engg.,Dept. of Computer Engg.,Date:Date:

Faculty Of TechnologyDepartment Of Computer EngineeringDharmsinh Desai University

E-TENDERING SYSTEMProject byAshish Desai (ID: 092002)Pranav Bambhroliya (ID: 092003)

ABSTRACT

In the past, there wasnt any process for issuing a new tender online. All process were offline on paper. If any new tender was issued then the organization would give an advertisement on its website, newspaper or any other media. Newspapers contain only few detail of tender, if any more details are required then the contractors have to physically visit the organization. All process from issue of a new tender to allocate a tender to the contractor would have to be done on paper and personally. So the tenders and corrigendums, contractors portfolio and bid details are managed manually. No online registration and subscription were provided.This e-tendering system (electronic tendering system) facilitates the complete tendering process from the advertising of the requirement through to the placing of the contract on online. All the tender details, corrigendum details can be shown online. In e-tendering system client can bid for the tenders online and portfolio can be submitted at the time of bidding. Client can search tender department wise, date wise, amount wise etc.

ACKNOWLEDGEMENT

It gives us immense pleasure and satisfaction in presenting this report of System development Project undertaken during the 8th semester of B.Tech.As it is the first step into our Professional Life, we would like to take this opportunity to express our sincere thanks to several people, without whose help and encouragement, it would be unfeasible for us to carry out the desired work.We would like to thank to Mr. Mishit D. Vora(Project Leader) for giving us an opportunity to work with one of the most esteemed organization of the world. An enviable work culture and an environment that encourages creativity and innovation have inculcated in us a sense of discipline and perseverance.From the bottom of our heart, I would like to express my sincere thanks to our Head of Department Prof. C.K. Bhensdadia and our internal guide Prof. Prashant Jadav, who gave us an opportunity to undertake such a great challenging and innovative work. We are grateful to them for their guidance, encouragement, understanding and insightful support in the development process.Finally, we would like to thank to all DataSoft employees, all faculty members of our college, our friends and our family members for providing their support and continuous encouragement throughout the project.

With sincere regards,Ashish Desai,Pranav Bambhroliya

Table of ContentsCandidate DeclarationiCertificateiiAbstract.iiiAcknowledgementivList of TablesviiList of FiguresviiiAbbreviationsix1 Introduction11.1 Project Details21.2 Purpose21.3 Scope 51.4 Objective51.5 Technology and Literature Review62 Project Management202.1 Feasibility Study212.1.1 Technical feasibility212.1.2 Time schedule feasibility212.1.3 Operational feasibility222.1.4 Implementation feasibility222.2 Project Planning222.2.1 Project Development Approach and Justification 222.2.2 Project Plan242.2.3 Milestones and deliverables252.2.4 Roles and Responsibilities252.2.5 Group Dependencies262.3 Project Scheduling262.3.1 Project Scheduling Chart263 System Requirements Study273.1 Study of Current System283.2 Problem & weakness of Current System283.3 User Characteristics283.4 Hardware and Software Requirements293.5 Constraints303.5.1 Regulatory Policies303.5.2 Hardware Limitations303.5.3 Interfaces to other Applications303.5.4 Parallel Operations303.5.5 Higher Order Language Requirements313.5.6 Criticality of the Application313.5.7 Security 313.6 Assumptions324 System Analysis334.1 Requirements of New System344.1.1 Use Case Diagram344.1.2 System Requirements344.2 System Requirements Specification 364.3 Features of new system. .384.4 Navigation Chart384.5 System Activity394.6 Data Modeling404.7 Data Flow Diagrams415 System Design465.1 System Architecture Design475.1.1 Component Diagram475.1.2 Deployment Diagram485.2 Database Design495.2.1 Table & Relationship505.2.2 Data Dictionary515.3 Implemented Algorithm54 6 Implementation Planning566.1 Implementation Environment576.2 Coding Standards 596.3 Implemented Classes606.4 Screenshots 617 Testing617.1 Testing Plan627.2 Testing Strategy647.3 Testing Methods657.4 Test Cases687.5 Testing Screenshots778 Conclusion and Future Extensions808.1 Conclusion818.2 Future Extension 82References83

Viiivii

LIST OF TABLESTableNamePage No.

Table 1.1Technologies Used4

Table 2.1Technical Feasibility19

Table 3.1Hardware Required27

Table 5.1Client Registration DB49

Table5.2Inquiry DB50

Table 5.3Category DB50

Table 5.4Sub-Category DB50

Table 5.5Tender DB51

Table 5.6Corrigendum DB51

Table 5.7F.A.Q. DB52

Table 5.8Portfolio DB52

Table 5.9Security DB52

Table 5.10Result DB53

Table 7.1Test Cases for Login75

Table 7.2Test Cases for Registration75

Table 7.3Test Cases for Tender management76

LIST OF FIGURESFiguresNamePage No.

Figure 1.1Struts Flow Diagram10

Figure 1.2Struts with J2EE12

Figure 1.3Freemarker Overview15

Figure 1.4Hibernate Architecture17

Figure 2.1Iterative model 23

Figure 2.5Gantt Chart26

Figure 4.1Use Case Diagram34

Figure 4.2Navigation Chart for channel38

Figure 4.3Activity Diagram For Login39

Figure 4.4ER Diagram40

Figure 4.5Client DFD Level 042

Figure 4.6Client DFD Level 143

Figure 4.7Client DFD Level 244

Figure 4.8Admin DFD Level 145

Figure 5.1Component Diagram47

Figure 5.2Deployment Diagram48

Figure 6.1Implementation Environment57

Figure 7.1Testing steps68

Abbreviations

GUI Graphical User InterfaceSQL Structured Query LanguageJ2EE Java 2 Enterprise EditionXML Extensible Markup LanguageMVC Model View ControllerUML Unified Modeling LanguagePOJOPlain Old Java Object

CHAPTER 1INTRODUCTION

1.1 Project Details:

Project Definition:- E-Tendering System.An e-Tendering System (or Electronic Tendering System) facilitates the complete tendering process the entire tender and the corrigendum details can be viewed. Also the tender notices, tender documents, corrigendum notices can be downloaded from the website. It involves online bidding with Client Details..

1.2 PURPOSE:Existing System No Automated Bidding Process: The bidding process is completely manual and so very time consuming. There is no provision for online bidding. The tenders have to download the documents from the website while the rest of the process is manual. Security: The manual process is not very secure. In the new system, the passwords are generated automatically so only the members know their passwords. Tender Status: Finding out the tender status (Allocated/Non-Allocated) is time consuming. No Searching Facility: There are no searching facilities for tenders such as such as search by tendering department, category, amount, date, type, etc. in the existing system. Limited Tender Details Available Online: Only the name of work, issue date and bid closing date is available online. Other details like estimated cost, tendering department, category etc. are not displayed.

Not As Accurate And Fast: Retrieving information is slower as everything is managed manually. Since, everything is managed manually; there might be a lack of accuracy.The workflow of the existing system is as explained below:1) All Details Managed Manually:The tenders and corrigendum, their notices and documents, contractors records and bid details are managed manually. No online registration and subscription provided.2) Bidding Process: The bidding process which involves both the technical bid and the financial bid is not automated. Bidders send the necessary documents like their solvency certificate, technical resources data and their quotations through post. In the bidding process, technical bid is the first stage wherein the Tenderers have to give the proof of his solvency and the data about his financial position. Then he is required to give the details of the technical resources available with him.. Both the technical bid and the price bid are kept in two separate covers which are again kept in one main cover. Only those bidders price bid is opened whose financial records and technical bid are satisfactory. Earned Money Deposit of those bidders who are not qualified at the technical bid stage will be refunded. After proper evaluation, the final bid is selected and the tendered whose bid is selected will have to pay some amount as a security deposit. This amount will be adjusted later on.

3) Tender download The name of work of tender, its issue date and bid closing date is displayed on The Ahmedabad Municipal Corporations website (www.egov.amc.com).

Need for a new system To automate the bidding process and provide the tender details online: The manual bidding process is very time consuming and slow. The records of data is also maintained manually which slows down the retrieval of information. The tenders should be able to make a bid online. All the important details of the tenders should be made available online. Tender and corrigendum notices should be displayed as well. To check the status of Tenders: Such a facility will enable the contractors to know the status (Allocated/Non-Allocated) of the tenders easily and quickly. Security: The existing system is not so secure. In the new system, Faster retrieval of information: Retrieval of information becomes easier compared to the manual system. Details regarding tenders, corrigendum, bidders, feedback etc are available easily.

1.3 SCOPE: Table updates according to user input

Deleting and Modification of existing records update the table accordingly. Graphical User Interface Facility.

Java environment provides the user with graphical / visual interface. Improvised reports.

Reports have been improvised with the facility for individual and group items separately. Multiple Operations available in a single form.

Facility to add, modify, delete, update etc. are provided in the same form so that the user does not have to switch over from one form to another form to the same.Tangible Benefits: Reduction of paper work as a result cost of stationery reduces. Category wise Tender reports. Automatic Bidding and Result. Automatic Result Mailing System.Intangible Benefits: Accurate and timely reports are available as a result efficiency of the employee increases. Since the application is accessible from anywhere the time in accessing the information is highly reduced. Security would be available from unauthorized users and each users access to the different parts of the application.

1.4 OBJECTIVE:

Implementing online creation, editing of bids by administrator. Implementing viewing, applying for bids by client. Implementing email based registration/password recovery.

1.5 TECHNOLOGY AND LITERATURE REVIEW:

Technology Used:

Sr. NoTypeDescription

1Operating SystemWindows 7

2Technology used in front tierStruts

3

Application Development EnvironmentJSP,JSTL

Tools for DevelopmentEclipse

5

Technology used in back endMy-SQL

Table 1.1 Technologies Used

1.5.1 Technology related to front tier:

-Struts has been used as a front tier technology.

1.5.1.1 Struts Framework:

Struts is an open source framework used for developing J2EE web applications using Model View Controller (MVC) design pattern. It uses and extends the Java Servlet API to encourage developers toadopt an MVC architecture.

1.5.1.2 Description:

Struts is a framework for J2EE which promotes the MVC architectureStruts framework provides three key components:

A request handler provided by the application developer that is used tomap to a particular URI.

A response handler which is used to transfer the control to another resource which will be responsible for completing the response.

A tag library which helps developers to create the interactive form based applications with server pages.

Struts provide you the basic infrastructure for implementing MVC allowing the developers to concentrate on the business logic.MVC Architecture The main aim of the MVC architecture is to separate the business logic and application data from the presentation data to the user. Here are the reasons why we should use the MVC design pattern. They are reusable: When the problems recur, there is no need to invent a new solution; we just have to follow the pattern and adapt it as necessary. They are expressive: By using the MVC design pattern our application becomes more expressive.

1.5.1.3 Framework:

Model: The model object knows about all the data that need to be displayed. It is model who is aware about all the operations that can be applied to transform that object. It only represents the data of an application. The model represents enterprise data and the business rules that govern access to and updates of this data. Model is not aware about the presentation data and how that data will be displayed to the browser. View: The view represents the presentation of the application. The view object refers to the model. It uses the query methods of the model to obtain the contents and renders it. The view is not dependent on the application logic. It remains same if there is any modification in the business logic. In other words, we can say that it is the responsibility of the view's to maintain the consistency in its presentation when the model changes. Controller: Whenever the user sends a request for something then it always go through the controller. The controller is responsible for intercepting the requests from view and passes it to the model for the appropriate action. After the action has been taken on the data, the controller is responsible for directing the appropriate view to the user. InGUIs, the views and the controllers often work very closely together.

Overview of the Struts Framework

The Struts framework is composed of approximately 300 classes and interfaces which are organized in about 12 top level packages. Along with the utility and helper classes framework also provides the classes and interfaces for working with controller and presentation by the help of the custom tag libraries. It is entirely on to us which model we want to choose. The view of the Struts architecture is given below:

The Struts Controller Components:Whenever a user request for something, then the request is handled by the Struts Action Servlet. When the Action Servlet receives the request, it intercepts the URL and based on the Struts Configuration files, it gives the handling of the request to the Action class. Action class is a part of the controller and is responsible for communicating with the model layer. The Struts View Components:The view components are responsible for presenting information to the users and accepting the input from them. They are responsible for displaying the information provided by the model components. Mostly we use the Java Server Pages (JSP) for the view presentation. To extend the capability of the view we can use the Custom tags, java script etc. The Struts model component:The model components provide a model of the business logic behind a Struts program. It provides interfaces to databases or back- ends systems. Model components are generally a java class. There is not any such defined format for a Model component, so it is possible for us to reuse Java code which is written for other projects. We should choose the model according to our client requirement.Fig 1.1 Struts Flow Diagram web.xml: Whenever the container gets start up the first work it does is to check the web.xml file and determine what struts action Servlets exist. The container is responsible for mapping all file requests to the correct action Servlet. A Request: This is the second step performed by the container after checking the web.xml file. In this the user submits a form within a browser and the request is intercepted by the controller. The Controller: This is the heart of the container. Most Struts application will have only one controller that is Action Servlet which is responsible for directing several Actions. The controller determines what action is required and sends the information to be processed by an action Bean. The key advantage of having a controller is its ability to control the flow of logic through the highly controlled, centralized points. struts.config.xml: Struts has a configuration file to store mappings of actions. By using this file there is no need to hard code the module which will be called within a component. The one more responsibility of the controller is to check the struts.config.xml file to determine which module to be called upon an action request. Struts only reads the struts.config.xml file upon start up. Model: The model is basically a business logic part which takes the response from the user and stores the result for the duration of the process. This is a great place to perform the preprocessing of the data received from request. It is possible to reuse the same model for many page requests. Struts provide the Action Form and the Action classes which can be extended to create the model objects. View: The view in struts framework is mainly a jsp page which is responsible for producing the output to the user. Struts tag libraries: These are struts components helps us to integrate the struts framework within the project's logic. These struts tag libraries are used within the JSP page. This means that the controller and the model part can't make use of the tag library but instead use the struts class library for strut process control. Property file: It is used to store the messages that an object or page can use. Properties files can be used to store the titles and other string data. We can create many property files to handle different languages. Business objects: It is the place where the rules of the actual project exist. These are the modules which just regulate the day- to- day site activities. The Response: This is the output of the View JSP object.

Struts embedded onto J2EE:Fig 1.2 Struts with J2EE

1.5.2 Eclipse IDE:

Eclipse is a Java IDE:- Widely regarded as the Java development environment With all the bells and whistles Language-aware editors, views, Refracting support Integrated unit testing and debugging Incremental compilation and build Team development support

Eclipse is an IDE Framework:- Eclipse + JDT = Java IDE First class framework for Java Language aware editor Incremental build Integrated debugging Eclipse + CDT = C/C++ IDE First class framework for C/C++ Language aware editor Refactoring, search

Eclipse is a Tools Framework:- Extensibility through Struts implementation Plug-ins make Eclipse whatever you need it to be Focus on developing a universal platform of frameworks and exemplary tools Tools extend the Eclipse platform using plug-ins Business Intelligence and Reporting Tools (BIRT) Eclipse Communications Framework (ECF) Web Tools Project (WTP) Eclipse Modelling Framework (EMF) Graphical Editing Framework (GEF) Test and Performance Tooling Project (TPTP)

Eclipse is a Application Framework:- Remove the IDE elements, Java language support, team development support, and youre left with a pretty comprehensive general application framework Support for multiple platforms Linux, Windows, Mac OSX, UNIX, embedded Rich widget set, graphics Native-OS integration (drag and drop, OLE/XPCOM integration)1.5.3 Front-End Technologies:

1.5.3.1 JSP: Java Server Pages or JSP for short is Sun's solution for developing dynamic web sites.JSP provide excellent server side scripting support for creating database driven web applications. JSP enable the developers to directly insert java code into jsp file, this makes the development process very simple and its maintenance also becomes very easy. JSP pages are efficient, it loads into the web servers memory on receiving the request very first time and the subsequent calls are served within a very short period of time.Java is known for its characteristic of "write once, run anywhere." JSP pages are platform independent. Your port your .jsp pages to any platform.1.5.3.2 Freemarker:FreeMarker is a template engine: a generic tool to generate text output (anything from HTML to autogenerated source code) based on templates. It's a Java package, a class library for Java programmers. It's not an application for end-users in itself, but something that programmers can embed into their products.FreeMarker is designed to be practical for the generation of HTML Web pages, particularly by servlet-based applications following the MVC (Model View Controller) pattern. The idea behind using the MVC pattern for dynamic Web pages is that you separate the designers (HTML authors) from the programmers. Everybody works on what they are good at. Designers can change the appearance of a page without programmers having to change or recompile code, because the application logic (Java programs) and page design (FreeMarker templates) are separated. Templates do not become polluted with complex program fragments. This separation is useful even for projects where the programmer and the HTML page author is the same person, since it helps to keep the application clear and easily maintainable.Although FreeMarker has some programming capabilities, it is not a full-blown programming language like PHP. Instead, Java programs prepare the data to be displayed (like issue SQL queries), and FreeMarker just generates textual pages that display the prepared data using templates.

Fig1.3 Freemarker overview

FreeMarker is not a Web application framework. It is suitable as a component in a Web application framework, but the FreeMarker engine itself knows nothing about HTTP or servlets. It simply generates text. As such, it is perfectly usable in non-web application environments as well. Note, however, that we provide out-of-the-box solutions for using FreeMarker as the view component of Model 2 frameworks such as Struts.FreeMarker is Free, released under a BSD-style license. It is OSI Certified Open Source Software. OSI Certified is a certification mark of the Open Source Initiative.

1.5.4 Data Access Technology:

1.5.4.1 Hibernate:

Hibernate is a high-performance Object/Relational persistence and query service which is licensed under the open source GNU Lesser General Public License (LGPL) and is free to download. Hibernate not only takes care of the mapping from Java classes to database tables (and from Java data types to SQL data types), but also provides data query and retrieval facilities.Hibernate is an Object-Relational Mapping(ORM) solution for JAVA and it raised as an open source persistent framework created by Gavin King in 2001. It is a powerful, high performance Object-Relational Persistence and Query service for any Java Application.Hibernate maps Java classes to database tables and from Java data types to SQL data types and relieve the developer from 95% of common data persistence related programming tasks.Hibernate sits between traditional Java objects and database server to handle all the work in persisting those objects based on the appropriate O/R mechanisms and patterns.

Fig 1.4 Hibernate Architecture

Hibernate uses various existing Java APIs, like JDBC, Java Transaction API(JTA), and Java Naming and Directory Interface (JNDI). JDBC provides a rudimentary level of abstraction of functionality common to relational databases, allowing almost any database with a JDBC driver to be supported by Hibernate. JNDI and JTA allow Hibernate to be integrated with J2EE application servers.

1.5.5 Back-End Technology:1.5.5.1 MySQL:

MySQL, the most popular Open Source SQL database management system, is developed, distributed, and supported by MySQL AB. MySQL AB is a commercial company, founded by the MySQL developers. It is a second generation Open Source company that unites Open Source values and methodology with a successful business model. The MySQL Web site (http://www.mysql.com/) provides the latest information about MySQL software and MySQL AB. MySQL is a database management system. A database is a structured collection of data. It may be anything from a simple shopping list to a picture gallery or the vast amounts of information in a corporate network. To add, access, and process data stored in a computer database, you need a database management system such as MySQL Server. Since computers are very good at handling large amounts of data, database management systems play a central role in computing, as standalone utilities, or as parts of other applications. MySQL is a relational database management system. A relational database stores data in separate tables rather than putting all the data in one big storeroom. This adds speed and flexibility. The SQL part of MySQL stands for Structured Query Language. SQL is the most common standardized language used to access databases and is defined by the ANSI/ISO SQL Standard. The SQL standard has been evolving since 1986 and several versions exist. In this manual, SQL-92 refers to the standard released in 1992, SQL:1999 refers to the standard released in 1999, and SQL:2003 refers to the current version of the standard. We use the phrase the SQL standard to mean the current version of the SQL Standard at any time. MySQL software is Open Source. Open Source means that it is possible for anyone to use and modify the software. Anybody can download the MySQL software from the Internet and use it without paying anything. If you wish, you may study the source code and change it to suit your needs. The MySQL software uses the GPL (GNU General Public License), http://www.fsf.org/licenses/, to define what you may and may not do with the software in different situations. If you feel uncomfortable with the GPL or need to embed MySQL code into a commercial application, you can buy a commercially licensed version from us. See the MySQL Licensing Overview for more information (http://www.mysql.com/company/legal/licensing/). The MySQL Database Server is very fast, reliable, and easy to use. If that is what you are looking for, you should give it a try. MySQL Server also has a practical set of features developed in close cooperation with our users. You can find a performance comparison of MySQL Server with other database managers on our benchmark page. MySQL Server was originally developed to handle large databases much faster than existing solutions and has been successfully used in highly demanding production environments for several years. Although under constant development, MySQL Server today offers a rich and useful set of functions. Its connectivity, speed, and security make MySQL Server highly suited for accessing databases on the Internet. MySQL Server works in client/server or embedded systems. The MySQL Database Software is a client/server system that consists of a multi-threaded SQL server that supports different back ends, several different client programs and libraries, administrative tools, and a wide range of application programming interfaces (APIs). We also provide MySQL Server as an embedded multi-threaded library that you can link into your application to get a smaller, faster, easier-to-manage standalone product. A large amount of contributed MySQL software is available. It is very likely that your favorite application or language supports the MySQL Database Server. The official way to pronounce MySQL is My EssQue Ell (not my sequel), but we do not mind if you pronounce it as my sequel or in some other localized way.

CHAPTER 2 PROJECT MANAGEMENT

2.1: Feasibility Study:2.1.1 Technical Feasibility:

Amidst, technical analysis evaluates technical merits of the system at the same time collection additional information about performance, reliability, maintainability and productivity. In some cases, an analysis step also includes research and design.Technical RequirementHow Accomplished?

Back endMySQL Server 5.5.8, J2EE,Struts

Front endJSP

Local Host-----

ServerApache Tomcat 6.0

Documentation ToolsMicrosoft Office Tools

Communication ToolsIP Call Lines, Remote Desktop sharing etc

Table 2.1 Technical Feasibility2.1.2 Time FeasibilityTime schedule plays a vital role in clients project. If the project is not delivered at due time then it can cause a project failure. Hence before undertaking particular project high concentration should be focused on the time management by project manager. It should also be taken care that the staff, which is related with the project, should be able to complete the technical tasks in given schedule. If the current staff is not sufficient in completing the project tasks, project manager should allot more technical persons.

2.1.3 Operational FeasibilityThe users of the client organization should be able to operate the application easily, for whom the application is developed, to gain the advantages of the application. This demands good user interface. During the application development process prototypes of the application are developed initially and are shown to client, so the client can give some additional changes as per their requirements. As the application is developed and modified as per the comments of the users, there is very little possibility that there will be resistance from end users.2.1.4 Implementation FeasibilityImplementation feasibility is concerned with specifying external resources and softwares that will successfully satisfy the user requirements. We have given more importance to external resources and configuration of the system rather than the actual map of the hardware. Financial consideration was also considered at this stage.2.2: PROJECT PLANNING:2.2.1: Project Development Approach and Justification:Most software teams still use awaterfallprocess for development projects. Taking an extreme waterfall approach means that you complete a number of phases in a strictly ordered sequence: requirements analysis, design, implementation/integration, and then testing. You also defer testing until the end of the project life cycle, when problems tend to be tough and expensive to resolve; these problems can also pose serious threats to release deadlines and leave key team members idle for extended periods of time.In practice, most teams use aiterativewaterfallapproach, breaking the project down into two or more parts, sometimes called phases or stages. In addition, this approach allows you to prototype areas you deem risky or difficult and to use feedback from each stage to modify your design. This article will explore the improvements that an "iterative" approach to the software development process offers over the traditional waterfall approach.

Iterative Waterfall model:-Fig 2.1: Iterative model.

The four basic process areas of the iterative model are: The requirements phase, in which the requirements for the software are gathered and analyzed. Iteration should eventually result in a requirements phase that produces a complete and final specification of requirements. A design phase, in which software architecture and components to meet the requirements are designed; this may be a new design, or an extension of an earlier design. An Implementation phase, when the software is coded, integrated and tested. A review phase, in which the software is evaluated, the current requirements are reviewed, and changes and additions to requirements proposed.Advantages of the Iterative Model:A comparison of the traditional life cycle to the iterative one reveals that the iterative model is more flexible, as it presents more opportunities to introduce change. In the iterative model, change is an acknowledged, integral component. Rework is accepted, but should diminish rapidly; the changes should be less widespread as the architecture stabilizes and ideally, the hard issues are being resolved early. The embrace of source code revision has a profound and positive impact on software quality. When errors are found, they can be corrected at best real-time, at worst in the next iteration. Contrast this to the waterfall model, where software is often released with major defects--because it is too late in the lifecycle to rewrite, or redesign components.2.2.2: Project Plan:In managing any project the whole plan of the project is made before its actual implementation. The plan of the project helps team to work as per the schedule and helps to successfully complete the project.To plan a project the main requirements that are calculated are cost, duration, effort, scheduling, manpower, resource allocation, risk management etc.The effort and duration involved were calculated in the COCOMO model which utilized semidetached type of model for its calculation. Proper management of the whole project was done in order to compensate with the duration which was less than estimated. The cost involved was only on the resources and the other charges like paying the developers was not involved as trainees made it.Thus, the whole project was feasible. The risk management was also handled as it got over in required duration.

2.2.3: Milestones and Deliverables:Every phase has entry and exit criteria. It is on the basis of this criteria the developers move ahead into next phase. Hence, such milestones and deliverables are essential part to keep the whole project team in proper track for completing the project in time. It is this milestone which helps the team members to actually realize that a particular phase of the project has been completed. Sometimes developers jump to other phase without the knowledge that initial phase are incomplete which results in the problem in the final phases of the project.

ActivitiesMilestoneFeasibility studyFeasibility reportRequirement analysisuser requirementDesign studyarchitectural designRequirement specificationsystem requirementImplementationcoding detailsTesting testing report

The application also involves number of milestones that could enable the project team to find the criteria to enter next phase: 2.2.4: Roles and Responsibilities:To keep a project smooth-going a proper team structure has to be maintained. As few members were involved in the whole team each of them had to perform the task as system analyst, project management, coder, tester, developer, designer etc. as the project proceeded through its different phases. This helped each one to develop all kinds of skills in all the phases.

2.2.5: Group Dependencies:

The team structure depends on the management style of the organization, the number of people in the team, their skill levels and the problem difficulty.Considering all these points our Team organization was Democratic Decentralized. In which there is no team leader. Decision on the problems was made by group consensus. Communication among the team members was horizontal. 2.3: PROJECT SCHEDULING:Scheduling the project tasks is an important project planning activity. It involves deciding which tasks should be taken up and when. In order to schedule the project activities, a software project manager needs to do the following: Identify all the tasks needed to complete the project. Break down large tasks into small activities. Determine dependencies amongst different activities. Establish most likely estimates for the time durations necessary to complete the activities. Allocate resources to activities. Plan the starting and ending dates for various activities.

Fig 2.2. Gantt Chart

CHAPTER 3SYSTEM REQUIREMENTS STUDY

3.1: STUDY OF CURRENT SYSTEM In Past, there is no any process online for issue a new tender. But all process work offline on paperwork. If any new tender is issue than organization gives an advertisement in a website, newspaper or any other resources. Newspaper contains only few detail of tender, if any more detail required than contractor physically visited the organization .All process from issue a new tender to allocate a tender to the contractor is on paper work. So the tenders and corrigendums, contractors Portfolio and bid details are managed manually. No online registration and subscription provided.

3.2: PROBLEM AND WEAKNESS OF CURRENT SYSTEMThe bidding process is completely manual and so very time consuming. There is no provision for online bidding. The tenders have to download the documents from the website while the rest of the process is manual.The manual process is not very secure. In the new system, the passwords are generated automatically so only the members know their passwords. Retrieving information is slower as everything is managed manually. Since, everything is managed manually; there might be a lack of accuracy.

3.3: USER CHARACTERISTICS In our application there are 3 types of users which are as below. Visitor. Client. Admin.

3.4: HARDWARE AND SOFTWARE REQUIREMENTSHardware Required:Application Server and Database Server

Pentium IV PC with 2.4 Ghz CPU

1024 MB of RAM

80 GB Hard Disk

CD read/write

17'' Flat screen color graphics Monitor

Key Board

Mouse

LAN connectivity by 10/100 MBPS Ethernet card/Internet Connectivity

For Client Machine

Pentium II/III/IV PC

Min. 64 MB of RAM (Recommended :256 MB)

Key Board

Mouse

LAN connectivity by 10/100 MBPS Ethernet card/Internet Connectivity

Table 3.1: Hardware Required.

Software Required:Java Runtime Environment (1.5 and above).

3.5: CONSTRAINTS

3.5.1: Regulatory Policies

As per the Company's policy any developer has to maintain the Coding Standards. Also each and every user should maintain the subversion and commit the modification with appropriate comment so to have track of work and also of the code modification.From the clients perspective: Developer should use well known technology. Developer should use well known coding standards.

3.5.2: Hardware Limitations

The hardware limitation is very low. The configuration of the client's PC should be high memory wise.From the clients perspective: Client is having required system configuration to run the system.

3.5.3: Interfaces to other Applications

There is no application using this application as an interface so-far.

3.5.4: Parallel Operations

There are no parallel operations as such executing during the operation of the current application.

3.5.5: Higher Order Language Requirements

No high order language is required as such. Java language is the only language used in the application. If there is some need to use then we can use that easily.

3.5.6 Reliability Requirements

Reliability requirements of the system are one of the prime ones in the list. The system needs to be highly reliable in terms of performance but at this stage where the complete system is far from completion we cannot gauge its reliability. All we could do is to make the individual module we have developed to be as reliable as possible.

3.5.7: Criticality of the Application:

Criticality means any occurrence of miss operating of the system or any accidental event in software which can damage the resources of software as well as hardware.As per my knowledge there is no criticality in our Application.

3.5.8: Safety and Security Considerations

The main concern for the safety is that only the users registered on this site should be able to access the tendersMoreover the pages to manage the working capital should only be accessible to the DataSoft employees having admin rights to the system.Both these concerns have been attended to by using various measures.

3.6 ASSUMPTIONS AND DEPENDENCIES:

The following assumptions have been made during the development of the advance payment system: The admin knows what he is doing while crediting the account or cancelling the credit..

CHAPTER 4 SYSTEM ANALYSIS

4.1: REQUIREMENTS OF NEW SYSTEM4.1.1 Use Case Diagram

Fig 4.1. Use Case Diagram

4.1.2 System Requirements

GeneralAn e-Tendering System (or Electronic Tendering System) facilitates the complete tendering process the entire tender and the corrigendum details can be viewed. Also the tender notices, tender documents, corrigendum notices can be downloaded from the website. It involves online bidding with Client Details.

Purpose

Deleting and Modification of existing records update the table accordingly. Table layouts are designed in such a way such that unnecessary duplication of data is avoided. Thus effectively reducing the total amount of data storage required data in a large mass of data. Java environment provides the user with graphical / visual interface. Reports have been improvised with the facility for individual and group items separately. Facility to add, modify, delete, update etc. are provided in the same form so that the user does not have to switch over from one form to another form to the same.

4.2 SYSTEM REQUIREMENTS SPECIFICATIONThe system shall do following activity.R1. LoginInput : username and passwordOutput : successful or not Processing : system checks database and give correct output based upon thatR2. Search tenderInput : tender nameOutput : tender detailsProcessing : system search tender database and provide its detailsR3. LogoutProcessing: user logoutR4. Add categoryInput: user add category dataOutput: successfully category addProcessing: system store category data into database and provide messageR5. FAQInput : user press questionOutput : answer of that question providedR6. Forgot passwordInput : user give proper email data or security questionOutput : password of that user in emailProcessing : system match user data with database and provide data based upon that.R7. InquiryInput : user provide email id and inquiryOutput : get inquiry R8. PortfolioInput : user provide dataOutput : portfolio updatedR9. Corrigendum AddInput : corrigendum dataOutput : corrigendum addedR10. Download PortfolioInput : download button pressedOutput : save dialog boxR11. Add TenderInput : tender dataOutput : tender addedR12. RegisterInput : user dataOutput : user registeredProcessing : system stores user data in databaseR13. Change passwordInput : user provide previous password and new passwordOutput : password changedR14. Edit TenderInput : replace old data with new user dataOutput : tender details edited.R15. Edit categoryInput : new category dataOutput : category edited

4.3. Features of new system Simplifies payments for purchases. Reduces manual labor.4.4. Navigation Chart

Fig 4.2. Navigation Chart for the website

4.5. SYSTEM ACTIVITY

Fig 4.3. Activity Diagram for Login

4.6 Data Modeling

Fig 4.4. ER Diagram.

4.7 Data Flow Diagram

The data flow diagrams are pictorial or graphical representation of the outline of the system study. The data flow diagram covers all the processes and data storage area which takes place during any transaction in the system. The data flow diagrams are functionally divided into context level, Zero level, and First level and Second level data flow diagrams.Symbols used in DFD: Process: A process done in the system is denoted by this symbol. For example prepare attendance report, pay slip, etc.

External Entity: A source or destination of data which is external to the system.

A data flow: It is packet of data. It may be in the form of document, letter etc.

Data store: Any store data but with no reference to the physical method of storing.

Fig 4.5. Level 0 DFD.

Fig 4.6. Level 1 DFD for Client

Fig 4.7. Level 2 DFD for Client

Fig 4.8. Level 1 DFD for Admin

CHAPTER 5SYSTEM DESIGN

5.1 SYSTEM ARCHITECTURE DESIGN5.1.1 Component Diagram

Fig 5.1. Component Diagram

5.1.4 Deployment Diagram

Fig 5.2. Deployment Diagram

5.2 Data Dictionary

5.1. Table name:- Client Registration

Sr.noField nameData typeSizeConstraintsDescription

1RidAuto inc.-Primary KeyClient id

2CnameVarchar50-Client name

3Company nameVarchar100-Company name

4AddressVarchar255-Address

5Company websiteVarchar50-Company website

6QualificationVarchar30-Qualification

7GradeVarchar5-Grade of company

8GenderVarchar10-Gender

9Contact numberInteger--Contact number

10CityVarchar50-City name

11Email id (user name)Varchar50-Email id (username)

12PasswordVarchar25-Password

13Confirm passwordVarchar25-Confirm password

14Security questionVarchar100-Security question

15Security answerVarchar100-Security answer

5.2. Table Name:- Inquiry

Sr.NoField NameData TypeSizeConstraintsDescription

1I1idAuto Inc.-P.K.inquiry Id

2NameVarchar20-Visitor Name

3Email IdVarchar25-Email Id

5.3. Table Name:- Category:

Sr.NoField NameData TypeSizeConstraintsDescription

1cIdAuto Increment-P.K.Category Id

2CategoryVarchar25-Category Name

5.4. Table Name:-Sub Category:

Sr.NoField NameData TypeSizeConstraintsDescription

1scIdAuto Increment-P.K.Sub Category Id

2cidAuto Increment-F.K.Category Id

3Sub CategoryVarchar30-Sub Category

4DescriptionVarchar100-Sub Category Desc.

5.5. Table Name:-Tender:

Sr.NoField NameData TypeSizeConstraintsDescription

1TIdAuto Inc.-P.K.Tender Id

2Tender NameVarchar100-Tender name

3Loc_workVarchar50Location of Work

4Issue DateDate-Issue Date

5Open DateDate--Open Date

6Closing DateDate--Closing date

7QuotationBig Int20-Quotation

8DescriptionVarchar100-TenderDescription

9Cat_IdInteger-F.K.Category Id

10ScidInteger-F.K.SubCategory Id

5.6. Table Name:-Corrigendum:

Sr.NoField NameData TypeSizeConstraintsDescription

1CIdAuto Inc.-P.K.Corrigendum Id

2CrnameVarchar25-Corrigendum name

3Cr DateDate--Corrigendum Date

4Cr DescriptionVarchar100-Corrigendum Description

5Tender IdInteger-F.K.Tender Id

7. Table Name:-F.A.Q:

Sr.NoField NameData TypeSizeConstraintsDescription

1FIdAuto Inc.-P.K.Frequently Asked Question Id

2F.A.QVarchar255-Frequently Asked Question

3ANSVarchar255-Frequently Asked Questions Answer

5.8. Table Name:-Portfolio:

Sr.NoField NameData TypeSizeConstraintsDescription

1PIdAuto Inc.-P.K.Portfolio Id

2RidInteger-F.K.Client Id

3Tender IdInteger-F.K.Tender Id

4File PathVarchar100-Document Path

5ExperienceInteger--Experience of Work

6QuotationBig Int20-Quotation

Sr.NoField NameData TypeSizeConstraintsDescription

1SIdAuto Increment-P.K.Secuity Id

2Security QuestionVarchar100-Security Question

3Security AnswerVarchar100-Security Answer

5.9. Table Name:-Security:

5.10. Table Name:-Result:

Sr.NoField NameData TypeSizeConstraintsDescription

1Rst_idAuto Increment-P.K.Secuity Id

2Client NameVarchar100-Security Question

3Company NameVarchar100-Security Answer

4E-Mail idVarchar100-Client email id

5QuotationVarchar100-Quotation

6Tender NameVarchar100-Tender Name

5.3 IMPLEMENTED ALGORITHM

In order to test the concept in this study, a generic algorithm was developed. This algorithm was used to rank and sort results so as to get the best bidder. This algorithm considers the three main methods of bid evaluation namely; Technical evaluation, Commercial evaluation and Financial evaluation. This would aid decision-making fervently at the managerial level. This algorithm starts with determining the total weight a given bidder can attain.

The following code snap-shots shows how this algorithm was implemented in the prototype.

//THEN GET EXPERIENCE FROM SUM OF PROJECT PERIODS// THIS REWARDS BIDDER WITH MORE EXPERIENCEdisplay="SELECT EXPRIENCE FROM SOLICITATION_DETAILSWHERE CODE="+solicitation+"";rs= stmt.executeQuery(display);rs= stmt.executeQuery(display);while(rs.next()){system_experience=rs.getInt(1);}//whileweight_experience=(period1+period2)/system_experience;

The above code is explained and represented in equation 4.2 below:The system evaluates the weight experience of a bidder based on similar or related projects he has undertaken before. To achieve this, we compare the solicitation details each particular bidder submits as integers in terms of projects a given bidder has undertaken in providing similar or related services as those being tendered. The weight experience therefore, is computed as the sum of period 1 and period 2 divided by the system experience. (We) of (p1 + p2) divided by the system experience (e).

This evaluation assumes that the more projects a bidder has undertaken in the past, themore scores he is likely to attain; thus evaluating competence based on experience in similar or related work. Once the weighted experience is attained, the system evaluates the price (bid cost) andcompares with the system ceiling price for a given tender. The following code-snap shot shows how this evaluation was implemented in the prototype.

//THEN COMPARE BID PRICE WITH SOLICITATION PRICE// THIS REWARDS BIDDER WITH LEAST PRICEdisplay="SELECT PRICE FROM SOLICITATION_DETAILSWHERE CODE="+solicitation+"";rs= stmt.executeQuery(display);rs= stmt.executeQuery(display);while(rs.next())

{system_price=rs.getInt(1);}//whileweight_price=system_price/bid_price;

Before any procurement is initiated in government departments, market prices are explored and inflation factors computed, this is ideally done to ensure viability of a bid commercially. At the time of tendering for goods or services, there is a minimum price a bidder must offer for the product in question in this case referred to as the system (ceiling) price. The lower the price as compared with the ceiling price, the more scores one attains. In this study, it was assumed that if we get a bigger price difference, the more we save on the resources allocated to that vote given the budget deficits apparent in the ministry. In this algorithm therefore, weight price is expressed as a difference of system price and bid price. Hence the formula:

In which the weight price (Wp) is expressed as a difference of the system price (Sp) and the bid price (Bp). After attaining the price margin offered, we evaluate the period in which the bidder will be able to accomplish a tender. The system is pre-set with an estimated time within which a good or service can be delivered. The more the bidder offers a completion period far away from the expected time, the least score he gets and vice versa. This is displayed in the following code snap-shot below.

//THEN COMPARE BID PERIOD WITH SOLICITATION PERIOD// THIS REWARDS BIDDER WITH LEAST COMPLETION PERIOD

display="SELECT PERIOD FROM SOLICITATION_DETAILSWHERE CODE="+solicitation+"";rs= stmt.executeQuery(display);rs= stmt.executeQuery(display);while(rs.next()){system_period=rs.getInt(1);}//whileweight_period=system_period/period;

CHAPTER 6 IMPLEMENTATION

6.1 IMPLEMENTATION ENVIRONMENT:

Fig 6.1 Implementation Environment

Technologies Used:FrameworkApache struts has been used as the framework for development. Apache Strutsis anopen-sourceweb application frameworkfor developingJava EEweb applications. It uses and extends theJava ServletAPIto encourage developers to adopt amodelviewcontroller(MVC) architecture.Front-end TechnologyFreemarkerhas been used to generate the front end of the application.FreeMarkeris aJava-basedTemplate Enginefocusing on theMVCsoftware architecture. Although it's mostly used forservlet-based web application development, it can be used for any other kind of text output, such as generatingCSS, Java source code, etc. UnlikeJSP, it is not dependent on the servlet architecture or onHTTP. Thus it can be used for non-web tasks as well. FreeMarker isfree software.Data Access TechnologyHibernate has been used as the bridge between the system and the back end.Hibernateis anobject-relational mapping(ORM) library for theJavalanguage, providing aframeworkfor mapping anobject-orienteddomain modelto a traditionalrelational database. Hibernate solvesobject-relational impedance mismatchproblems by replacing directpersistence-related database accesses with high-level object handling functions.Back-end technologyMySQL has been used as the back-end for managing the database.MySQLis (as of 2008) the world's most widely used[5][6]open sourcerelational database management system(RDBMS)[7]that runs as a server providing multi-user access to a number of databases.6.2 CODING STANDARDS:First of all, analysis of the old application is done. The analysis document is made to reflect the analysis done and understand the flow of the particular webpage. After getting the verification from the guide we proceed with designing part. It starts by preparing the design document. The coding phase starts as soon as the design phase gets over. The input to the coding phase is the design document. After the coding every module is identified individually. After committing the work done i.e. integrating with the application it is tested. Thus objective of this phase is to transform design of a system as in the document to high level language code and to unit this code.For Coding different coding standards and coding guidelines are defined. Coding standards are well-defined for all organizations. Coding standards are some suggestions which make the code better. To check whether coding standards have been followed or not code reviews are carried out.

Reasons for using the coding standards are Uniform distribution Sound understanding Encourages Good programming skills.

6.3SOME IMPLEMENTED CLASSES AND THEIR FUNCTIONS:

6.4 SCREENSHOTS:Home Page:

This is the home page cum login page of E-Tendering System.

Password Sent via mail:

If the user forgets the login password, it can be retrieved through his registered email id provided during registration.Tender View Page:

If the visitor wants to see the which are the tenders going on, they can see the listing of it.

Search Tender:

If the Client wants to search the Tender, he can search by category-wise.

Portfolio Upload Page:

If client wants to bid some Particular tender he can upload the portfolio from this page.Allocate Tender Page:

Admin can view the allocated tender details.

After Tender Allocation, client gets an email alert:

CHAPTER7. TESTING

7.1: TESTING PLAN:

Correctness is the degree to which a software system performs its required function.

Correctness is the extent to which a software system is free from any faults.

Software Testing is the critical element of software quality assurance and represents the ultimate review of specifications, design and coding. Testing represents an interesting analogy for the software. The testing phase involves testing of the system using various test data. Preparation of the test data plays a vital role in the system testing.

After preparing the test data, the system under study is tested using those data. Errors found were corrected and corrections were recorded for future references. Thus, a series of testing is performed on the system before it is ready for implementation

The development of the software system involves a series of production activities where opportunities for injection of human fallibility are enormous. Errors may begin to occur at very inception of the process where the objectives may be erroneously or imperfectly specified as well as in the later design and development stages. Because of human inability to perform and communicate with perfection, software development is followed by a quality assurance activity. Start Unit testingIntegration testingSuccessSystem TestingSuccessSuccessUser testingSuccessSign OffEnd

Fig 7.1 Testing steps

7.2: TESTING STRATEGY:

A Correct system must accomplish the following:

Compute correct results. Operate safely and cause the system containing the software to operate safely. Perform the tasks required by the system containing the software to operate safely. Perform the tasks required by the system containing the software, as explained in the software applications. Achieve these goals for all inputs. Recognize inputs outside its domain.

We shall see that satisfying these pre-requisites depends on a variety of things. One of these things is to provide clear and correct software specifications.

Testing like development can easily become task that perpetuates itself. As such, the application specifications and subsequently the test plan, should define the minimum acceptable quality to ship the application.

Testing for Performance:After you have identified specific performance requirements, you can begin testing to determine whether the application meets those requirements. Performance testing presumes that the application is functioning, stable, and robust. As such, it is important to eliminate as many variables as possible. For example, bugs in the code can create the appearance, performance problem or even mask performance problem.

Testing for Reliability:Testing for reliability is about exercising an application so that failures are discovered and removed before the system is deployed because the different combinations of pathways through an application are high; it is unlikely that you can identify all potential failures in complex application.

7.3: TESTING METHODSSoftware testing methods are traditionally divided into black box testing and white box testing. These two approaches are used to describe the point of view that a test engineer takes when designing test cases.Black box testingBlack box testing treats the software as a "black box," without any knowledge of internal implementation.Black box testing methods include:Equivalence partitioning:-Equivalence partitioning is a software testing technique in which test cases are designed to execute representatives from each equivalence partition, i.e. a partition of input values undergoing similar treatment. In principle, test cases are designed to cover each partition at least once. To reduce the number of test cases to a necessary minimum. To select the right test cases to cover all possible scenarios. Boundary value analysis:-Boundary value analysis is a software testing design technique used to determine test cases covering off-by-one errors.All-pairs testing:-All-pairs testing or pairwise testing is a combinatorial software testing method that, for each pair of input parameters to a system (typically, a software algorithm), tests all possible discrete combinations of those parameters. Using carefully chosen test vectors, this can be done much faster than an exhaustive search of all combinations of all parameters, by "parallelizing" the tests of parameter pairs. The number of tests is typically O(nm), where n and m are the number of possibilities for each of the two parameters with the most choices.

Fuzz testing:-Fuzz testing; fuzzing, Robustness Testing or Negative Testing is a software testing technique that provides random data ("fuzz") to the inputs of a program. If the program fails (for example, by crashing, or by failing built-in code assertions), the defects can be noted. The great advantage of fuzz testing is that the test design is extremely simple, and free of preconceptions about system behavior.

Model-based testing:-Model-based testing is software testing in which test cases are derived in whole or in part from a model that describes some (usually functional) aspects of the system under test (SUT).Traceability matrix:-A traceability matrix is a table that correlates any two baseline documents that require a many to many relationship to determine the completeness of the relationship. It is often used with high-level requirements (sometimes known as marketing requirements) and detailed requirements of the software product to the matching parts of high-level design, detailed design, test plan, and test cases.Exploratory testing:-Exploratory testing is a method of manual testing that is concisely described as simultaneous learning, test design and test execution. CemKaner, who coined the term in 1983, now defines exploratory testing as "a style of software testing that emphasizes the personal freedom and responsibility of the individual tester to continually optimize the quality of his/her work by treating test-related learning, test design, test execution, and test result interpretation as mutually supportive activities that run in parallel throughout the project."

Specification-based testing:-Specification-based testing aims to test the functionality of software according to the applicable requirements. Thus, the tester inputs data into, and only sees the output from, the test object. This level of testing usually requires thorough test cases to be provided to the tester, who then can simply verify that for a given input, the output value (or behavior),either "is" or "is not" the same as the expected value specified in the test case. Specification-based testing is necessary, but it is insufficient to guard against certain risks. Advantages and disadvantages The black box tester has no "bonds" with the code, and a tester's perception is very simple: a code must have bugs. Using the principle, "Ask and you shall receive," black box testers find bugs where programmers don't. But, on the other hand, black box testing has been said to be "like a walk in a dark labyrinth without a flashlight," because the tester doesn't know how the software being tested was actually constructed. That's why there are situations when (1) a black box tester writes many test cases to check something that can be tested by only one test case, and/or (2) some parts of the back end are not tested at all. Therefore, black box testing has the advantage of "an unaffiliated opinion," on the one hand, and the disadvantage of "blind exploring," on the other. White box testingWhite box testing, by contrast to black box testing, is when the tester has access to the internal data structures and algorithms (and the code that implement these)Types of white box testing The following types of white box testing exist: api testing - Testing of the application using Public and Private APIs. code coverage - creating tests to satisfy some criteria of code coverage. For example, the test designer can create tests to cause all statements in the program to be executed at least once. fault injection methods. mutation testing methods. static testing - White box testing includes all static testing. Code completeness evaluation White box testing methods can also be used to evaluate the completeness of a test suite that was created with black box testing methods. This allows the software team to examine parts of a system that are rarely tested and ensures that the most important function points have been tested.Two common forms of code coverage are: function coverage, which reports on functions executed And statement coverage, which reports on the number of lines executed to complete the test. They both return coverage metric, measured as a percentage.Grey Box TestingIn recent years the term grey box testing has come into common usage. This involves having access to internal data structures and algorithms for purposes of designing the test cases, but testing at the user, or black-box level. Manipulating input data and formatting output do not qualify as "grey-box," because the input and output are clearly outside of the "black-box" that we are calling "the software under test." (This distinction is particularly important when conducting integration testing between two modules of code written by two different developers, where only the interfaces are exposed for test.) Grey box testing may also include reverse engineering to determine, for instance, boundary values or error messages.Acceptance testingAcceptance testing can mean one of two things:A smoke test is used as an acceptance test prior to introducing a build to the main testing process. Acceptance testing performed by the customer is known as user acceptance testing (UAT). Regression TestingRegression testing is any type of software testing that seeks to uncover software regressions. Such regressions occur whenever software functionality that was previously working correctly stops working as intended. Typically regressions occur as an unintended consequence of program changes. Common methods of regression testing include re-running previously run tests and checking whether previously fixed faults have re-emerged.Non Functional Software TestingSpecial methods exist to test non-functional aspects of software.Performance testing checks to see if the software can handle large quantities of data or users. This is generally referred to as software scalability. This activity of Non Functional Software Testing is often times referred to as Load Testing. Usability testing is needed to check if the user interface is easy to use and understand. Security testing is essential for software which processes confidential data and to prevent system intrusion by hackers. Internationalization and localization is needed to test these aspects of software, for which a pseudo localization method can be used. In contrast to functional testing, which establishes the correct operation of the software (correct in that it matches the expected behavior defined in the design requirements), non-functional testing verifies that the software functions properly even when it receives invalid or unexpected inputs. Software fault injection, in the form of fuzzing, is an example of non-functional testing. Non-functional testing, especially for software, is designed to establish whether the device under test can tolerate invalid or unexpected inputs, thereby establishing the robustness of input validation routines as well as error-handling routines. Various commercial non-functional testing tools are linked from the Software fault injection page; there are also numerous open-source and free software tools available that perform non-functional testing.

7.4TEST CASESTest cases for LoginTable 7.1 Test Cases for LoginModule Description: LoginVersion#:1.1

Module ID:Test Case Description: Verifying Functionality of Login

Type of Testing: Black Box

Sr.NoPurposeInput Expected OutputActual OutputResults

1Successful LoginCorrect URLLogin successAs expectedPass

2Login FailedWrong URLUnauthorized accessAs expectedPass

Test cases for RegistrationTable 7.2 Test Cases for RegistrationModule Description: RegistrationVersion#:1.1

Module ID:Test Case Description: Verifying Functionality of new user registration and validation.

Type of Testing: Black Box

Sr.NoPurposeInput Expected OutputActual OutputResults

1Successful RegistrationProper personal detailsAccount created and password sent to email.As expectedPass

2Successful RegistrationPassword should be alphanumeric and char >=6Account created and password sent to email.As expectedPass

Test cases for Tender ManagementTable 7.3 Test Cases for Tender ManagementModule Description: Manage Version#:1.1

Module ID:Test Case Description: Verifying Functionality of Tender management

Type of Testing: Black Box

Sr.NoPurposeInput Expected OutputActual OutputResults

1Create TenderTender details and minimum amountTender CreatedAs expectedPass

2View TenderSelect appropriate tenderRelevant tenderAs expectedPass

3CorrigendumView tender changes if anyCorrigendum detailsAs expectedPass

4Search tenderTender CategoryRelevant tenderAs expectedPass

5Portfolio uploadTender details with price > min.Bid SuccessfulAs expectedPass

6Forgot PasswordUsername and Security questionPassword sent to emailAs expectedPass

7.5 TESTING SCREENSHOTSClient side Validation :User Login Validation Page:

If the user does not enter the user E-mail id, password and so login failed.

If the user enters the user E-mail id, password which is wrong it would display an error as login failed.

Registration Page Validation Page:

In the registration page all fields are necessary. If User will not fill any of the field so registration will not confirmed.

Forgot Password Validation Page:

If the client wants to get back the Password then he should fill up the valid information. Change Password Validation:

If the client wants to change the password then fill the valid information.

CHAPTER 8 CONCLUSION AND FUTURE EXTENSIONS

8.1CONCLUSION:

The E-Tendering System has been developed by me through the guidance of our internal guide and referring certain books and browsing some sites. During this period of five months, I learned how to work in a professional environment. I worked sincerely and with camaraderie. I also learnt about the current requirements of IT field regarding the work force. This project taught me to work like professionals. In the initial phase of my project, I was feeling like a ship without radar. But thanks to all those people who guided me so well that I could finish my project satisfactorily. They showed me the right direction and enabled me to complete my work. I cannot find words to express my gratitude towards these personalities. But as nothing is perfect, there are also some limitations in my project. There is always a scope of improvement and new versions can be developed.Conclusion And Future Extension

I would like to thank the project guide and all those who extended all their support and helped me finish this project successfully.

5The future enhancements that can be done are to solve these limitations:

8.2.FUTURE ENHANCEMENT:

Edit bid facility could be added in the bidding module.

Bidding Payment, Tender Fees.

Mobile SMS Alert to Client regarding Tenders could be provided.Conclusion And Future ExtensionLimitation & Future Enhancement

DDU (Faculty of Tech., Dept. of IT)117

REFERENCES

Books Writing Enterprise Applications with Java 2 SDK, Enterprise Edition by Monica Pawlan Java Bible2nd Edition by John Fronckowiak, Aaron E. Walsh J2EE: The complete Reference by James Keogh

Web References http://www.roseindia.net/struts/ http://www.vaannila.com/struts/struts-tutorial/struts-tutorial.html http://wiki.apache.org/struts/StrutsTutorials http://viralpatel.net/struts http://www.egov.com

Tasks

1

ID

Task Name

Start

Finish

Duration

Access channel with encrypted URL

Login SuccessfulLogin FailedShow Home PageShow Unauthorised access pageAdmin

Manage

Category

Manage

Cat_id

Cat_Name

Subcategory

Cat_id

Subcat Name

Sucat_id

Subat_Desc

Security

Manage

Sec_id

Sec_Que

IssueTender

Tender

Tender_id

Open Date

TenderName

Close Date

Description

Cat_id

Subcat_id

Location

Issue Date

Quotation

View Portfolio& Allocate Tender

Portfolio

P_id

File Path

Regst_id

Tender_id

Quotation

Expereince

Manage

F.A.Q

Faq_ans

Faq_id

Faq_que

Manage

Corrigendum

Crg_id

T_id

Crg_Name

Crg_Desc

Crg_Date

Reply

Inquiry

Inquiry

Inq_id

Inquiry

E_mail id

Search & View Tender

Client

Can View

Can Place

Can View

Can Upload

1

M

1

M

1

M

1

M

1

M

1

M

1

M

1

M

M

M

M

M

M

M

M

M

E-Tendering System

Visitors

Admin

Client

Response

Response

Response

Visit site,do inquiry

Seach Tender,Bid Render & upload portfolio

Manage Tender and allocate tender,reply inquiry

Client

1.0Login Process

Registration

2.0Tender Process

Portfolio

3.0SearchTender Process

Tender

4.0Corrigendum Process

Corrigendum

Request Corrigendum

5.0Inquiry Process

Inquiry

Ask Inquiry Question

6.0ChangePassword

Registration

7.0Logout Process

Request For Login

Successfully Login

Get Details

Bid Tender

Store Bid Details

Get Acknowledgement

Search Tender

View Tender

Request View

Get Tender Details

Request View

Get Corrigendum Details

View Corrigendum

Store Inquiry Data

Request For Update Password

Successfully Updated

Update Password

Password Updated

Request For Logout

Successfully Logout

Client

3.0.1Search Tender

Tender

3.0.2Typewise Search

3.0.3Bid Tender andUpload portfolio

Portfolio

Get data categorywise

Client search Tender

Get Data

Search Tender Categorywise

After Searching Tender client can bid and upload portfolio

Store bid and portfolio

Admin

1.0Login Process

Registration

2.0Category Process

Category

3.0SubcategoryProcess

Subcategory

4.0Corrigendum Process

Corrigendum

5.0Tender Process

Tender

6.0F.A.QProcess

FAQ

10.0LogoutProcess

Request For Login

Successfully Login

Get Details

Add Category

Store Category Data

Successfully Add

Add Subcategory

Successfully Add

Store Subcategory Data

Get Detail

Store Corrigendum Data

Get Corrigendum Details

Add Corrigendum

View Corrigendum

Issue New Tender

View Issue New Tender

View or Insert FAQ

Successfully done

Store FAQ Data

Get FAQ Data

Request For Logout

Successfully Logout

Get Detail

Store Data

Get Tender Data

7.0Inquiry Process

Inquiry

View Inquiry

Successfully Mail To Client

Get Data

8.0PortfolioProcess

Result

View Portfolio

View Allocate Tender

Allocate Tender

Get Data

9.0SecurityProcess

Security

View or Insert Security

Store Data

View Security Question

Get Data

CreditAccountViewDataAdminData acess

JDBC

Component