Vous êtes sur la page 1sur 129

ON LINE BANKING Modules : Supply of Account Information Servicing of Applications and Requests Banking Transactions Customer Care

Chapter Scheme :1. Acknowledgement 2. Certificate of Originality 3. Brief about the organization 4.Introduction to the Problem 5.Introduction to Project. 6. Purpose.

7. Objective. 8. Contribution of Project 9. Analysis. . My Role . Module Description . Methology . Table Description. . Hardware Software Used . Flow Diagram. 10. Problem Definition . Exiting system . Proposed system . Feasibility Study . Request Approval . Optimization . Validation Checks . PERT . GANNT . Object of the proposed 11. Bibliography 12. Screens 13. Code.

ACKNOWLEDGEMENT

I EXPRESS MY DEEP SENSE OF GRATITUDE TO MY PROJECT SUPERVISOR MR. FOR HIS EXPERT GUIDANCE, STIMULATING DISCUSSIONS AS WELL AS CONTINUED IMPETUS THROUGHOUT THE PERIOD OF THIS PROJECT. I ALSO EXPRESS MY SINCERE THANKS TO MR. GAURAV & MR. VENKATESH PROJECT LEADERS OF NET HORIZON FOR THEIR ENCOURAGING SOLICITED ADVICE AND ALL KIND OF HELP EXTENDED DURING THE PERIOD OF THIS PROJECT. I ALSO EXPRESS MY INTIMATE THANKS TO MY FRIENDS . FOR PROVIDING ENOUGH ZEALOUS AND A GOOD DEAL OF HELP. LAST BUT NOT THE LEAST, I AM THANKFUL TO MY ALL OTHER FRIENDS FOR THEIR VALUABLE AND PRECIOUS HELP DURING THIS PROJECT. FINALLY I AM THANKFUL TO ALL THOSE PEOPLE WHO ARE DERECTLY OR INDIRECTLY RELATED WITH THIS PROJECT.

PROJECT

Banking Management System.

By: .. ENR. NO.-..........

PLATFORM USED:-

WINDOWS NT. FRONT END:Swings, Servlet 2.0, JSP. MIDDLE WARE:EJB 1.1.0 BACK END:Oracle 8i Enterprise Edition. Oracle Driver Thin Driver.

CERTIFICATE OF ORIGINALITY
This is to certify that the project titled Banking Management System has been completed by.. Roll No . under my th guidance and supervision during the period from 15 January 2011 to 16th June 2011 and has not been submitted earlier whether to G.B. Pant University of Agriculture & Technology, Pantnagar or to any other institution for partial fulfillment of the requirement for the degree of Master in Computer Applications (MCA).

Signature of the Guide Date:

RM INFOTECH (P) LTD An ISO 9001 :2000 company COMPANY PROFILE A QUALITY SOLUTION COMPANY This is the era of Information Technology. Its significance is vital in our lives because it presents infinite opportunities for growth and development, all this through Internet. A key ingredient for the Internet to be successful is state-of-art net infrastructure to converge different media and sources with integral knowledge and clear concept is very essential. This has been the main motivation for our launching R.M Infotech (P) Ltd. as an intensive unit of Training and Development center. About R.M Infotech (P) Ltd. R.M Infotech (P) Ltd. is a leading company in providing quality solutions in the IT industry. It is an information, training and complete solution providing company bringing high quality services to the clientele. It is proud to have a satisfied clientele of leading Corporate business houses. We are professionally managed company with a vision and mission to provide completes IT solutions to the entrepreneurs. A harmonious combination of man and machine in which man gets precedence over the machine.

DEVELOPMENT-CENTER: R.M Infotech aims at providing complete and Quality Solution to its clients in all spheres of IT activities. Strategic tie-ups with IBM, Compaq, Hewlett-Packard, SUN Microsystems, HCL, Acer, MICROSOFT, Computer Associates, Cisco, 3Com, Nortal Networks, AMP, Mod-Tap and AT&T with a team of highly qualified professionals are the strong points of the organization. Quality being the hallmark of the organization, RM Infotech provides tailored solution and takes on turnkey projects.

OUR CREDENTIALS AS A TRAINING CENTER: RM Infotech with its standard facility at NOIDA with air-conditioned premises of 800 sq. ft., is custom designed with essential infrastructure to accommodate six batches prospectively with twelve students in each batch per day i.e. seventy students per day subsequently. The organization enables trainees to use the potential of technology through experienced IT professionals. We have a staff strength of six senior developers with BE & MCA background and having experience in development of minimum two years. The Lab-Room is equipped with heavily configured ten P.C. connected through network and loaded with all latest software like c# (sharp), EJB and Oracle 8i. The center is also equipped with backup facility in case of electricity failure.

OUR VISION : We shall define ourselves in the cutting edge technology in the coming era. We shall create honest working environment with see-through-glass planning. OUR MISSION : To create opportunity for growth & self actualization to trainees and provide An environment of highly conducive works culture.

TECHNICAL STRUCTURE : For Web Site : Front End HTML. DHTML Flash 5.1 Photoshop Java Script Added features : a) Connectivity through JDBC - Thin Driver i.e. Oracle Driver or ADO .net. b) Chat Server - Applet & Servlet communication with RMI. c) Java Mail Server. d) Java Search Engine. e) Uploadation using File Transfer Protocol (FTP). Middle Tier Servlets JSP EJB ASP .net RDBMS Oracle8i Server JWS Tom Cat. Weblogic IIS

For Application : Front End RDBMS Operating System Windows NT

VC++ Oracle8i Visual Basic .net SQL Server

PARTIAL LIST OF OUR ESTEEMED CLIENTS


NOKIA INDIA (P) LTD. COSMIC INFOTECH SOLUTIONS (CITeS) HONKONG AND SHANGHAI BANKING CORPORATION (HDFC) exl SERVICE.COM NET2.TRAVELS.COM CELMANIA.COM POLAROID INDIA LTD. PERFETTI INDIA LTD. GLOBAL NETCOM SERVICES PVT. LTD. EBONY AVON BEAUTY PRODUCTS INDIA PVT. LTD. ADEPTIA INDIA PVT. LTD. CALTEXT LUBRICANTS INDIA PVT. LTD. COSMO FERRITES LTD. TRISOFT DESIGN SHRIRAM AUTOMOTIVE PRODUCTS LTD. NIKSUN INDIA PVT. LTD. ISPAT INDUSTRIES LTD. OSWAL CHEMICALS & FERTILIZERS LTD. MINISTRY OF TEXTILES MINISTRY OF ENVIRONMENT S.R.C.C. SAIL MODI ENTERTAINMENT NETWORK RAJYASABHA APTECH COMPUTER EDUCATION LTD. ZEE INTERACTIVE LEARNING SYSTEMS LTD. EL-ZEE TELEVISION LTD. SAHARA INDIA PARIVAR. DCM INDUSTRIES LTD. JALDI.COM NOBLE & HEWITT BEETAL FINANCIAL SERVICES LTD. TRICON RESTAURANTS INTERNATIONALS. REEBOK INDIA COMPANY D.R.D.O. AUTOMAX LTD. MMTC LIMITED BANK OF NOVA SCOTIA. HDM INDIA LTD. ELOFIC INDUSTRIES LTD. NIKSUN INDIA PVT. LTD. REDIFFUSION DY & R BRAND COMMUNICATIONS. SATYA SONS ARMY GOLF COURSE

HUNTER DOUGLAS MILITARY HOSPITAL COSMIC INFOTECH SOLUTIONS BIRLA TECHNICAL SERVICES SPECTRUM MAGAZIES LTD. INDOMAG STEELS JAMIA MILIA ISLAMIC UNIVERSITY MODICARE HOLIDAY INN MUMBAI HILTI INDIA RAJDOOT PAINTS HYDERABAD INDUSTRIES AVL SOFTWARE (P) LTD. JAIPRAKASH INDUSTRIES LTD. CRM DIVISION OF TISCO

SOME OF THE WEB PROJECTS UNDERTAKEN


Company
AZ DATAMALL MA ASSOCIATES DP ASSOCIATES POLARIS CHEVRON SRF Ltd. RK BERI FINEDGE CREMICA FOODS LTD. RAMA PAPERS MICRO DATA PRODUCTS LTD. CENTRE POINT HOTEL GULMOHUR SCHOOL VASANT VIHAR CHURCH YOUNG ADVERTISE JSOFT KIRAN SOCIETY

URL
www.dwebonline.com www.ma-associates.com www.dp-associates.org www.bankwareindia.com www.chevronhotels.com www.srf-limited.com www.rkberiandsons.com www.finedgetech.com www.Cremicafoods.com www.ramapapers.com www.microdataproducts.com www.centerpointhotel.com www.gulmohurschool.com www.stdominicchurch.org www.youngadds.com www.onlineexam.com www.matritva.com

Project Report
Title of this project is Banking Management System. Introduction to Project: Banking Management System is divided into two parts :1. WAN based Application. 2. Internet based Application On Line Banking Both WAN and Internet based applications are interconnected to each other. Wide Area Network Based Application :The presented project here is made in view overcoming the problems faced by the Bank regarding Maintenance, Recording and keeping of Data base, Employee information, Financial transactions, Payroll system etc.. This project can be widely used in any Bank which contain different departments with various employees having different designations, salary profiles etc. Beside these it is very useful for the organizations having number of branches with a Head Branch connected by a WAN system through its other branches. These networks need a special kind of security feature.

Head Office

Existing system with limitations:The existing system was having a number of difficulties regarding maintaining the record of Banking Transactions, Financial Records and keeping record of Employees. First of all our focus will be on the manual system for bank. One can observe that for the whole process of all the Banking Management, one organization needs to recruit too many staffs to handle the specific duty. Second is the efficiency, time elapsed and the human errors involved.

Finally Beside these the most important is the data storage, searching for a particular record, transferring the data to its various networks and data piracy.

Internet Based Application In todays competitive environment, where everybody wants to be on the top, Information plays very crucial role. As fast as information is accessed and processed, it can give good results. Today Internet is the fast way of transferring Data and Information over wide area, hence I have used internet as a way for exchanging information. Computerized system help to fulfill these goals. Computerization of the official works will help in doing lot of manual work quickly. It will help in easy storage and access of all information, in short period of time. On Line Banking System is developed to facilitate the general administration system to manage the various information of the Customer and the processes involved in a Banking Transaction . So, that Customer can access accurate information quickly and easily as and when required, thereby improving its operational efficiency & effectiveness.

Proposed system with objectives:The proposed system is the panacea of above mentioned problems. By using this system an organization can handle its all kinds of above mentioned works efficiently, accurately and swiftly with all kinds of security features by involving a few employees. Objective of doing this project is to enhance my knowledge in the field of Distributed technology using EJB and Oracle 8i. Some of the client requirement and objectives of this project is as under: -

The main objective of study: Objective of the proposed project is to provide Computerized Bank Service and maintain all the transaction using Computer in a WAN where all branches are connected to each other. That means all the customer of the bank would be able to access their accounts and related information by linking to the site , on the internet. Objective of WAN based Application :1. To provide centralized business logic ( Server Side Component) so that different branches can be connected to each other in wide area network. 2. To maintain Customer Information. 3. To maintain Account Information. 4. To maintain Cheque, DD, Loan Information. Objective of Internet based Application :1. 2. 3. 4. 5. 6. Supply of account information on Line. Servicing of application and request. Transfer of accounts. On Line clarifications. On Line Stop Payment. On Line Loan Information.

Clients Requirement :1. 2. 3. 4. 5. Customer detail. Financial Records Employee Records Banking Records On Line Transactions.

PURPOSE: Computerized Bank Management system is developed to facilitate the general administration system to manage the various information of the Banks and the processes involved in a Bank Transactions. So, that organization can access accurate information quickly and easily as and when required, thereby improving its operational efficiency & effectiveness. Why is the topic chosen: In todays competitive environment, where everybody wants to be on the top, Information plays very crucial role. As fast as information is accessed and processed, it can give good results. Computerized system help to fulfill these goals . Computerization of the official works will help in doing lot of manual work quickly . It will help in easy storage and access of all information , in short period of time.

What contribution would the Project make: This is a era of Information Technology where getting information is the base of each and every thing. Success of any business depends upon its popularity and goodwill. Today market has been expanded and you have to be a global player , today client want to access most of the information from his residence and then do transaction. The project would help in effective and systematic record keeping that is storing and retrieving of useful data. Project will be able to give the report so that

management can make decisions on the basis of those reports.

Project Category:Category of this project is RDBMS based MVC model 2 , N-tier architecture, Distributed Environment based project with server side component. Project can be categorized in two ways :1.

Local area network projects.

2. Distributed Projects. Local Area Network projects are those projects where application has to be incorporated in the Local area network of the client i.e within its premises only. In LAN case server is not remotely located and client access this application through this network. Here the question of platform independence does not arise and we use technologies like : Visual Basic , Fox pro , D2k or C,C++. Distributed projects are those projects where application is remotely situated. In these kinds of projects application is remotely situated on to the remote server from where client machine access this application. WAN and an Internet is a kind of distributed application where client machine connects to the remote server and application is downloaded on to client machine. Here the question of platform independence arises and we use technologies like Java Servlets , Java Server Pages , EJB , RMI etc. Project Models : There are three kind of Project models :1. Single tier architecture. 2. Two tier architecture.

3. N- tier architecture. Single tier Architecture: - In this kind of architecture Database and Client Application remains on One machine i.e. there is no client server technology, there is no centralization of database and basically it is a stand alone system. Two tier Architecture: - In this Kind of architecture Database and client application is on two different machine i.e. Database on one machine and Application on another machine. In this type of architecture there is client server technology and centralization of data base is there, but it has two demerits:1. Security is not there, 2. Multiple Client access is not there. N- tier Architecture :- In this kind of architecture there is a middle ware in between client and database. Middle ware checks the validity of the client i.e. weather client can access the database or not. Hence there is security in it as well as middle ware allows multiple client access. What is Middle Ware? Middle Ware is a concept, Middle Ware provides centralization of business logic i.e. instead of putting logic on each and every client machine we put logic on a centralized server hence middle ware is nothing but a server side program where all your business logic and business methods reside. It remains on server side and it has all the logical building. Middle ware provides:1. Multiple Client access. 2. Centralized business logic in case of distributed application.

MVC Model II In MVC model project is divided into three layers :View which is an client interface to interact with client and generate dynamic information. We can use both Swings and Servlet to design client application code.
a)

Client Side Interface :In client side interface we are using : Swings In WAN Application. Servlet / JSP In Internet Based Application. Swings components are platform independent components and we are designing client side forms using Swings and we are calling EJB (Server side business logic) on event. Servlets / JSP are middleware technologies which are used in web based projects because they use :1. HTTP Protocol to handle Request and Response. 2. They are invoked through Browser. 3. They give out put in HTML format. 4. They need Browser Support. We have designed web based forms using servlets and servlets call EJB in which we have defined business logic. b) Controller - Controller contain business logic, we have used Enterprise Java Beans 1.2 to design sever side component which can be called from both Desk top application and Web based application.

EJB: - EJB is a server side component in which we define business logic which is reusable. Features of EJB are:1. 2. 3. 4. 5. 6. 7.
c)

Wider Scope i.e. it can be used in both application based projects and web based projects. Reusability. Economical and efficient. Connection Pool. Transaction and Persistency. Security. Multi threading.

Model Model is a storage device in which we store data we have used Oracle 8i as Model. Data base is the most important thing in this universe as data base gives identity to a thing without data base existence of a thing is impossible. While working on a project first step is to design a database. What is data base ? Data Base is a collection of tables and table is a collection of records in a tabular form i.e. in row and columns. Data Base can be divided into two parts :1. RDBMS. 2. DBMS. We will be using RDBMS (Relational Database Management System) in our project i.e. oracle 8i Enterprise edition.

Why we are using Oracle (RDBMS)? Some of the merits of using Oracle (RDBMS) is as under : Centralization of database. Client Server Technology. Security. Normalization of Data Base. Relationship. Transaction Processor. It gives some internet related features.

Hence because of these features we are using Oracle as a back end technology. >>>>>>>>>>>>>>>>>>>>>>>>>>>> TOOLS/PLATFORMS LANGUAGES USED FOR THE DEVELOPMENT OF THE PROJECT (A) Java 2.0 - ENTERPRISE EDITION (Business Logic) The Enterprise edition allows professionals to create robust distributed applications in a team setting. Introduction to Java Java is a high level, third-generation programming language, like C, Fortran, Pearl and many others. It is a platform for distributed computing a development and run-time environment that contains built-in support for the World Wide Web. History of Java Java development began at Sun Microsystems in 1991, the same year the World Wide Web was conceived. Javas creator, James Gosling did not design java for the Internet. His Objective was to create a common development environment for consumer electronic devices which was easily

portable from one device to another. This effort evolved into a language , code named Oak and later renamed Java that retains much of the syntax and power of c++ , but is simpler and more platform independent. Java Features Some of the important features of Java are as follows: Simplicity Orientation Platform Independence Security High Performance Multi Threading Dynamic linking. Garbage Collection.

One of the most important feature of Java is Platform Independence which makes it famous and suitable language for World Wide Web. Why java is Platform Independent ? Java is Platform Independent because of Java Virtual Machine (JVM). Java Virtual Machine (JVM) The client application or operating system must have a java byte-code interpreter to execute byte-code instructions. The interpreter is a part of a lager program called the JVM. The JVM interprets the byte code into native code and is available on platforms that supports java. When the user runs a Java program, it is upto the JVM to load , possibly verify, and then execute it. The JVM can perform this function from within a browser or any other container program or directly on top of the operating system. When a browser invokes the JVM to run a Java program, the JVM does a number of things :

1. It validates the requested byte-codes, verifying that they pass various formatting and security checks. 2. It allocates memory for the in coming java class files and guarantees that the security of JVM is not violated. This is known as the class loader. 3. it interprets the byte code instructions found in the class files to execute the program. Connectivity using JDBC :There are four kind of drivers available in Jdbc :1. 2. 3. 4. JdbcOdbc Bridge Driver. Partly Java Driver. Pure Java Driver. Native Driver.

JdbcOdbcDriver : This provides Jdbc access via Odbc drivers. Note that Odbc binary code , and in many case database client code, must be loaded an each client machine that uses this driver. As a result this kind of driver is most appropriate on a corporate network where client installations are not a major problem. Partly Java Driver : This Driver translates Jdbc calls into a Net Protocol which is then translated to a RDBMS protocolby a server.In this kind of driver part of the binary code should be on client machine and part should be on server, hence this kind of driver has same problem that was with JdbcOdbc driver and it is mostly used in Intranet. Pure Java Driver : This is a platform independent driver as this kind of driver remains on server. This kind of driver is provided by third party vendor. This net server middle ware is able to connect its pure java clients to many different databases. Native Driver : This kind of driver converts JDBC calls into the network protocol used by Dbms directly. This allows a direct

call from client machine to the DBMS server and is a practical solution for Intranet access. Note :- We are using 3rd Type of driver i.e. Thin Driver in our project. (b) Oracle 8i (Back End ) ABOUT ORACLE 8.0 Oracle 8.0 contains all the features of previous version. It also supports some new features & enhancement to some existing features. Oracle servers provides deficient & effective solution for the major features. Large Database & Space Management Control Oracle supports the largest database potential hundreds of Giga Bytes in size. To make efficient use of expensive devices , it allows full control of space usage. Many Concurrent Database Performances It supports large no of concurrent users executing a variety of database Applications operation on the same data. It minimizes data connection & guarantees data concurrency. High Transaction Processing Performance Oracle maintains the processing features with a high degree of overall system performance. Database user doesnt suffer from slow processing performance. High Availability At some sets Oracle works 24 Hours per day with no downtime or limit database throughput. Normal system operation such as database backup & partial completion system failure dont interrupt database use. Controlled Availability

Oracle can selectively control the availability of data at the database level & sub Database level. e.g. an administrator can disallow use of a specific application .Data can be reloaded without affecting other application. Industry Accepted Standards Oracle adheres to industry accepted standards for the data access language operating system, user interface & network communication protocols . It is open system that protocols a customer invention. Manageable Security To protect against unauthorized database aspects & users .Oracle provides failsafe security features to limit & monitor the data area. The system make it easy to manage even the most completed designs for data assets. Database Enforced Integrity Oracle enforces data integrity Business rules that dictates the standards for applicable data. As result the cost of coding & managing checks in many database applications are eliminated. Distributed Database System For community environment that are connected via networks. Oracle combines the data physically located on the different computers in one logical database that can be accessed by all the network users. Distributed systems have same degree of user transparency & data consistency as nondistributed systems. Yet receives the advantages of local database management. Portability Oracle software is compatible to work under different operating system & same on all system. Application developed on Oracle can be used on virtually any system with little or no more modification. Compatibility

Oracle software is compatible with industry standards, including most industry standards operating systems. Application developed on Oracle can be used on virtually any system with little or no modification. Connectivity Oracle software allows different types of computers & operating system to share information networks. NEW FEATURES OF ORACLE 8.0 Improved Scalability The maximum size of an Oracle database has been increased to support hundreds of terabytes depending on the operating system on which it resides. Improved Security Oracle 8.0 server now includes password management so that a password has a limited lifetime & must meet certain complexity such as minimum length. An account can be locked after a specified no of failed login attempts. Improved Performance Via Partition A table of index can divided into smaller pieces called patrons, based on the value of one or more columns. A table patron can be individually managed so that operation in one partition do not affect the availability of data on the other partitions. Also Insert ,Update ,Delete operation against a partitioned table can be processed partially. In other words, the Oracle 8 server can assign a portion of the work to execute a single DML statement to multiple processes , which may then be allocated to multiple processes by the server operating system. As a result ,the parallel DML operation is completed more quickly. Enhanced Support for Database Replication The performance & manageability of database replication have been significantly improved.

Capability To Handle a Much Larger Number Of Concurrent Users By pooling database connection, the Oracle 8 server is able t9o service a much larger number of concurrent users up to 3000, depending on the server operating system & server hardware resources. New & Improved Data Types Some existing data types have been enhanced & new data types have been introduced. Improved Select Statement A new feature of the select statement allows a sub query to be used in place of a table in a from clause. Tools/Environment used : Tools and Environment used in this project are as under: Software requirements Windows NT operating system. Front End : Swings, Event Handling, Servlets, JSP. Middle Ware : EJB. Back End : Oracle 8i. Connectivity : JDBC Thin Driver. Application Server : Weblogic Server 5.0.1

Hardware Requirements Cyrix 333 mzhs or Pentium II Processer. 128 MB SD RAM. Net Work with client server technology.

Feasibility Study : A feasibility study is conducted to select the best system that meets performance requirement. This entails an identification description, an evaluation of candidate system and the selection of best system for he job. The system required performance is defined by a statement of constraints, the identification of specific system objective and a description of outputs. The key consideration in feasibility analysis are : 1. Economic Feasibility : 2. Technical Feasibility : Hardware : (a) Server (b) Server space (c) Ram Windows NT 20 MB 128 MB Oracle 8I ASP net , Crystal Report. ASP net, Crystal Report. Windows NT

Software : (a) Backend (b) Middleware (c) Front-end (d) Operating System -

Economical:The proposed system is economically feasible because the cost involved in purchasing the hardware and the software are within approachable. The personal cost like salaries of employees hired are also nominal, because working in this system need not required a highly qualified professional. The operating-environment costs are marginal. The less time involved also helped in its economical feasibility.

Software Costing :-

Introduction Software Industry, an industry which sells logical things. The advantage of buying a software is automation, better analyzing of business, thus making life easier. As we are into logical selling, it makes difficult to come with a costing to an accurate level. Customer can see the benefits of buying only when he uses the software for quiet a period of time and then says 'Aah its worth of it'. When customer sees accountants performing better, invoices been made with least errors etc., customer gets convinced. So to convince the customer at the primary stage is really a big nut to crack. If you give more quote you lose the project, if you give less quote you will end up doing social service to clients and probably also loss. Software Industry, an industry which sells logical things. The advantage of buying a software is automation, better analyzing of business, thus making life easier. As we are into logical selling, it makes difficult to come with a costing to an accurate level. Customer can see the benefits of buying only when he uses the software for quiet a period of time and then says 'Aah its worth of it'. When customer sees accountants performing better, invoices been made with least errors etc., customer gets convinced. So to convince the customer at the primary stage is really a big nut to crack. If you give more quote you lose the project, if you give less quote you will end up doing social service to clients and probably also loss. Theory If said to analyze cost of any physical product, example a simple pen, I can pin point to a good extent the cap's cost, the ink cost etc., and come out with a rough estimation. Even the customer is equally convinced as he can see those physical products. Software industry also has practices of evaluating cost, the following are 2 major ones: 1. Lines of code. 2. Function points (FP). I personally do not believe in lines of code. In this software world of reusability, 1000 lines of code can become 200 lines, thus leading to complete misjudgment. Just wondering during design phase how can you know the total lines of code. For some reason, I feel Lines of Code favor the software company more than its clients. Just imagine i want to make simple

window based customer GUI in C language and the same in Visual basic. The Lines of code will differ a lot and hence the costing. In short lines of code are programming language dependent." Lines of code would have been fair if there was one programming language in the world". Just my 2 cents Programmers output is not Quantity (Lines of code) but the logic what he has written. If you want to evaluate a house cost do we ever measure the bricks and nails. Well i stop here talking about LOC or else the whole tutorial will look like i am against LOC. But with FP, I see the quote coming out fair for both customer as well as the software company and is language independent to a very good extent Note not completely independent). I was very convinced with FP in one of my clients' place where the client handed us a huge book of use case and said to come out with estimation. We where a team of 4 people. We divided in team of 2 and said let's come out with some quote and then tally our results. After 2 days continuously counting every element, we saw both teams coming to the same value of "Function Points", that means consistency even after different people sitting on it. Definition of Function Point and History They are units of software measurement, like for distance we have kilometer. There's a favorite saying - You can't control what you can't measure. Breaking the system into smaller systems, and analyzing them and coming out with cost for every unit. Finally, we total all the smaller units to come out with final total. Function points measure system from functionality perspective and are independent of technology.

Software Cost

: 25000/: 15000/-

J2EE : Ms-Office

Oracle Manpower Cost : Team cost System Cost Total Cost Technical:-

20000/-

: : :

15000/20,000/95000/-

Hardwares used in this project are- p3 processor 733 MHz, 64 MB RAM, 10 GB hard disk, floppy drive. These hardware were already available on the existing computer system. The software like MSACCESS,VB .net,MS -WORD and operating system WINDOWS-XP used were already installed On the existing computer system. So no additional hardware and software were required to purchase and it is technically feasible. Tools Used : 1) J2EE API 2.1 2) Weblogic Server 6.0 3) Data Report 4) JDK 1.3 5) Oracle 8i.

Duration of Project :For studyFor designingFor development15days, 45days, 60 days,

For TestingTotal time-

15days, 135 days.

Methodology ( Software Engineering Paradrum) : The methodology used is the classic Life-cycle The following approach is used to design this system, which is called classic life cycle or waterfall model. This linear sequential model suggests a systematic, sequential approach to software development that begins at the system level and progress through analysis, design, coding, testing and maintenance. The linear sequential model encompasses the following activities:1. 2. 3. 4. 5. 6. System / information engineering and modeling. Software requirement analysis. Design. Code generation. Testing. Maintenance.
System Engineering Analysis Design Code Testing Maintenance

Water Flow Diagram Optimization of Project: The project would help in effective and systematic record keeping, that is storing and retrieving of useful data. Project will give user facility of

customizing his choice so that he can make search and can generate reports. Reports which user can generate are: 1. 2. 3. 4. 5. 6. 7. Customer Report. Bank Transaction Report. Balance Statement Report Staff Report (Remarks). Inventory Reports. Financial Report. Payroll Reports.

Analysis and Design :

About the System: The whole system is divided into different Modules:Module 1: Supply of Account Information The account information service will provide customers a summery of their accounts. These accounts could be Savings or Current Deposit account. The customers can get details of each account , a snap shot of the balances , a record of payments and transfers made, whenever they require. In addition to displaying the account balance information , the clients would get a warning when the account balance falls below the minimum limit. This limit is decided by the bank. The customers will also be provided account statements and transaction reports based on any user defined criteria. More over, online CIS will make tracking of transactions easy. Customers would be able to get details of the various transactions based on the check number, the transaction amount, the date of the transaction, and so on. Module 2:

Servicing of Applications and Requests Through applications and requests, the clients will be able to electronically Submitted a request for a cheque book. Stop a payment Fund Transfer Account Transfer Cheque Status Close Account Module 3: Banking Transactions The Banking Transactions include daily opening balance , closing balance , customer records, deposit and withdraw status ,transfer of accounts etc The money can be transferred across any branches of the bank i.e. customer can operate with any branch. Module 4: Customer Care Clients will be able to send mails to the bank and get their enquiries cleared on line. They can find the status of a request, about any new scheme the bank is offering, or any other information. In order to use any of the services listed above that will be available as part of CIS, a client will have to register for the service either online or personally. The client will have to provide details like name and account number. An access number will be sent by mail to the client at the address available in the database of the bank.

My role in the Project: My role in the project is to develop a system for the general administration section, covering:1. 2. Of the above-mentioned module areas. Software Requirement Specification (According to IEEE Standard no. 830-1984)

1. Introduction : This Application is dedicated to Banking Management. The objective of this Application is to provide an opportunity to the potential users who are remotely located over a large geographical area. 2. Information Description : The Application acts as a middleman between between Client and Bank. It maintains record of client and Staff members and helps in automation of official work which increases efficiency. 3. Functional Description the Application has four modules. : Basically

(A)
information

Supply of Account Servicing of application

(B)
and requests (C)Transfer of accounts (D) On Line Clarifications.

4. Behavioral Description : The event occurs in this site in two ways. One by the submission of the form by the user and other by the application. When the user submits a particular form a particular V.B. program is called depending upon the nature of the job is to be perform. The program either generates the response or updates the database or both. Following events occur in the modules : Module : 1st 1. 2. 3. Submission of form Accessing of database Generation of appropriate response.

Module: 2nd 1. 2. 3. Submission of form Accessing of database Generation of appropriate response

Module: 3rd 1. 2. 3. Submission of form Updating database Generating appropriate response

Module: 4th 1. 2. 3. 4. 5. Submission of form Accessing of database Generation of appropriate form Submission of form Updating database

5. Validation Criteria : Each page and its hyperlink is examined and the respective program is also examined. The connection between form (Frontend ) and database (Backend) is examined keeping in the mind hat no garbage value could be entered. Middleware or processing logic is also examined.

Validations Checks ( Testing Tools) : Developing project has number of phases, we have to under go each phase in order to successfully complete the whole project. Different steps which we have to follow in order for successfully completion of project are : Analyzing. Making up of Project Synopsis and Documentation - In this phase we do paper work ,write the client requirement and design database according to the requirement of client. After that we divide the whole project into different modules and assign task to the Project members . Coding In this phase we actually practically implement paper work and do the front end and back end programming part. Testing This is the most important phase of the Project where we practically check our code in different situations i.e. weather it is working in different conditions or not , weather it is solving the objectives of client. During this phase only we do rectification job. The most important technique used in Testing is Trial and Error System. We will be discussing this in detail later. Incorporating - Incorporating means loading the application on to the server from where it will be used by the client machines. mplementation and Training - After Incorporating the code on to the client machine we have to provide training to the employees of the client i.e. how to use this software and if there is any problem they can do verification part.

We all these phases here we will be discussing Testing Part i.e. Validation Checks. As already told one of the most important technique of Testing is Trial and Error System In this system we

put our code to different conditions to check that weather it is working properly or not. We also have adopted this technique. We have done data verification by entering wrong data type in our data base to test weather it is working properly. We tried to search records from different tables using Primary Key i.e. particular ID and checked weather it is fetching correct record or not. We have tested weather proper records according to proper fields are inserted to the tables or not. We have also used scripting to verify our code. Scripting are of two types i.e. Client Side Scripting and Server Side Scripting. Client Side Scripting : We have used Java Script for client side scripting. By client side scripting we do validation part on client side i.e. at front end , before submitting up of form. Examples of Client side scripting it that there are some compulsory fields which has to be filled but are not filled up by the client in that particular case form should not be submitted and an error message should be displayed , similarly like that take an example there are two fields one numeric like age and other text like name user has to enter numeric in numeric field and text in text field but if does not do so an error message should be displayed stating that he has made wrong entry. This kind of technique where Information is tested on client side before going on to server side program is called Client Side Scripting. Server Side Scripting : Server side Scripting is done by server side program . There are certain things which has to be tested on server side like Employee ID , Department ID or User Id. For this particular case we have to first make connection with our data base and then test weather User Id actually exist in our database or not if userid exist it means he is a member other wise not. Similarly if we want to check record of employee this will we done by Employee ID i.e. primary key in a database these type of checks will be performed by Our Server Side Program.

SYSTEM TESTING
Here the system testing involved is the most widely used testing process consists of five stages as shown in the figure. In general, the sequence of testing activities is component testing, integration testing then user testing. However, as defects are discovered at any one stage, they required program modifications to correct them and this may required other stages in the testing process to be repeated.

Unit testing

Module testing

Sub-system testing

System testing

Acceptance testing

(component testing)

(Integration testing)

(user testing)

SYSTEM SECURITY

There are basically two types of security associated with this system:1. Physical security:Damage due to natural causes like earth tremor, flooding, water logging, fire hazards, atmospheric or environmental conditions etc..For overcoming these difficulties the replica of the data are automatically stored at various networks and for environmental conditions Air conditioning environment is created. 2. Data security:There are basically two problems associated with data security:a). Data not being available to the authorized person at the time of need. b). Data becoming available to the unauthorized person. To overcome these difficulties the following access facilities has been provided:i) ii) Identification:Unique Ids for the different users have been provided. Authentication:System checks the password under the particular user identification. The computer permits the various resource to the authorized person. Authorization:-

iii)

The access control mechanism to prevent unauthorized logging to the system.

Our Testing Policy For Us, Primary role of testing is not demonstration of correct performance, but exposure of hidden defects, detecting specification errors and deviations from the specification, establishing confidence that a program does what it is supposed to do and verifying that a system satisfies its specified requirements or identifying the differences between expected and actual results Our Testing Process
1.

Test Planning Describing the scope, approach, resources and schedule of intended test activities, also describes the technical and managerial approach to be followed for testing a component or system Test Specification Specifies the test inputs, execution condition and predicted results for an item, unit, integration and system level test cases are designed on the basis of requirements and as per the plan lay down Test Execution Test cases are executed according to the test procedures prepared for each test designed, test procedure describes the purpose, special requirements and the steps to be followed in executing the tests Test Recording. All executed tests have test log. Whenever discrepancies are observed from the expected results, test incidents must be raised. Test Log is a record of all relevant details of execution of tests. Test incident records any event that occurs during testing that requires investigation Test Completion Test records are checked against test completion criteria. Every test

2.

3.

4.

5.

must be completed and there must be no defect logged during execution phase that is not fixed by respective developer and if fixed should not remain untested by testing resource Adapted Software Test Life Cycle

Test Planning

Test Design

Test Case Design

Test Summary

Test Completion

Test Execution

Our Testing Techniques and Levels of Testing

Unit Testing Testing logical pieces of work, functions, subroutines or logical units, generally conducted by developer. Our approach towards Unit testing is a. Document all test cases, and test procedures, review all test cases b. Execute implemented test set on compiled unit c. Modify and revise the code and test as necessary d. Re-execute the modified tests until test completion criteria re met Integration Testing. Our main function of integration testing is to test that interfaces between units are correct, after few units are integrated verify that specific requirements have been implemented correctly. Test response time of integrated modules is another aspect that we take care. Our approach towards Integration Testing is a. Identifying the integration test sets and their execution b. Units are combined one at a time and tested till entire software gets integrated c. Verifying that data flow between the screens is correctly integrated d. Verifying that all the integrated modules and units are behaving as per specifications Regression Testing. Testing of all the effected screen or module due to defect fix or change in the requirement is our aim at regression testing. Tasks that we perform during a regression test are a. Testing a defect fix b. Testing that a defect fix has not caused some other error c. Both are done by regression testing by running a set of test cases run previously System Testing System testing for us is not a process of testing the functions of the complete system which has already been achieved by function testing,

but it is a process of attempting to demonstrate how the program does not meet its objectives a. Test cases derived using black box methodology b. While functional testing can be taken up in any hardware, the system testing has to be taken up only with target hardware. c. In addition to functionality, other aspects such as usability, performance, recovery etc tested.

Acceptance Testing. For us Acceptance testing is conducted to determine whether a software system satisfies its acceptance criteria, this is the reason we conduct acceptance testing on actual environment and data. The final acceptance decision holds with every individual client, we verify that the delivered product is adequate and consistent with executable system and the complete system meets the buyers requirements. Our acceptance process is a. Define buyers role b. Define acceptance criteria c. Develop acceptance plan d. Execute acceptance plan e. Develop acceptance decision

Database Screen Shots:-

Screen Shot [Account Type]

Screen Shot [Customer]

Screen Shot [Book_Details]

Screen Shot [Stop_Payment, User_Logon]

Screen Shot [Transaction]

BANK MANAGEMENT SYSTEM TABLE DESCRIPTIONS

CONTEXT ANALYSIS DIAGRAM

Input Account Info

Account Detailed Info customer Detailed Info USER

USER

Input customer Info

Input adminis Info

Banking MANAGEMENT SYSTEM

Money Transaction Info

Input Loan Info

Invoice Register Details

SYSTEM FLOW CHART


Valid User or Administrator

Customer Record

Extract A/c Details Extract Other Details


Cust Register Extract A/c Code

Customer Status
Deposit/ widtraw Loan Report

Account Record

A/c Report Extract PO details

Bank Record

Extract PO Code

Extract GRN

GRN Report

PO Pending Issue branch id

Loan Details
Extract Bank Code Check Loan Code

Transfer Details
Fil e

Calculate Total Cost Daily Transactions Daily Report of each Dept

Check Payment Mode

Check Details

Fil e

branch Code

Register Transfer id

Fil e Fil e

E-R Diagram for Banking


balance Cust Code Name A/C No Branch id A/C balance A/c type Opening date

Nominee Branch id

customer

Bank

Account

Transac tion

cash Chq

Transfer

Deposit / withdraw Loan


Paid amt instalment Branch id Principal Amt

Transf Date

Amount

Banking
A/c Info
1 A/c MASTER 2

USER

A/c Info

Validate A/c Details

A/c Okd

Transact ion

Deposit Info
Deposit FILE 3

Loan
Withdraw Info
Withdraw FILE

A/c Details

A/c Report

Loan CHECK FILE

DATA FLOW DIAGRAM

NET BANKING MANAGEMENT SYSTEM SWINGFORMS

Description This is the starting page of the Bank Management Project. You can proceed to the next form by clicking the first button.
Coding: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class mainForm extends JFrame implements ActionListener {

protected JLabel l1,l2; protected JButton b1,b2; public mainForm() { setTitle("Main Form"); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); l1=new JLabel("BANK MANAGEMENT SYSTEM"); l1.setFont(new Font("Serif", Font.BOLD | Font.ITALIC, 32)); l2=new JLabel("copyright @ NET HORIZON Pvt.Ltd"); l2.setFont(new Font("Serif", Font.BOLD | Font.BOLD, 30)); b1=new JButton("CLICK TO CONTINUE"); b1.setFont(new Font("Serif", Font.BOLD , 20)); b2=new JButton("EXIT"); b2.setFont(new Font("Serif", Font.BOLD , 20)); b1.addActionListener(this); b2.addActionListener(this); pane.add(l1); l1.setBounds(190,50,550,60); pane.add(l2); l2.setBounds(80,450,500,40); pane.add(b1); b1.setBounds(80,400,350,30); pane.add(b2); b2.setBounds(550,400,100,30); } public static void main(String args[]) { mainForm frm =new mainForm(); frm.setVisible(true); frm.setSize(1000,1000); frm.show(); } public void actionPerformed(ActionEvent e) { String v=e.getActionCommand(); if (v=="CLICK TO CONTINUE") { try{ login pro=new login(); pro.setVisible(true); pro.setSize(1000,1000); pro.show(); this.dispose(); }

catch(Exception ee) { ee.printStackTrace(); } } else { System.exit(0); } } }

Description This form is used to perform two task. 1. A new administrator can register himself. For this click the first button. 2. An existing administrator can login himself and can perform any task. For this click the second . Coding:

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class login extends JFrame implements ActionListener{ JButton b1,b2; public login(){ setTitle("Login Form"); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); b1=new JButton("Administrator SignUp"); b1.setFont(new Font("Serif", Font.BOLD , 20)); b2=new JButton("Administrator Login"); b2.setFont(new Font("Serif", Font.BOLD , 20)); b1.addActionListener(this); b2.addActionListener(this); pane.add(b1); b1.setBounds(300,100,250,30); pane.add(b2); b2.setBounds(300,300,250,30); } public void actionPerformed(ActionEvent e){ String v=e.getActionCommand(); if (v=="Administrator SignUp"){ try{ product user=new product(); user.setVisible(true); user.setSize(1000,1000); user.show(); this.dispose(); } catch(Exception ee){ ee.printStackTrace(); } } else{ login1 lg =new login1(); this.dispose(); } } public static void main(String args[]){ login lg =new login(); lg.setVisible(true); lg.setSize(1000,1000); lg.show(); } }

Description:

Administrator must know the product key to register himself. If he do not know the Product key he will not be able to register himself.
Coding: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class product extends JFrame implements ActionListener{ JLabel l1; JButton b1,b2; JTextField t1; public product(){ setTitle("Product Id Form");

JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); l1=new JLabel("Enter Product Key :"); l1.setFont(new Font("Serif", Font.BOLD | Font.ITALIC, 32)); b1=new JButton("O.K"); b1.setFont(new Font("Serif", Font.BOLD , 20)); b2=new JButton("CANCLE"); b2.setFont(new Font("Serif", Font.BOLD , 20)); t1=new JTextField(30); b1.addActionListener(this); b2.addActionListener(this); pane.add(l1); l1.setBounds(50,100,300,50); pane.add(t1); t1.setBounds(400,100,200,30); pane.add(b1); b1.setBounds(100,400,200,30); pane.add(b2); b2.setBounds(350,400,200,30); } public void actionPerformed(ActionEvent e){ String v=e.getActionCommand(); String comp="parag"; if (v=="O.K"){ try{ if(comp.equals(t1.getText())){ admClient lg =new admClient(); lg.setVisible(true); lg.setSize(350,350); lg.show(); this.dispose(); } else{ JOptionPane.showMessageDialog(this,"You have not enterd a valid Product Id","product",JOptionPane.WARNING_MESSAGE); } } catch(Exception ee){ ee.printStackTrace(); } } else{ System.exit(0); } }

public static void main(String args[]) { product pro =new product(); pro.setVisible(true); pro.setSize(1000,1000); pro.show(); } }

Description:

Administrator needs to know the Branch ID for which he is going to register himself. If he do not know the branch ID he will not be able to register himself.
Coding: Client : import javax.naming.*; import java.rmi.*; import java.util.*; import javax.rmi.PortableRemoteObject;

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class admClient extends JFrame implements ActionListener { JLabel l1,l2,l3; JTextField tf1,tf2,tf3; JButton b1,b2; Vector v=null; public admClient() { setTitle("Administatro signup form"); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); l1=new JLabel("Branch Id"); l2=new JLabel("Admin Id"); l3=new JLabel("Password"); tf1=new JTextField(20); tf2=new JTextField(20); tf3=new JTextField(20); b1=new JButton("Ok"); b2=new JButton("Cancel"); b1.addActionListener(this); b2.addActionListener(this); pane.add(l1); l1.setBounds(20,20,90,15); pane.add(l2); l2.setBounds(20,50,90,15); pane.add(l3); l3.setBounds(20,80,90,15); pane.add(tf1); tf1.setBounds(125,20,159,20); pane.add(tf2); tf2.setBounds(125,50,159,20); pane.add(tf3); tf3.setBounds(125,80,159,20); pane.add(b1); b1.setBounds(110,180,80,25); pane.add(b2); b2.setBounds(188,180,80,25); } public void actionPerformed(ActionEvent ae) {

String s=ae.getActionCommand(); if(s=="Ok") { v=new Vector(); v.addElement(tf1.getText()); v.addElement(tf2.getText()); v.addElement(tf3.getText()); try { Context ic=getInitialContext(); Object ref=ic.lookup("admSignup"); admHome home=(admHome)PortableRemoteObject.narrow(ref,admHome.class); admRemote re=home.create(); boolean flag=re.admSignup(v); if(flag) { new login1(); //mnf.setVisible(true); //mnf.setSize(1000,1000); //mnf.show(); this.dispose(); } else { JOptionPane.showMessageDialog(this,"Error in processing. Please contact system administration.","Error",JOptionPane.WARNING_MESSAGE); } } catch(java.rmi.RemoteException e) { System.out.println("remote exception "+e); } catch(javax.ejb.CreateException e) { System.out.println("create exception "+e); } /* catch(javax.ejb.RemoveException e) { System.out.println("remote exception "+e); }*/ catch(javax.naming.NamingException e) { System.out.println("naming exception "+e); }

// login1 lg=new login1(); } else{System.exit(0);} } private static Context getInitialContext() throws NamingException { Context ctx = null; try { Properties h = new Properties(); h.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactor y"); h.put(Context.PROVIDER_URL, "t3://localhost:7001"); ctx = new InitialContext(h); } catch (Exception ne) { System.out.println("Exception in getting ic "+ne); } return ctx; } } Home Interface: import javax.ejb.*; import java.rmi.Remote.*; import java.util.*; public interface admHome extends EJBHome { public admRemote create()throws CreateException,java.rmi.RemoteException; } Remote Interface: import javax.ejb.*; import java.rmi.*; import java.util.*; import java.rmi.Remote;

public interface admRemote extends EJBObject { public boolean admSignup(Vector v)throws java.rmi.RemoteException; }

Bean: import javax.ejb.*; import java.sql.*; import java.util.*; import java.rmi.*; import java.io.*; import javax.sql.*; import javax.naming.*; public class admBean implements SessionBean { SessionContext ctx; Connection con=null; PreparedStatement psm=null; ResultSet rs=null; boolean flag; public void ejbCreate() { System.out.println("create bean"); } public void ejbRemove() { System.out.println("fd"); } public void ejbPassivate() {} public void ejbActivate(){} public void setSessionContext(SessionContext ctx) { this.ctx=ctx; } public boolean admSignup(Vector v) { String bId=""+v.elementAt(0); int bdi=Integer.parseInt(bId);

String admId=""+v.elementAt(1); int adi=Integer.parseInt(admId); String admPwd=""+v.elementAt(2); try{ InitialContext ic = new InitialContext(); DataSource ds=(javax.sql.DataSource)ic.lookup("Mydatasource"); con=ds.getConnection(); System.out.println("Got the connection of session bean ..."); psm=con.prepareStatement("insert into adminvimal values(?,?,?)"); psm.setInt(1,adi); psm.setString(2,admPwd); psm.setInt(3,bdi); //System.out.println("conn stmt created...."); psm.execute(); flag=true; } catch(Exception e){flag=false;} return flag; } }

Description:

If the Administrator was successfully registered he now needs to login himself for further processing or he may quit now by clicking the cancel button.
Coding: Client: import javax.naming.*; import java.rmi.*; import java.util.*; import javax.rmi.PortableRemoteObject; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class login1 extends JFrame implements ActionListener { boolean flag,flag1,f; JLabel l1,l2; JTextField tf1,pw; JButton b1,b2; public login1() { setTitle("Administrator login form"); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); l1=new JLabel("Admin Id"); l2=new JLabel("Admin pwd"); tf1=new JTextField(20); pw=new JTextField(20); b1=new JButton("Ok"); b2=new JButton("Cancel"); b1.addActionListener(this); b2.addActionListener(this); pane.add(l1); l1.setBounds(20,20,90,15); pane.add(l2); l2.setBounds(20,50,90,15); pane.add(tf1); tf1.setBounds(125,20,159,20); pane.add(pw); pw.setBounds(125,50,159,20); pane.add(b1);

b1.setBounds(110,150,80,25); pane.add(b2); b2.setBounds(187,150,80,25); setVisible(true); setLocation(200,100); setSize(320,230); show(); } public boolean val(String s) { try{ Integer.parseInt(s); flag1=true; } catch(NumberFormatException ex){flag1=false;} return flag1; } public void actionPerformed(ActionEvent ae) { String s=ae.getActionCommand(); String v=tf1.getText().trim(); String pwd=pw.getText(); if(s=="Ok") { f=val(v); if (f) { try { Context ic=getInitialContext(); Object ref=ic.lookup("admlogin"); login1Home home=(login1Home)PortableRemoteObject.narrow(ref,login1Home.class); login1Remote re=home.create(); flag=re.admlogin(v,pwd); if(flag) { menuForm mnf=new menuForm(); mnf.setVisible(true); mnf.setSize(1000,1000); mnf.show(); this.dispose(); } else

{ JOptionPane.showMessageDialog(this,"Invalid username Please try again.","Error",JOptionPane.WARNING_MESSAGE); tf1.selectAll(); } } catch(java.rmi.RemoteException e) { System.out.println("remote exception "+e); } catch(javax.ejb.CreateException e) { System.out.println("create exception "+e); } catch(javax.ejb.RemoveException e) { System.out.println("remote exception "+e); }*/ catch(javax.naming.NamingException e) { System.out.println("naming exception "+e); }

/*

} else { JOptionPane.showMessageDialog(this,"Invalid username Please try again.","Error",JOptionPane.WARNING_MESSAGE); tf1.selectAll(); } } else { System.exit(0); }

} private static Context getInitialContext() throws NamingException { Context ctx = null; try { Properties h = new Properties();

h.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactor y"); h.put(Context.PROVIDER_URL, "t3://localhost:7001"); ctx = new InitialContext(h); } catch (Exception ne) { System.out.println("Exception in getting ic "+ne); } return ctx; } public static void main(String args[]) { login1 lg=new login1(); lg. setDefaultCloseOperation(3); } } Home Interface: import javax.ejb.*; import java.rmi.Remote.*; import java.util.*; public interface login1Home extends EJBHome { public login1Remote create()throws CreateException,java.rmi.RemoteException; } Remote Interface: import javax.ejb.*; import java.rmi.*; import java.util.*; import java.rmi.Remote; public interface login1Remote extends EJBObject { public boolean admlogin(String id,String pwd)throws java.rmi.RemoteException; }

Bean: import javax.ejb.*; import java.sql.*; import java.util.*; import java.rmi.*; import java.io.*; import javax.sql.*; import javax.naming.*; public class login1Bean implements SessionBean { SessionContext ctx; Connection con=null; PreparedStatement psm=null; ResultSet rs=null; boolean flag; public void ejbCreate() { System.out.println("create bean"); } public void ejbRemove() { System.out.println("fd"); } public void ejbPassivate() {} public void ejbActivate(){} public void setSessionContext(SessionContext ctx) { this.ctx=ctx; } public boolean admlogin(String id,String pwd) { int aid=Integer.parseInt(id); try{ InitialContext ic = new InitialContext(); DataSource ds=(javax.sql.DataSource)ic.lookup("Mydatasource"); con=ds.getConnection(); System.out.println("Got the connection of session bean ...");

psm=con.prepareStatement("select * from adminvimal where adminid=? and pwd=?"); psm.setInt(1,aid); psm.setString(2,pwd); rs=psm.executeQuery(); if(rs.next()) { flag=true; } else { flag=false; } } catch (NumberFormatException ee){flag=false;} catch(Exception e){flag=false;} return flag; } }

Description: This is the main form and is used to navigate throughout the project. Coding: import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; class menuForm extends JFrame implements ActionListener { JMenuItem acc_add,acc_modi,cust_add,cust_modi,dep_cash,dep_cheq,dep_draft,with_cash,with_che q,with_draft; JMenuItem cqst_dep,cqst_isue,loan_cal,loan_pay; public menuForm() { setTitle("Main Menu Form"); setupEventHandlers(); JMenuBar mb=new JMenuBar(); setJMenuBar(mb); //creating menus JMenu m_cust=new JMenu("Customer"); mb.add(m_cust); JMenu m_tran=new JMenu("Transcation"); mb.add(m_tran); JMenu m_rept=new JMenu("Reports"); mb.add(m_rept); JMenu m_misl=new JMenu("Mislinious"); mb.add(m_misl); //Adding submenus to Customer JMenu sb_acc=new JMenu("Account"); m_cust.add(sb_acc); JMenu sb_cust=new JMenu("Customer"); m_cust.add(sb_cust); //Adding submenus to Transaction JMenu sb_dep=new JMenu("Deposit"); m_tran.add(sb_dep); JMenu sb_with=new JMenu("Withdrawl"); m_tran.add(sb_with); //Adding submenus to reports JMenuItem sb_csl=new JMenuItem("Customer List"); m_rept.add(sb_csl);

sb_csl.addActionListener(this); JMenuItem sb_smt=new JMenuItem("Statement"); m_rept.add(sb_smt); sb_smt.addActionListener(this); JMenuItem sb_cbal=new JMenuItem("Current Bal"); m_rept.add(sb_cbal); sb_cbal.addActionListener(this); JMenu sb_cqst=new JMenu("Cheque Status"); m_rept.add(sb_cqst); //Adding submenus to mislinious JMenuItem sb_spay=new JMenuItem("Stop Payment"); m_misl.add(sb_spay); sb_spay.addActionListener(this); JMenuItem sb_tra=new JMenuItem("Transfer"); m_misl.add(sb_tra); sb_tra.addActionListener(this); JMenu sb_loan=new JMenu("Loan"); m_misl.add(sb_loan); //Adding submenuitems to Account sb_acc.add(acc_add=new JMenuItem("Add")); acc_add.addActionListener(this); sb_acc.add(acc_modi=new JMenuItem("Modify")); acc_modi.addActionListener(this); //Adding submenuitems to Customer sb_cust.add(cust_add=new JMenuItem("Add")); cust_add.addActionListener(this); sb_cust.add(cust_modi=new JMenuItem("Modify")); cust_modi.addActionListener(this); //Adding submenuitems to Deposit sb_dep.add(dep_cash=new JMenuItem("Cash")); dep_cash.addActionListener(this); sb_dep.add(dep_cheq=new JMenuItem("Cheque")); dep_cheq.addActionListener(this); sb_dep.add(dep_draft=new JMenuItem("Demand Draft")); dep_draft.addActionListener(this); //Adding submenuitems to withdral sb_with.add(with_cash=new JMenuItem("Cash")); with_cash.addActionListener(this); sb_with.add(with_cheq=new JMenuItem("Cheque")); with_cheq.addActionListener(this); sb_with.add(with_draft=new JMenuItem("Demand Draft")); with_draft.addActionListener(this); //Adding submenuitems to Cheque Status sb_cqst.add(cqst_dep=new JMenuItem("Deposit")); cqst_dep.addActionListener(this);

sb_cqst.add(cqst_isue=new JMenuItem("Issue")); cqst_isue.addActionListener(this); //Adding submenuitems to Loan sb_loan.add(loan_cal=new JMenuItem("Loan")); loan_cal.addActionListener(this); sb_loan.add(loan_pay=new JMenuItem("Detail Of Payment")); loan_pay.addActionListener(this); setVisible(true); setSize(1000,1000); show(); } public void actionPerformed(ActionEvent ae) { if(ae.getSource()==acc_add) { createAccountClient ac=new createAccountClient(); ac.setVisible(true); ac.setLocation(200,100); ac.setSize(320,300); ac.show(); } else if(ae.getSource()==acc_modi) { } else if(ae.getSource()==cust_add) { this.setEnabled(false); addCustomer cus=new addCustomer(); cus.setVisible(true); cus.setLocation(200,100); cus.setSize(500,350); //if(this.isEnabled()) //{} //else //this.setEnabled(true); //cus.show(); } else if(ae.getSource()==cust_modi) { modifyCustomer mcus=new modifyCustomer(); mcus.setVisible(true);

mcus.setLocation(200,100); mcus.setSize(270,200); mcus.show(); } else if(ae.getSource()==dep_cash) { cashDeposit cdep=new cashDeposit(); cdep.setVisible(true); cdep.setLocation(200,100); cdep.setSize(320,230); //this.setEnabled(false); cdep.show(); } else if(ae.getSource()==dep_cheq) { chequeDeposit cdep=new chequeDeposit(); cdep.setVisible(true); cdep.setLocation(200,100); cdep.setSize(330,253); cdep.show(); } else if(ae.getSource()==dep_draft) { ddDeposit ddep=new ddDeposit(); ddep.setVisible(true); ddep.setLocation(200,100); ddep.setSize(330,253); ddep.show(); } else if(ae.getSource()==with_cash) { cashWithdraw cwith=new cashWithdraw(); cwith.setVisible(true); cwith.setLocation(200,100); cwith.setSize(320,195); cwith.show(); } else if(ae.getSource()==with_cheq) { chequeWithdraw cwith=new chequeWithdraw(); cwith.setVisible(true); cwith.setLocation(200,100); cwith.setSize(326,225); cwith.show(); } else if(ae.getSource()==with_draft)

{ ddWithdraw dwith=new ddWithdraw(); dwith.setVisible(true); dwith.setLocation(200,100); dwith.setSize(330,253); dwith.show(); } /*else if(ae.getSource()==) { }*/ } public static void main(String args[]) { menuForm mnf=new menuForm(); } class WindowHandler extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } void setupEventHandlers() { addWindowListener(new WindowHandler()); } }

Description:

When a customer wants to open a new account administrator needs to fill up this form with appropriate values. He needs to know the branch ID of the branch. Then the Add button is clicked and the account number is generated and is displayed to the user dynamically.

Coding: Client: import javax.naming.*; import java.rmi.*; import java.util.*; import java.io.*; import javax.rmi.PortableRemoteObject; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class createAccountClient extends JFrame implements ActionListener { JLabel l1,l2,l3,l4,l5,l6; JComboBox cb1,cb2,cb3,cb4; JTextField tf1,tf2,tf3,tf4; JButton b1,b2,b3; Vector v=new Vector(); boolean vflag,flag; int acno=0; public createAccountClient() { String date[]={"01","02","03","04","05","06","06","07","08","09","10","11","12","13","14", "15","16","17","18","19","20","21","22","23","24","25","27","28","29","30","31"}; String mm[]={"JUN","FEB","MAR","APR","MAY","JUNE","JULY","AUG","SEP","OCT"," NOV","DEC"}; String yy[]={"1980","1981","1997","1998","1999","2000","2001","2002","2003","2004"}; setTitle("Account creation"); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null);

l1=new JLabel("Account type"); l2=new JLabel("Opening Bal"); l3=new JLabel("Date of open"); l4=new JLabel("Branch id"); l5=new JLabel("Customer name"); l6=new JLabel("Customer Address"); tf1=new JTextField(20); tf2=new JTextField(20); tf3=new JTextField(20); tf4=new JTextField(20); cb1=new JComboBox(); cb1.addItem("CURRENT"); cb1.addItem("SAVING"); cb2=new JComboBox(); for(int i=0;i<31;i++) cb2.addItem(date[i]); cb3=new JComboBox(); for(int j=0;j<12;j++) cb3.addItem(mm[j]); cb4=new JComboBox(); for(int k=0;k<10;k++) cb4.addItem(yy[k]); b1=new JButton("Add"); b2=new JButton("Back"); b3=new JButton("Exit"); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); pane.add(l1); l1.setBounds(20,20,100,15); pane.add(l2); l2.setBounds(20,50,300,15); pane.add(l3); l3.setBounds(20,80,300,15); pane.add(l4); l4.setBounds(20,110,300,15); pane.add(l5); l5.setBounds(20,140,300,15); pane.add(l6); l6.setBounds(20,170,300,15); pane.add(b1); b1.setBounds(30,240,70,25); pane.add(b2); b2.setBounds(110,240,70,25); pane.add(b3); b3.setBounds(190,240,70,25);

pane.add(cb1); cb1.setBounds(140,20,130,20); pane.add(cb2); cb2.setBounds(140,80,45,20); pane.add(cb3); cb3.setBounds(186,80,55,20); pane.add(cb4); cb4.setBounds(242,80,56,20); pane.add(tf1); tf1.setBounds(140,50,140,20); pane.add(tf2); tf2.setBounds(140,110,140,20); pane.add(tf3); tf3.setBounds(140,140,140,20); pane.add(tf4); tf4.setBounds(140,170,140,20); setVisible(true); setLocation(200,100); setSize(350,360); setDefaultCloseOperation(3); show(); } boolean verify(String s) { try { Integer.parseInt(s); vflag=true; }catch(NumberFormatException ex){vflag=false;} return vflag; } public void actionPerformed(ActionEvent e) { v.addElement(""+cb1.getSelectedItem()); String obal=tf1.getText(); flag=verify(obal); if(flag) { flag=false; v.addElement(obal); String dt=""+cb2.getSelectedItem()+"-"+""+cb3.getSelectedItem() +"-"+""+cb4.getSelectedItem(); v.addElement(dt); System.out.println(dt); String bid=tf2.getText(); flag=verify(bid);

if(flag) { v.addElement(bid); v.addElement(tf3.getText()); v.addElement(tf4.getText()); String a=e.getActionCommand(); if(a=="Add") { System.out.println(v); try { Context ic=getInitialContext(); Object ref=ic.lookup("generateAccountNo"); createAccount1Home home=(createAccount1Home)PortableRemoteObject.narrow(ref,createAccount1Home.cl ass); createAccount1Remote re=home.create(); acno=re.generateAccountNo(v); JOptionPane.showMessageDialog(this,"Your Account No is "+acno,"Account No",JOptionPane.WARNING_MESSAGE); } catch(java.rmi.RemoteException ee){System.out.println("remote exception "+ee);} catch(javax.ejb.CreateException ee){System.out.println("create exception "+ee);} catch(javax.naming.NamingException ee){System.out.println("naming exception "+ee);} } else{ System.exit(0);} } else { JOptionPane.showMessageDialog(this,"Invalid Branch id Please try again.","Error",JOptionPane.WARNING_MESSAGE); tf2.selectAll(); } } else { JOptionPane.showMessageDialog(this,"Opening Balance should be number Please try again.","Error",JOptionPane.WARNING_MESSAGE); tf1.selectAll(); } } private static Context getInitialContext() throws NamingException {

Context ctx = null; try { Properties h = new Properties(); h.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactor y"); h.put(Context.PROVIDER_URL, "t3://localhost:7001"); ctx = new InitialContext(h); } catch (Exception ne){System.out.println("Exception in getting ic "+ne);} return ctx; } public static void main(String args[]) { new createAccountClient(); } }

Home interface: import javax.ejb.*; import java.rmi.Remote.*; import java.util.*; public interface createAccount1Home extends EJBHome { public createAccount1Remote create()throws CreateException,java.rmi.RemoteException; } Remote Interface: import javax.ejb.*; import java.rmi.*; import java.util.*; import java.rmi.Remote; public interface createAccount1Remote extends EJBObject { public int generateAccountNo(Vector v)throws java.rmi.RemoteException; }

Bean: import javax.ejb.*; import java.sql.*; import java.util.*; import java.rmi.*; import java.io.*; import javax.sql.*; import javax.naming.*; public class createAccount1Bean implements SessionBean { SessionContext ctx; Connection con=null; Statement smt=null; ResultSet rs=null; int acno=0; public void ejbCreate() { System.out.println("create bean"); } public void ejbRemove() { System.out.println("fd"); } public void ejbPassivate() {} public void ejbActivate(){} public void setSessionContext(SessionContext ctx) { this.ctx=ctx; } public int generateAccountNo(Vector v) { String actype=""+v.elementAt(0); int obal=Integer.parseInt(""+v.elementAt(1)); String dat=""+v.elementAt(2); int bid=Integer.parseInt(""+v.elementAt(3));

String cname=""+v.elementAt(4); String cadd=""+v.elementAt(5); System.out.println("inside bean"+v); try{ InitialContext ic = new InitialContext(); DataSource ds=(javax.sql.DataSource)ic.lookup("Mydatasource"); con=ds.getConnection(); System.out.println("Got the connection of session bean ..."); smt=con.createStatement(); smt.executeUpdate("insert into custmastervimal1 values(cust_seq.nextval)"); System.out.println("one row inserted in custmastervimal1..............."); smt.executeUpdate("insert into accvimal1 values(ac_seq.nextval,'"+actype+"',"+obal+",'"+dat+"',"+bid+",'"+cname+"',' "+cadd+"',cust_seq.currval)"); System.out.println("one row insert in accvimal1...."); con.commit(); rs=smt.executeQuery("select accid from accvimal1 where accid=ac_seq.currval"); System.out.println("account id selected from accvimal1"); if(rs.next()) acno=rs.getInt("accid"); System.out.println(acno); } catch(Exception e){System.out.println("error in execution");} return acno; } }

Description: If the user wants to modify his account then he needs to first enter the account number and the click OK button. Coding: Client: import javax.naming.*; import java.rmi.*; import java.util.*; import javax.rmi.PortableRemoteObject; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; class modifyAccount extends JFrame implements ActionListener { JLabel l1; JButton b1,b2; JTextField tf; boolean vflag,aflag,flag; public static int acno=0; public modifyAccount() { setTitle("Account Verification Form");

JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); l1=new JLabel("Account No"); tf=new JTextField(20); b1=new JButton("Ok"); b2=new JButton("Cancel"); b1.addActionListener(this); b2.addActionListener(this); pane.add(l1); l1.setBounds(25,20,100,15); pane.add(tf); tf.setBounds(130,20,140,25); pane.add(b1); b1.setBounds(80,70,80,25); pane.add(b2); b2.setBounds(165,70,80,25); setVisible(true); setSize(300,150); setLocation(250,150); setDefaultCloseOperation(3); setResizable(false); show(); } boolean verify(String ver) { try{ acno=Integer.parseInt(ver); vflag=true; }catch(NumberFormatException ex){vflag=false;} return vflag; } public void actionPerformed(ActionEvent ae) { if(ae.getActionCommand()=="Ok") { String ac=tf.getText(); flag=verify(ac);

if(flag) { try { Context ic=getInitialContext(); Object ref=ic.lookup("verifyAccount"); modifyAccountHome home=(modifyAccountHome)PortableRemoteObject.narrow(ref,modifyAcc ountHome.class); modifyAccountRemote re=home.create(); aflag=re.verifyAccount(acno); //calling remote method to verify account no System.out.println(acno); if(aflag) { this.dispose(); new modifyAccountOption(); } else { JOptionPane.showMessageDialog(this,"Account Id does not exist, Please try again","Message",JOptionPane.WARNING_MESSAGE); tf.selectAll(); } } catch(java.rmi.RemoteException e) { System.out.println("remote exception "+e); } catch(javax.ejb.CreateException e) { System.out.println("create exception "+e); } catch(javax.naming.NamingException e) { System.out.println("naming exception "+e); } } else {

JOptionPane.showMessageDialog(this,"Invalid Account no Please try again.","Error",JOptionPane.WARNING_MESSAGE); tf.selectAll(); } } else{System.exit(0);} } private static Context getInitialContext() throws NamingException { Context ctx = null; try { Properties h = new Properties(); h.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialC ontextFactory"); h.put(Context.PROVIDER_URL, "t3://localhost:7001"); ctx = new InitialContext(h); } catch (Exception ne) { System.out.println("Exception in getting ic "+ne); } return ctx; } public static void main(String args[]) { modifyAccount ma=new modifyAccount(); } }
Home Interface: import javax.ejb.*; import java.rmi.*; public interface modifyAccountHome extends EJBHome

{ public modifyAccountRemote create()throws CreateException,java.rmi.RemoteException; }

Remote Interface: import javax.ejb.*; import java.rmi.Remote.*; import java.rmi.*; import java.util.*; public interface modifyAccountRemote extends EJBObject { public boolean verifyAccount(int ac)throws java.rmi.RemoteException; public Vector changeAcType(int ac)throws java.rmi.RemoteException; public boolean updateAccount(int ac,String s)throws java.rmi.RemoteException; } Bean: import javax.ejb.*; import java.sql.*; import java.util.*; import java.rmi.*; import java.io.*; import javax.sql.*; import javax.naming.*; public class modifyAccountBean implements SessionBean { SessionContext ctx; Connection con=null; PreparedStatement psm=null; ResultSet rs=null; boolean flag,uflag; Vector v=new Vector(); public void ejbCreate(){}

public void ejbRemove(){} public void ejbPassivate(){} public void ejbActivate(){} public void setSessionContext(SessionContext ctx) { this.ctx=ctx; } /*public void createConnection() { try { InitialContext ic=new InitialContext(); DataSource ds=(javax.sql.DataSource)ic.lookup("Mydatasource"); con=ds.getConnection(); System.out.println("Connection to Session Bean is established"); } catch(Exception ee){System.out.println("Error in Connection to database");} }*/ public boolean verifyAccount(int ac) { try { InitialContext ic=new InitialContext(); DataSource ds=(javax.sql.DataSource)ic.lookup("Mydatasource"); con=ds.getConnection(); System.out.println("Connection to Session Bean is established"); psm=con.prepareStatement("select *from accvimal1 where accid=?"); psm.setInt(1,ac); rs=psm.executeQuery(); if(rs.next()) flag=true; } catch(Exception e){flag=false;} return flag; } public Vector changeAcType(int ac) { try { InitialContext ic=new InitialContext(); DataSource ds=(javax.sql.DataSource)ic.lookup("Mydatasource"); con=ds.getConnection(); System.out.println("Connection to Session Bean is established");

psm=con.prepareStatement("select custvimal1.cname,accvimal1.acctype,accvimal1.openbal from custvimal1,accvimal1 where accvimal1.accid=?"); psm.setInt(1,ac); rs=psm.executeQuery(); System.out.println("Query executed"); if(rs.next()) { System.out.println("inside if"); v.addElement(""+rs.getString(1)); v.addElement(""+rs.getString(2)); v.addElement(""+rs.getInt(3)); System.out.println("Vector inside bean"+v); } } catch(Exception ex){System.out.println("inside catch error in executing Query");} return v; } public boolean updateAccount(int acid,String actype) { try { InitialContext ic=new InitialContext(); DataSource ds=(javax.sql.DataSource)ic.lookup("Mydatasource"); con=ds.getConnection(); System.out.println("Connection to Session Bean is established"); String aid=""+acid; psm=con.prepareStatement("update accvimal1 set acctype=? where accid=?");System.out.println("after Query"); psm.setString(1,actype); psm.setString(2,aid);System.out.println("after value set"+aid); int i=psm.executeUpdate();System.out.println("Query Executed"+i); con.commit(); if(i!=0) uflag=true; } catch(Exception exc){uflag=false;System.out.println("error is excecuting");} return uflag; } }

Description:

When account number is verified this form is displayed. A customer can change his account type, shift his account to some other branch and close his account.
Coding: Client: import javax.swing.*; import java.awt.event.*; import java.io.*; public class modifyAccountOption extends JFrame implements ActionListener { JLabel l; JButton b1,b2,b3,b4; public modifyAccountOption() {

setTitle("Modify Account Option "); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); l=new JLabel("Chose Option "); b1=new JButton("Change Account Type"); b2=new JButton("Shift Account"); b3=new JButton("Close Account"); b4=new JButton("Cancle"); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); pane.add(l); l.setBounds(100,20,200,20); pane.add(b1); b1.setBounds(40,50,160,30); pane.add(b2); b2.setBounds(40,80,160,30); pane.add(b3); b3.setBounds(40,110,160,30); pane.add(b4); b4.setBounds(40,140,160,30); setVisible(true); setSize(240,230); setLocation(230,145); setDefaultCloseOperation(3); setResizable(false); show(); } public void actionPerformed(ActionEvent ae) { String s=ae.getActionCommand(); if(s=="Change Account Type") { this.dispose(); new changeAccountType(); } else if(s=="Shift Account") { this.dispose(); new shiftAccount(); } else if(s=="Close Account") { this.dispose();

new closeAccount(); } else{System.exit(0);} } public static void main(String args[]) { modifyAccountOption mao=new modifyAccountOption(); } }

Home Interface, remote Interface will remain same as above for this client program.

Coding : Client: import javax.swing.*; import javax.naming.*; import java.rmi.*; import java.util.*; import javax.rmi.PortableRemoteObject; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class changeAccountType extends JFrame implements ActionListener { JLabel l1,l2,l3,l4; JTextField tf1,tf2,tf3;

JComboBox cb; JButton b1,b2; Vector v; boolean uflag; public changeAccountType() { v=new Vector(); try { Context ic=getInitialContext(); Object ref=ic.lookup("verifyAccount"); modifyAccountHome home=(modifyAccountHome)PortableRemoteObject.narrow(ref,modifyAccountHome.cl ass); modifyAccountRemote re=home.create(); System.out.println("Account no inside changheaccounttype : "+modifyAccount.acno); v=(Vector)re.changeAcType(modifyAccount.acno); System.out.println(v); } catch(java.rmi.RemoteException e) {System.out.println("remote exception "+e);} catch(javax.ejb.CreateException e){System.out.println("create exception "+e);} catch(javax.naming.NamingException e) {System.out.println("naming exception "+e);} setTitle("Change Account Type"); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); l1=new JLabel("Name"); l2=new JLabel("Account Type"); l3=new JLabel("Current Balance"); l4=new JLabel("New Account Type"); tf1=new JTextField(20); tf1.setEnabled(false); tf1.setText(""+v.elementAt(0)); tf2=new JTextField(20); tf2.setEnabled(false); tf2.setText(""+v.elementAt(1)); tf3=new JTextField(20); tf3.setEnabled(false); tf3.setText(""+v.elementAt(2));

b1=new JButton("Update"); b2=new JButton("Cancle"); cb=new JComboBox(); cb.addItem("CURRENT"); cb.addItem("SAVING"); b1.addActionListener(this); b2.addActionListener(this); pane.add(l1); l1.setBounds(20,20,110,15); pane.add(l2); l2.setBounds(20,50,110,15); pane.add(l3); l3.setBounds(20,80,110,15); pane.add(l4); l4.setBounds(20,110,110,15); pane.add(tf1); tf1.setBounds(135,20,150,20); pane.add(tf2); tf2.setBounds(135,50,150,20); pane.add(tf3); tf3.setBounds(135,80,150,20); pane.add(cb); cb.setBounds(135,110,150,20); pane.add(b1); b1.setBounds(90,150,80,25); pane.add(b2); b2.setBounds(175,150,80,25); setVisible(true); setSize(330,220); setLocation(200,90); setDefaultCloseOperation(3); setResizable(false); show(); } /*boolean verify(String ver) { try{ Integer.parseInt(ver); vflag=true; }catch(NumberFormatException ex){vflag=false;} return vflag; }*/ public void actionPerformed(ActionEvent ae) { String s=ae.getActionCommand(); if(s=="Update")

{ String atype=""+cb.getSelectedItem(); try { Context ic=getInitialContext(); Object ref=ic.lookup("verifyAccount"); modifyAccountHome home=(modifyAccountHome)PortableRemoteObject.narrow(ref,modifyAccountHome.cl ass); modifyAccountRemote re=home.create(); uflag=re.updateAccount(modifyAccount.acno,atype); if(uflag) JOptionPane.showMessageDialog(this,"Account type Updated Successfuly.","Message",JOptionPane.WARNING_MESSAGE); new menuForm(); this.dispose(); } catch(Exception eee){eee.printStackTrace();} } else{System.exit(0);} } private static Context getInitialContext() throws NamingException { Context ctx = null; try { Properties h = new Properties(); h.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactor y"); h.put(Context.PROVIDER_URL, "t3://localhost:7001"); ctx = new InitialContext(h); } catch (Exception ne) { System.out.println("Exception in getting ic "+ne); } return ctx; } public static void main(String args[]) { changeAccountType cat=new changeAccountType();

} } Home Interface, remote Interface will remain same as above for this client program.

Description :

This form is used when the customer wants to shift his account to some other branch.
Coding: import javax.swing.*; import java.awt.event.*; import java.io.*; public class shiftAccount extends JFrame implements ActionListener { JLabel l1,l2,l3,l4,l5; JTextField tf1,tf2; JComboBox cb1,cb2,cb3; JButton b1,b2; //boolean vflag,flag;

public shiftAccount() { setTitle("Shift Account Form"); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); l1=new JLabel("Name"); l2=new JLabel("Branch Id"); l3=new JLabel("Location"); l4=new JLabel("Area"); l5=new JLabel("New Branch Id"); tf1=new JTextField(20); tf1.setEnabled(false); tf2=new JTextField(20); tf2.setEnabled(false); cb1=new JComboBox(); cb2=new JComboBox(); cb3=new JComboBox(); b1=new JButton("Shift"); b2=new JButton("Cancle"); b1.addActionListener(this); b2.addActionListener(this); pane.add(l1); l1.setBounds(20,20,110,15); pane.add(l2); l2.setBounds(20,50,110,15); pane.add(l3); l3.setBounds(20,80,110,15); pane.add(l4); l4.setBounds(20,110,110,15); pane.add(l5); l5.setBounds(20,140,110,15); pane.add(tf1); tf1.setBounds(120,20,160,20); pane.add(tf2); tf2.setBounds(120,50,160,20); pane.add(cb1); cb1.setBounds(120,80,160,20); pane.add(cb2); cb2.setBounds(120,110,160,20); pane.add(cb3); cb3.setBounds(120,140,160,20); pane.add(b1); b1.setBounds(90,180,80,25); pane.add(b2); b2.setBounds(175,180,80,25); setVisible(true);

setSize(330,255); setLocation(200,90); setDefaultCloseOperation(3); setResizable(false); show(); } /*boolean verify(String ver) { try{ Integer.parseInt(ver); vflag=true; }catch(NumberFormatException ex){vflag=false;} return vflag; }*/ public void actionPerformed(ActionEvent ae) { String s=ae.getActionCommand(); if(s=="Shift") { } else{System.exit(0);} } public static void main(String args[]) { shiftAccount sa=new shiftAccount(); } }

Description:

This form is used to close the account of the customer.


Coding: import javax.swing.*; import java.awt.event.*; import java.io.*; public class closeAccount extends JFrame implements ActionListener { JLabel l1,l2,l3,l4,l5; JTextField tf1,tf2,tf3,tf4,tf5; JButton b1,b2; //boolean vflag,flag; public closeAccount() { setTitle("Close Account "); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); l1=new JLabel("Account No"); l2=new JLabel("Customer Name"); l3=new JLabel("Current Balance"); l4=new JLabel("Branch Id"); l5=new JLabel("Account Type"); tf1=new JTextField(20); tf1.setEnabled(false); tf2=new JTextField(20); tf2.setEnabled(false); tf3=new JTextField(20); tf3.setEnabled(false); tf4=new JTextField(20); tf4.setEnabled(false); tf5=new JTextField(20); tf5.setEnabled(false); b1=new JButton("Update"); b2=new JButton("Cancle"); b1.addActionListener(this); b2.addActionListener(this); pane.add(l1); l1.setBounds(20,20,110,15); pane.add(l2); l2.setBounds(20,50,110,15); pane.add(l3);

l3.setBounds(20,80,110,15); pane.add(l4); l4.setBounds(20,110,110,15); pane.add(l5); l5.setBounds(20,140,110,15); pane.add(tf1); tf1.setBounds(135,20,150,20); pane.add(tf2); tf2.setBounds(135,50,150,20); pane.add(tf3); tf3.setBounds(135,80,150,20); pane.add(tf4); tf4.setBounds(135,110,150,20); pane.add(tf5); tf5.setBounds(135,140,150,20); pane.add(b1); b1.setBounds(90,180,80,25); pane.add(b2); b2.setBounds(175,180,80,25); setVisible(true); setSize(330,255); setLocation(200,120); setDefaultCloseOperation(3); setResizable(false); show(); } /*boolean verify(String ver) { try{ Integer.parseInt(ver); vflag=true; }catch(NumberFormatException ex){vflag=false;} return vflag; }*/ public void actionPerformed(ActionEvent ae) { String s=ae.getActionCommand(); if(s=="Update") { } else{System.exit(0);} } public static void main(String args[]) {

closeAccount ca=new closeAccount(); } }

Description:

This form is used to deposit cash by the customer. For this he needs to enter the account number, date, amount and his name.
Coding: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class cashDeposit extends JFrame implements ActionListener { JLabel l1,l2,l3,l4; JTextField tf1,tf2,tf3; JComboBox cb1,cb2,cb3; JButton b1,b2;

public cashDeposit() { setTitle("Cash Deposit"); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); String date[]={"DD","01","02","03","04","05","06","06","07","08","09","10","11","12","13","1 4", "15","16","17","18","19","20","21","22","23","24","25","27","28","29","30","31"}; String mm[]={"MM","JUN","FEB","MAR","APR","MAY","JUNE","JULY","AUG","SEP","O CT","NOV","DEC"}; String yy[]={"YY","1980","1981","1997","1998","1999","2000","2001","2002","2003","2004" }; l1=new JLabel("Account No"); l2=new JLabel("Deposit_date"); l3=new JLabel("Amount"); l4=new JLabel("Deposited By"); tf1=new JTextField(20); tf2=new JTextField(20); tf3=new JTextField(20); cb1=new JComboBox(); for(int i=0;i<32;i++) cb1.addItem(date[i]); cb2=new JComboBox(); for(int j=0;j<13;j++) cb2.addItem(mm[j]); cb3=new JComboBox(); for(int k=0;k<11;k++) cb3.addItem(yy[k]); b1=new JButton("Ok"); b2=new JButton("Cancel"); b1.addActionListener(this); b2.addActionListener(this); pane.add(l1); l1.setBounds(20,20,90,15); pane.add(l2); l2.setBounds(20,50,90,15); pane.add(l3); l3.setBounds(20,80,90,15); pane.add(l4); l4.setBounds(20,110,90,15); pane.add(tf1); tf1.setBounds(125,20,159,20); pane.add(cb1);

cb1.setBounds(125,50,45,20); pane.add(cb2); cb2.setBounds(170,50,57,20); pane.add(cb3); cb3.setBounds(228,50,57,20); pane.add(tf2); tf2.setBounds(125,80,159,20); pane.add(tf3); tf3.setBounds(125,110,159,20); pane.add(b1); b1.setBounds(110,150,80,25); pane.add(b2); b2.setBounds(187,150,80,25); } public void actionPerformed(ActionEvent ae) { String s=ae.getActionCommand(); if(s=="Ok") { } else { //menuForm mnf=new menuForm(); //mnf.setVisible(true); //mnf.setSize(1000,1000); //mnf.show(); System.exit(0); }

} public static void main(String args[]) { cashDeposit cdep=new cashDeposit(); cdep.setVisible(true); cdep.setLocation(200,100); cdep.setSize(320,230); cdep.show(); } }

Description:

This form is used to deposite cheque.


Coding: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class chequeDeposit extends JFrame implements ActionListener { JLabel l1,l2,l3,l4,l5; JTextField tf1,tf2,tf3,tf4; JComboBox cb1,cb2,cb3; JButton b1,b2; public chequeDeposit() { setTitle("Cheque Deposit"); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); String date[]={"DD","01","02","03","04","05","06","06","07","08","09","10","11","12","13","1 4", "15","16","17","18","19","20","21","22","23","24","25","27","28","29","30","31"};

String mm[]={"MM","JUN","FEB","MAR","APR","MAY","JUNE","JULY","AUG","SEP","O CT","NOV","DEC"}; String yy[]={"YY","1980","1981","1997","1998","1999","2000","2001","2002","2003","2004" }; l1=new JLabel("Account NO"); l2=new JLabel("Cheque NO"); l3=new JLabel("Bank Name"); l4=new JLabel("Amount"); l5=new JLabel("Date Of Deposit"); tf1=new JTextField(20); tf2=new JTextField(20); tf2=new JTextField(20); tf3=new JTextField(20); tf4=new JTextField(20); cb1=new JComboBox(); for(int i=0;i<32;i++) cb1.addItem(date[i]); cb2=new JComboBox(); for(int j=0;j<13;j++) cb2.addItem(mm[j]); cb3=new JComboBox(); for(int k=0;k<11;k++) cb3.addItem(yy[k]); b1=new JButton("Ok"); b2=new JButton("Cancel"); b1.addActionListener(this); b2.addActionListener(this); pane.add(l1); l1.setBounds(20,20,90,15); pane.add(l2); l2.setBounds(20,50,90,15); pane.add(l3); l3.setBounds(20,80,90,15); pane.add(l4); l4.setBounds(20,110,90,15); pane.add(l5); l5.setBounds(20,140,90,15); pane.add(tf1); tf1.setBounds(125,20,159,20); pane.add(tf2); tf2.setBounds(125,50,159,20); pane.add(tf3); tf3.setBounds(125,80,159,20); pane.add(tf4);

tf4.setBounds(125,110,159,20); pane.add(cb1); cb1.setBounds(125,140,45,20); pane.add(cb2); cb2.setBounds(170,140,57,20); pane.add(cb3); cb3.setBounds(228,140,57,20); pane.add(b1); b1.setBounds(110,180,80,25); pane.add(b2); b2.setBounds(188,180,80,25); } public void actionPerformed(ActionEvent ae) { String s=ae.getActionCommand(); if(s=="Ok") { } else System.exit(0);

} public static void main(String args[]) { chequeDeposit cdep=new chequeDeposit(); cdep.setVisible(true); cdep.setLocation(200,100); cdep.setSize(330,253); cdep.show(); } }

Description:

This form is used to deposit Demand Draft.


Coding: import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class ddDeposit extends JFrame implements ActionListener { JLabel l1,l2,l3,l4,l5; JTextField tf1,tf2,tf3,tf4; JComboBox cb1,cb2,cb3; JButton b1,b2; public ddDeposit() { setTitle("Demand Draft Deposit"); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); String date[]={"DD","01","02","03","04","05","06","06","07","08","09","10","11","12","13","1 4", "15","16","17","18","19","20","21","22","23","24","25","27","28","29","30","31"};

String mm[]={"MM","JUN","FEB","MAR","APR","MAY","JUNE","JULY","AUG","SEP","O CT","NOV","DEC"}; String yy[]={"YY","1980","1981","1997","1998","1999","2000","2001","2002","2003","2004" }; l1=new JLabel("Draft No"); l2=new JLabel("Issued By"); l3=new JLabel("Deposit_Date"); l4=new JLabel("Amount"); l5=new JLabel("Account NO"); tf1=new JTextField(20); tf2=new JTextField(20); tf2=new JTextField(20); tf3=new JTextField(20); tf4=new JTextField(20); cb1=new JComboBox(); for(int i=0;i<32;i++) cb1.addItem(date[i]); cb2=new JComboBox(); for(int j=0;j<13;j++) cb2.addItem(mm[j]); cb3=new JComboBox(); for(int k=0;k<11;k++) cb3.addItem(yy[k]); b1=new JButton("Ok"); b2=new JButton("Cancel"); b1.addActionListener(this); b2.addActionListener(this); pane.add(l1); l1.setBounds(20,20,90,15); pane.add(l2); l2.setBounds(20,50,90,15); pane.add(l3); l3.setBounds(20,80,90,15); pane.add(l4); l4.setBounds(20,110,90,15); pane.add(l5); l5.setBounds(20,140,90,15); pane.add(tf1); tf1.setBounds(125,20,159,20); pane.add(tf2); tf2.setBounds(125,50,159,20); pane.add(cb1); cb1.setBounds(125,80,45,20); pane.add(cb2);

cb2.setBounds(170,80,57,20); pane.add(cb3); cb3.setBounds(228,80,57,20); pane.add(tf3); tf3.setBounds(125,110,159,20); pane.add(tf4); tf4.setBounds(125,140,159,20); pane.add(b1); b1.setBounds(110,180,80,25); pane.add(b2); b2.setBounds(187,180,80,25); } public void actionPerformed(ActionEvent ae) { String s=ae.getActionCommand(); if(s=="Ok") { } else System.exit(0);

} public static void main(String args[]) { ddDeposit ddep=new ddDeposit(); ddep.setVisible(true); ddep.setLocation(200,100); ddep.setSize(330,253); ddep.show(); } }

Description:

This form is used to withdraw cheque.


Coding: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class chequeWithdraw extends JFrame implements ActionListener { JLabel l1,l2,l3,l4; JTextField tf1,tf2,tf3; JComboBox cb1,cb2,cb3; JButton b1,b2; public chequeWithdraw() { setTitle("Cheque Withdrawl"); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); String date[]={"DD","01","02","03","04","05","06","06","07","08","09","10","11","12","13","1 4", "15","16","17","18","19","20","21","22","23","24","25","27","28","29","30","31"}; String mm[]={"MM","JUN","FEB","MAR","APR","MAY","JUNE","JULY","AUG","SEP","O CT","NOV","DEC"}; String yy[]={"YY","1980","1981","1997","1998","1999","2000","2001","2002","2003","2004" };

l1=new JLabel("Cheque NO"); l2=new JLabel("Account NO"); l3=new JLabel("Withdraw_date"); l4=new JLabel("Amount"); tf1=new JTextField(20); tf2=new JTextField(20); tf2=new JTextField(20); tf3=new JTextField(20); cb1=new JComboBox(); for(int i=0;i<32;i++) cb1.addItem(date[i]); cb2=new JComboBox(); for(int j=0;j<13;j++) cb2.addItem(mm[j]); cb3=new JComboBox(); for(int k=0;k<11;k++) cb3.addItem(yy[k]); b1=new JButton("Ok"); b2=new JButton("Cancel"); b1.addActionListener(this); b2.addActionListener(this); pane.add(l1); l1.setBounds(20,20,90,15); pane.add(l2); l2.setBounds(20,50,90,15); pane.add(l3); l3.setBounds(20,80,90,15); pane.add(l4); l4.setBounds(20,110,90,15); pane.add(tf1); tf1.setBounds(125,20,159,20); pane.add(tf2); tf2.setBounds(125,50,159,20); pane.add(tf3); tf3.setBounds(125,110,159,20); pane.add(cb1); cb1.setBounds(125,80,45,20); pane.add(cb2); cb2.setBounds(170,80,57,20); pane.add(cb3); cb3.setBounds(228,80,57,20); pane.add(b1); b1.setBounds(110,150,80,25); pane.add(b2); b2.setBounds(188,150,80,25);

} public void actionPerformed(ActionEvent ae) { String s=ae.getActionCommand(); if(s=="Ok") { } else System.exit(0);

} public static void main(String args[]) { chequeWithdraw cwith=new chequeWithdraw(); cwith.setVisible(true); cwith.setLocation(200,100); cwith.setSize(326,225); cwith.show(); } }

Description: This form is used to withdraw cash.

Coding: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class cashWithdraw extends JFrame implements ActionListener { JLabel l1,l2,l3; JTextField tf1,tf2; JComboBox cb1,cb2,cb3; JButton b1,b2; public cashWithdraw() { setTitle("Cash Withdrawl"); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); String date[]={"DD","01","02","03","04","05","06","06","07","08","09","10","11","12","13","1 4", "15","16","17","18","19","20","21","22","23","24","25","27","28","29","30","31"}; String mm[]={"MM","JUN","FEB","MAR","APR","MAY","JUNE","JULY","AUG","SEP","O CT","NOV","DEC"}; String yy[]={"YY","1980","1981","1997","1998","1999","2000","2001","2002","2003","2004" }; l1=new JLabel("Account No"); l2=new JLabel("Withdraw_Date"); l3=new JLabel("Ammount"); tf1=new JTextField(20); tf2=new JTextField(20); cb1=new JComboBox(); for(int i=0;i<32;i++) cb1.addItem(date[i]); cb2=new JComboBox(); for(int j=0;j<13;j++) cb2.addItem(mm[j]); cb3=new JComboBox(); for(int k=0;k<11;k++) cb3.addItem(yy[k]); b1=new JButton("Ok"); b2=new JButton("Cancel"); b1.addActionListener(this); b2.addActionListener(this);

pane.add(l1); l1.setBounds(20,20,90,15); pane.add(l2); l2.setBounds(20,50,90,15); pane.add(l3); l3.setBounds(20,80,90,15); pane.add(tf1); tf1.setBounds(125,20,159,20); pane.add(cb1); cb1.setBounds(125,50,45,20); pane.add(cb2); cb2.setBounds(170,50,57,20); pane.add(cb3); cb3.setBounds(228,50,57,20); pane.add(tf2); tf2.setBounds(125,80,159,20); pane.add(b1); b1.setBounds(110,120,80,25); pane.add(b2); b2.setBounds(187,120,80,25); } public void actionPerformed(ActionEvent ae) { String s=ae.getActionCommand(); if(s=="Ok") { } else System.exit(0);

} public static void main(String args[]) { cashWithdraw cwith=new cashWithdraw(); cwith.setVisible(true); cwith.setLocation(200,100); cwith.setSize(320,195); cwith.show(); } }

Description:

This form is used to withdraw demand draft.


Coding: import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class ddWithdraw extends JFrame implements ActionListener { JLabel l1,l2,l3,l4,l5; JTextField tf1,tf2,tf3,tf4; JComboBox cb1,cb2,cb3; JButton b1,b2; public ddWithdraw() { setTitle("Demand Draft Withdrawl"); JPanel pane=(JPanel)getContentPane(); pane.setLayout(null); String date[]={"DD","01","02","03","04","05","06","06","07","08","09","10","11","12","13","1 4", "15","16","17","18","19","20","21","22","23","24","25","27","28","29","30","31"}; String mm[]={"MM","JUN","FEB","MAR","APR","MAY","JUNE","JULY","AUG","SEP","O CT","NOV","DEC"};

String yy[]={"YY","1980","1981","1997","1998","1999","2000","2001","2002","2003","2004" }; l1=new JLabel("Account No"); l2=new JLabel("Draft NO"); l3=new JLabel("Issue_Date"); l4=new JLabel("Address"); l5=new JLabel("Issuer Name"); tf1=new JTextField(20); tf2=new JTextField(20); tf2=new JTextField(20); tf3=new JTextField(20); tf4=new JTextField(20); cb1=new JComboBox(); for(int i=0;i<32;i++) cb1.addItem(date[i]); cb2=new JComboBox(); for(int j=0;j<13;j++) cb2.addItem(mm[j]); cb3=new JComboBox(); for(int k=0;k<11;k++) cb3.addItem(yy[k]); b1=new JButton("Ok"); b2=new JButton("Cancel"); b1.addActionListener(this); b2.addActionListener(this); pane.add(l1); l1.setBounds(20,20,90,15); pane.add(l2); l2.setBounds(20,50,90,15); pane.add(l3); l3.setBounds(20,80,90,15); pane.add(l4); l4.setBounds(20,110,90,15); pane.add(l5); l5.setBounds(20,140,90,15); pane.add(tf1); tf1.setBounds(125,20,159,20); pane.add(tf2); tf2.setBounds(125,50,159,20); pane.add(cb1); cb1.setBounds(125,80,45,20); pane.add(cb2); cb2.setBounds(170,80,57,20); pane.add(cb3); cb3.setBounds(228,80,57,20);

pane.add(tf3); tf3.setBounds(125,110,159,20); pane.add(tf4); tf4.setBounds(125,140,159,20); pane.add(b1); b1.setBounds(110,180,80,25); pane.add(b2); b2.setBounds(187,180,80,25); } public void actionPerformed(ActionEvent ae) { String s=ae.getActionCommand(); if(s=="Ok") { } else System.exit(0);

} public static void main(String args[]) { ddWithdraw dwith=new ddWithdraw(); dwith.setVisible(true); dwith.setLocation(200,100); dwith.setSize(330,253); dwith.show(); } }

WEBPAGES

Description: This is the homepage for Net Banking. If the user is already existing, he can login himself for further processing. A new User can register himself. An existing user can change his password. Client:

CONCLUSIONS

FINDINGS:-

After implementing the system in the market its advantages were incomparable to the present contemporary systems available in the market. The most admirable feature founded was its simplicity in terms of application to the user but its highly beneficial outputs cant be ignored. The users will be highly benefited after using the system. LIMITATIONS:Since, every system has some limitations so our proposed system is also not untouchable in this regard. Although it includes every kind of features but it cant be used in a huge organization where number of networks are very large, because the data base used in this system is an average one. Also it doesnt have different kind of access feature for different users. SCOPE FOR FUTURE WORK :Since this system has been generated by using Object Oriented programming, there are every chances of reusability of the codes in other environment even in different platforms. Also its present features can be enhanced by some simple modification in the codes so as to reuse it in the changing scenario.

SOFTWARE SCOPE Reusability: Reusability is possible as and when we require in this application. We can update it next version. Reusable software reduces design, coding and testing cost by amortizing effort over several designs. Reducing the amount of code also simplifies understanding, which increases the likelihood that the code is correct. We follow up both types

of reusability: Sharing of newly written code within a project and reuse of previously written code on new projects. Extensibility: This software is extended in ways that its original developers may not expect. The following principles enhance extensibility like Hide data structure, Avoid traversing multiple links or methods, Avoid case statements on object type and distinguish public and private operations. Robustness: Its method is robust if it does not fail even if it receives improper parameters. There are some facilities like Protect against errors, Optimize after the program runs, validating arguments and Avoid predefined limits. Understandability: A method is understandable if someone other than the creator of the method can understand the code (as well as the creator after a time lapse). We use the method, which small and coherent helps to accomplish this. Cost-effectiveness: Its cost is under the budget and make within given time period. It is desirable to aim for a system with a minimum cost subject to the condition that it must satisfy all the requirements. Scope of this document is to put down the requirements, clearly identifying the information needed by the user, the source of the information and outputs expected from the system.

PERT (Performance Evaluation and Review Technique) Like Gantt chart PERT also makes use of tasks. It shows achievement. These achievements are however not task achievement. They are terminal achievement called events. Arrow are used to represent tasks and the circle represent the beginning or completion of the task. The PERT chart uses these

paths and events to show the interrelationship of project activation. Activity 1. Task Study the requirement. Analyze the requirement. Design Synopsis. Design data base. Design Login Design Category Form. Design Add/ Remove Form. Design Play Form Link middle ware With Form Test program and Form Prepare Documentation

2.

3. 4. 5.

PERT CHART
Design change password page 10 Design forget password page 8 6 6 Design New User Signup Page

4 Design home page Begin Work 2 0 1 2 2 Design login 4 3 5

Design forget password Link prog and 5 form

10

25

Design change password Test prog and Prepare 20 7 9 form 11 servlet 30 Documentatio

Gannt Chart Basic planning uses bar chart that shows project activation and amount of time they will take. The Gantt chart uses horizontal bars to show the duration of actions and tasks. The left end marks the beginning of the task , the right end its finish.

The heavy horizontal bars are activities and the light horizontal bars are tasks. Broken horizontal bars are estimated time delays or slack time.

Activity 1. 2. 3. 4. 5.

Task Design Synopsis. Design Data Base. Design Front End link program with form Test program and form Prepare documentation

Time in days 0 5 10 15 20 25 30 35 40 45

Activity 1. 1.1 1.2 1.3 1.4

v 2. 2.1 2.2 2.3 2.4 3 4 5 v v v

Form

Prog Link Testing Design Design Establishment

REFERENCES:-

BOOKS-

1. OFFICE 2000 By COURTER MARQUIS. 2. J2EE By GARRY CORNELL. 3. SYSTEM ANALYSIS AND DESIGN By ELIAS M AWAD. 4. SOFTWARE ENGINEERING By IAN SOMMEVILLE. 5. I.G.N.O.U MATERIALS. WEBSITES:1. GOGGLE.COM. 2. WEBOPEDIA.COM. 3. DDJ.COM

Vous aimerez peut-être aussi