57349703 Me Xi Bill Document

Preview:

Citation preview

Developed By the Students of NIIT-Nungambakkam

(DIPLOMA IN JAVA TECHNOLOGIES)

A.Birose Banu -R100030103759

Jeevitha.R -R100030101334

Padmavathy.J -R100030101406

Vasuki Devi.D -R100030101435

1

ABSTRACT

Mexibills Solutions Pvt. Ltd is an Online System which can help the customers by

providing a mechanism for paying bills online. Home page consists of Registration module,

Customer login module. In Registration module, where new user can register for their Bill

payment through online and it will be inserted into the database. Customer login checks the

authentication of the user and then allows the customer for online payment and also customer

can view their previous transaction records and status of the latest transaction. We have used

Java Server Pages as the presentation layer and Servlets as controller and entity bean,session

bean for model components and Derby as backend to build this application.

2

CERTIFICATE

This is to Certify that this report Title: Sky High Institute of Management developed by

Chippada Rekha, Jeevitha.R, Padmavathy.J, and Vasuki Devi.D in the partial fulfillment of the

course requirement at NIIT.

Coordinator : Mr.P.Sabari Balaji

Signature :

Date :

Organization : NIIT

Address : NIIT, Nungambakkan, Chennai-34

3

ACKNOWLEDGEMENT

The following deserves wholehearted thanks and I wish to acknowledge all of them

for direct and indirect contribution for the successful completion of this project any writing

venture, the personal and intimate associations of many persons may the single contributing for

the success of the project.

We express our sincere thanks to our faculty Mr.P.Sabari Balaji for co-operation of

our project.

4

SL. NO.

CONTENTS PAGE NO.

1 INTRODUCTION1.1 Existing System1.2 Proposed System

2 SYSTEM CONFIGURATION 2.1 Software Requirements 2.2 Hardware Requirements

3 SYSTEM ANALYSIS3.1 Registration Module3.2 Customer Login

4 SYSTEM DESIGN4.1Class Diagram4.2 Use Case Diagram4.3 Activity Diagram4.4 Sequence Diagram

5 DATABASE DESIGN

6 CODING IMPLEMENTATION

7 FUTURE ENHANCEMENTS

8 CONCLUSION

9 REFERENCES

5

INTRODUCTION:

Danniel Carton established Mexibills Solutions Pvt. Ltd. 12 years ago in Taxco,Mexico.Commencing with a focus on the bills collection business in Taxco,Mexibills Solutions Ltd.quickly broadened its collection services to other cities of Mexico.The Company outsources its bills collection service to various corporate in town.Its services ease the customers of the corporate by providing door-step collection of their bills.

1.1 EXISTING SYSTEM:

In the existing system,bills are collected through augmented collection channels that are spread in all cities of Mexico.Various cooperates send their collection list to those channels and then according to the location of the customers,collection executives are send by the company for collection of the due bills.This way cooperates are exempted from the back-end peocess of collecting the dues and hence they can concentrate on their main business.

Mexibills Solutions Pvt Ltd.satisfies the customer on behalf of the corporates by providing various services like, reminders for due-bills,settlement of erroneous bills,and bills collection at their door-step.As a result,collection requests are also increasing day by day.

Appointing extra human resources to meet the collection targets is affecting the profit margins of the business.Also,managing the data manually is a tedious process for the company.

1.2 ENVISIONED SYSTEM:

With spring business needs, the currnt system is facing a lot of problems.The human resource is falling short in order to meet the currnet targets.Also,various processes like appointing new collection executives , increasing remainder calls,increasing transport requirements to visit places of collection etc are adding up business operational cost.

The management of Mexibills Solutions Pvt. Ltd. Has decided to build an online system which can help the customers by providing a mechanism for paying bills onbline.

While developing the online billing system the following points need to be taken into considerations:

6

• In the new system,customers need to first register themselves in order to use the services on the online billing system.After registering ,they are authorized to pay bills online.

• The system should have a mechanism to authenticate credentials of the registered customers.This will ensure the security for making payments online.

• The system should archieve all the bills with their up-to-date summary for the customer.

• The payment mechanism has to be online and there should be a provision for accepting the credit card details.

7

SYSTEM CONFIGURATION

8

2 SYSTEM CONFIGUARATION

2.1 SOFTWARE REQUIREMENTS:

Operating System : Windows vista ultimate

Database : Derby

Web Technologies : HTML, JSP,Servlet,EJB

IDE : Net Beans IDE 6.0.1

Server Requirements : Sun Application Server

2.2 HARDWARE CONFIGURATION:

Hard Disk : 160 GB Hard Disk

Ram : 2 GB RAM

Processor : Intel Pentium II Processor

9

SYSTEM ANALYSIs

10

3. SYSTEM ANLYSIS:

The Mexibills Solutions Pvt. Ltd consists of following modules.

• Registration Module• Customer Login Module

3.1 REGISTRATION MODULE:

Registration Module will enable the new customer to register for their online bill payments..It consists of a form. you have to fill your Personal Infromation.You should remember the user name and password entered by this form.

3.2 CUSTOMER LOGIN MODULE: Customer login checks the authentication of the user and then allows the customer for

online payment and also customer can view their previous transaction records and status of the latest transaction.

11

Home Page

12

About Us

13

Contact US

14

Sign Up

15

Customer Logion

16

Customer View Page

17

View Catagory

18

Bill Type

19

Customer Details

20

Payment Details

21

Bank Details

22

Payment Confirm

23

View Inbox

24

View Message

25

Delete Message

26

SYSTEM DESIGN

27

CLASS DIAGRAM

28

+setId (in Id : string ) : void+setName (in name : string ) : void+setPassword (in password : string ) : void+setAddress (in address : string ) : void+setPhonenumber (in phonenumber : int ) : void+setEmail (in email : string ) : void+setQuestion (in question : string ) : void+setAnswer (in answer : string ) : void+getId () : string+getName () : string+getPassword () : string+getAddress () : string+getPhonenumber () : int+getEmail () : string+getQuestion () : string+getAnswer () : string

-Id : string-name : string-password : string-address : string-phonenumber : int-email : string-question : string-answer : string

UserLogin+setId (in id : string ) : void+setCellno (in cellno : int) : void+setNetwork (in network : string ) : void+setName (in name : string ) : void+setAmount (in amount : double ) : void+setStatus (in status : string ) : void+setPaydate (in paydate : string ) : void+getId () : string+getCellno () : int+getNetwork () : string+getName () : string+getAmount () : double+getStatus () : string+getPaydate () : string

-Id : string-cellno : int-network : string-name : string-amount : double-status : string-paydate : string

CellDetails

+setId (in id : string ) : void+setName (in name : string ) : void+setPassword (in password : string ) : void+setBody (in body : string ) : void+setSubject (in subject : string ) : void+setDate (in date : string ) : void+getId () : string+getName () : string+getPass () : string+getBody () : string+getSubject () : string+getDate () : string

-Id : string-name : string-password : string-body : string-subject : string-date : string

Message

29

USECASE DIAGRAM

30

Use Case Diagram For User

User

Login

Online Payment

View Inbox

View Catalogue

System

*

*

*

**

*

*

*

31

E-R DIAGRAM

32

E-R DIAGRAM

Database Name: MexiBills

33

User Login

ID

UserName

Password

PhoneNo

Address

Email Answer

Question

ID CellNo

Network

PayDate

UserName

Amount

Status

CellDetails

UserName

Subject

Body

Password

IDMessge

ACTIVITY DIAGRAM

34

SignIn

If Valid User

Welcome Page

Inbox To Pay Bill Ctalogue

Payment Detail

Pay Amount

[Yes ]

[No]

35

SEQUENCE DIAGRAM

36

37

New User CellDetails Message DataBase

Register for Online Payment

Registered Succefully

User

Give Cell Details

View Message

Give Card Details

38

DATABASE DESIGN

39

5.1 LIST OF TABLES

Customer Sign Up Table:

Field Name Data Type Description

Id String Primary key

User Name String -

Pass Word String -

Address String -

Phone No Integer -

Email String -

Question String -

Answer String -

Customer Cell details Table:

Field Name Data Type DescriptionId String Primary keyCustomer Name String -Cell No Integer -Network String -Amount Double -Status String -Payment Date String -

40

Message Table:

Field Name Data Type DescriptionId String Primary keyCustomer Name String -Password String -Subject String -Body String -Date String -

41

CODING IMPLEMENTATION

CellDetails.java (Entity Class):

/*

42

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package Model

import java.io.Serializable;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

/**

*

* @author Satish

*/

@Entity

public class CellDetails implements Serializable {

private static final long serialVersionUID = 1L;

private String id;

private String cname;

private String cellno;

private String network;

43

private String paydate1;

private double amount;

private String status;

public void setId(String id) {

this.id = id;

}

@Id

@GeneratedValue(strategy = GenerationType.AUTO)

public String getId() {

return id;

}

@Override

public int hashCode() {

int hash = 0;

hash += (getId() != null ? getId().hashCode() : 0);

return hash;

}

@Override

public boolean equals(Object object) {

44

// TODO: Warning - this method won't work in the case the id fields are not set

if (!(object instanceof CellDetails)) {

return false;

}

CellDetails other = (CellDetails) object;

if ((this.getId() == null && other.getId() != null) || (this.getId() != null && !this.id.equals(other.id))) {

return false;

}

return true;

}

@Override

public String toString() {

return "Controle.CellDetails[id=" + getId() + "]";

}

public String getCname() {

return cname;

}

public void setCname(String cname) {

this.cname = cname;

}

45

public String getCellno() {

return cellno;

}

public void setCellno(String cellno) {

this.cellno = cellno;

}

public String getNetwork() {

return network;

}

public void setNetwork(String network) {

this.network = network;

}

public double getAmount() {

return amount;

}

public void setAmount(double amount) {

this.amount = amount;

}

46

public String getStatus() {

return status;

}

public void setStatus(String status) {

this.status = status;

}

public String getPaydate1() {

return paydate1;

}

public void setPaydate1(String paydate1) {

this.paydate1 = paydate1;

}

}

CellDetailsFacadeRemote.java( Session Bean Interface):

/*

* To change this template, choose Tools | Templates

47

* and open the template in the editor.

*/

package Controle;

import java.util.List;

import javax.ejb.Remote;

/**

*

* @author Satish

*/

@Remote

public interface CellDetailsFacadeRemote {

void create(CellDetails cellDetails);

void edit(CellDetails cellDetails);

void remove(CellDetails cellDetails);

public CellDetails find(String pn,String net);

List<CellDetails> findAll();

48

}

CellDetailsFacade.java(Session Bean):

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package Model;

import java.util.List;

import javax.ejb.Stateless;

import javax.persistence.EntityManager;

import javax.persistence.PersistenceContext;

/**

*

* @author Satish

*/

@Stateless

public class CellDetailsFacade implements CellDetailsFacadeRemote {

@PersistenceContext

private EntityManager em;

49

public void create(CellDetails cellDetails) {

em.persist(cellDetails);

}

public void edit(CellDetails cellDetails) {

em.merge(cellDetails);

}

public void remove(CellDetails cellDetails) {

em.remove(em.merge(cellDetails));

}

public CellDetails find(String pn,String net)

{

String sql="select object(o) from CellDetails as o where o.cellno = '"+pn+"' and o.network ='"+net+"' and o.status = 'unpaid'";

return (CellDetails)em.createQuery(sql).getSingleResult();

}

public List<CellDetails> findAll() {

return em.createQuery("select object(o) from CellDetails as o").getResultList();}}

Message.java (Entity Class):

/*

50

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package Model;

import java.io.Serializable;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

/**

*

* @author Satish

*/

@Entity

public class Message implements Serializable {

private static final long serialVersionUID = 1L;

private Integer id;

private String user1;

private String pass;

private String sub;

51

private String body;

private String msgDate;

public void setId(Integer id) {

this.id = id;

}

@Id

@GeneratedValue(strategy = GenerationType.AUTO)

public Integer getId() {

return id;

}

@Override

public int hashCode() {

int hash = 0;

hash += (getId() != null ? getId().hashCode() : 0);

return hash;

}

@Override

public boolean equals(Object object) {

// TODO: Warning - this method won't work in the case the id fields are not set

if (!(object instanceof Message)) {

return false;

52

}

Message other = (Message) object;

if ((this.getId() == null && other.getId() != null) || (this.getId() != null && !this.id.equals(other.id))) {

return false;

}

return true;

}

@Override

public String toString() {

return "Controle.Message[id=" + getId() + "]";

}

public String getUser1() {

return user1;

}

public void setUser1(String user1) {

this.user1 = user1;

}

public String getPass() {

return pass;

}

53

public void setPass(String pass) {

this.pass = pass;

}

public String getSub() {

return sub;

}

public void setSub(String sub) {

this.sub = sub;

}

public String getBody() {

return body;

}

public void setBody(String body) {

this.body = body;

}

public String getMsgDate() {

return msgDate;

}

54

public void setMsgDate(String msgDate) {

this.msgDate = msgDate;

}

}

MessageFacadeRemote.java(Session Bean Interface):

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package Controle;

import java.util.List;

import javax.ejb.Remote;

/**

*

* @author Satish

*/

55

@Remote

public interface MessageFacadeRemote {

public void addmess(Integer id,String sub,String body,String user,String pass,String dd);

public List<Message> find(String user,String pass);

public void deleteMes(Integer id);

public Message findMes(Integer id);

public Integer findAll();

}

MessageFacade.java(Session Bean):

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package Controle;

import java.util.Date;

import java.util.List;

import javax.ejb.Stateless;

import javax.persistence.EntityManager;

56

import javax.persistence.PersistenceContext;

/**

*

* @author Satish

*/

@Stateless

public class MessageFacade implements MessageFacadeRemote {

@PersistenceContext

private EntityManager em;

public void addmess(Integer id,String sub,String body,String user,String pass,String dd)

{

Message msg=new Message();

msg.setId(id);

msg.setSub(sub);

msg.setBody(body);

msg.setUser1(user);

msg.setPass(pass);

msg.setMsgDate(dd);

em.persist(msg);

}

public List<Message> find(String user,String pass)

{

57

String sql="select Object(o) from Message as o where o.user1 ='"+user+"' and o.pass = '"+pass+"'";

return em.createQuery(sql).getResultList();

}

public void deleteMes(Integer id)

{

String sql="delete from Message as o where o.id ="+id;

int i=em.createQuery(sql).executeUpdate();

}

public Message findMes(Integer id)

{

String sql="select Object(o) from Message as o where o.id ="+id;

return (Message)em.createQuery(sql).getSingleResult();

}

public Integer findAll()

{

return (Integer)em.createQuery("select max(o.id) from Message as o").getSingleResult();

}}

UserLogin.java(Entity Class)

/*

* To change this template, choose Tools | Templates

58

* and open the template in the editor.

*/

package Model;;

import java.io.Serializable;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

/**

*

* @author Satish

*/

@Entity

public class UserLogin implements Serializable {

private static final long serialVersionUID = 1L;

private String id;

private String pass;

private String name;

private String adds;

private String phno;

private String email;

private String ques;

59

private String ans;

public void setId(String id) {

this.id = id;

}

@Id

@GeneratedValue(strategy = GenerationType.AUTO)

public String getId() {

return id;

}

public String getPass() {

return pass;

}

public void setPass(String pass) {

this.pass = pass;

}

public String getName() {

return name;

}

60

public void setName(String name) {

this.name = name;

}

public String getAdds() {

return adds;

}

public void setAdds(String adds) {

this.adds = adds;

}

public String getPhno() {

return phno;

}

public void setPhno(String phno) {

this.phno = phno;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

61

this.email = email;

}

public String getQues() {

return ques;

}

public void setQues(String ques) {

this.ques = ques;

}

public String getAns() {

return ans;

}

public void setAns(String ans) {

this.ans = ans;

}

}

UserLoginFacadeRemote.java(Session Bean Interface):

/*

* To change this template, choose Tools | Templates

62

* and open the template in the editor.

*/

package Model;

import java.util.List;

import javax.ejb.Remote;

/**

*

* @author Satish

*/

@Remote

public interface UserLoginFacadeRemote {

public UserLogin find(String id,String qes,String ans);

public UserLogin findSign(String user,String pass);

List<UserLogin> findAll();

public void addSignUp(java.lang.String user, java.lang.String pass, java.lang.String name, java.lang.String add, java.lang.String pn, java.lang.String email, java.lang.String ques, java.lang.String ans);}

UserLoginFacade.java(Session Bean)

63

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package Model;

import java.util.List;

import javax.ejb.Stateless;

import javax.persistence.EntityManager;

import javax.persistence.PersistenceContext;

/**

*

* @author Satish

*/

@Stateless

public class UserLoginFacade implements UserLoginFacadeRemote {

@PersistenceContext

private EntityManager em;

UserLogin cm=new UserLogin();

public void addSignUp(String user,String pass,String name,String add,String pn,String email,String ques,String ans)

{

64

cm.setId(user);

cm.setPass(pass);

cm.setName(name);

cm.setAdds(add);

cm.setPhno(pn);

cm.setEmail(email);

cm.setQues(ques);

cm.setAns(ans);

em.persist(cm);

}

public UserLogin find(String id,String qes,String ans)

{

String sql1="select Object(o) from UserLogin as o where o.id='"+id+"' and o.ques = '"+qes+"' and o.ans = '"+ans+"'";

return (UserLogin)em.createQuery(sql1).getSingleResult();

}

public UserLogin findSign(String user,String pass)

{

String sql1="select Object(o) from UserLogin as o where o.id='"+user+"' and o.pass='"+pass+"'";

return (UserLogin)em.createQuery(sql1).getSingleResult();

}

65

public List<UserLogin> findAll() {

return em.createQuery("select object(o) from UserLogin as o").getResultList();

}

}

66

FUTURE ENHANCEMENTS

FUTURE ENHANCEMENTS

Can be upgraded to an enterprise java bean version.

67

Can implement extensive security with role management.

Can have stable relational database language with powerful query capabilities.

Interceptors and filters can be implemented to improve performance.

68

CONCLUSION

CONCLUSION

69

This Project MexiBills Solutions Pvt. Ltd. has taken effective steps to resolve the

drawbacks of the existing system. In this proposed system, New Customer can register their Bill

payment through online. By this System Customer can pay their Bill through online using credit

card or debit card. It is possible for the Customer to view their previous transaction . Customers

can able to view the payment detail..

70

REFERENCES

71

REFERENCES

Web Component Development With Servlet and JSP Technologies(SL-314)

JAVA-2 Complete-Reference

By Patrice Norton & Herbert Child Publisher: Tata McGraw Hill

Java Server Pages

By James good

Core Servlet and Java Server Pages

By Marty Hall, Larry Brown.

WEBSITES

• http://www.java.sun.com/j2ee/tutorial/1_3-fcs/doc/servlets.html .

• http://roseindia.net/struts.html .

• http://www.netbeans.org/kb/60/web/tutorial-webapps.html .

72

73

Recommended