me xi bill document
TRANSCRIPT
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
29
USECASE DIAGRAM
30
Use Case Diagram For User
31
E-R DIAGRAM
32
E-R DIAGRAM
Database Name: MexiBills
33
User Login
ID
UserName
Password
PhoneNoAddress
EmailAnswer
Question
ID CellNo
NetworkPayDate
UserName
Amount
Status
CellDetails
UserName
SubjectBody
Password
IDMessge
ACTIVITY DIAGRAM
34
35
SEQUENCE DIAGRAM
36
37
DATABASE DESIGN
38
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 -
39
Message Table:
Field Name Data Type DescriptionId String Primary keyCustomer Name String -Password String -Subject String -Body String -Date String -
40
CODING IMPLEMENTATION
41
CellDetails.java (Entity Class):
/*
* 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;
42
private String id;
private String cname;
private String cellno;
private String network;
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;
43
}
@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 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;
}
44
public void setCname(String cname) {
this.cname = cname;
}
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;
}
45
public void setAmount(double amount) {
this.amount = amount;
}
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;
}
}
46
CellDetailsFacadeRemote.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
*/
@Remote
public interface CellDetailsFacadeRemote {
void create(CellDetails cellDetails);
void edit(CellDetails cellDetails);
void remove(CellDetails cellDetails);
47
public CellDetails find(String pn,String net);
List<CellDetails> findAll();
}
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
48
public class CellDetailsFacade implements CellDetailsFacadeRemote {
@PersistenceContext
private EntityManager em;
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();}}
49
Message.java (Entity Class):
/*
* 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;
50
private Integer id;
private String user1;
private String pass;
private String sub;
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
51
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;
}
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;
}
52
public String getPass() {
return pass;
}
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;
}
53
public String getMsgDate() {
return msgDate;
}
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;
54
/**
*
* @author Satish
*/
@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;
55
import java.util.Date;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
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);
56
}
public List<Message> find(String user,String pass)
{
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();
}}
57
UserLogin.java(Entity Class)
/*
* 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 UserLogin implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private String pass;
private String name;
58
private String adds;
private String phno;
private String email;
private String ques;
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;
}
59
public String getName() {
return name;
}
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() {
60
return email;
}
public void setEmail(String email) {
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;
}
}
61
UserLoginFacadeRemote.java(Session Bean Interface):
/*
* To change this template, choose Tools | Templates
* 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);}
62
UserLoginFacade.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 UserLoginFacade implements UserLoginFacadeRemote {
@PersistenceContext
private EntityManager em;
UserLogin cm=new UserLogin();
63
public void addSignUp(String user,String pass,String name,String add,String pn,String email,String ques,String ans)
{
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)
{
64
String sql1="select Object(o) from UserLogin as o where o.id='"+user+"' and o.pass='"+pass+"'";
return (UserLogin)em.createQuery(sql1).getSingleResult();
}
public List<UserLogin> findAll() {
return em.createQuery("select object(o) from UserLogin as o").getResultList();
}
}
65
FUTURE ENHANCEMENTS
66
FUTURE ENHANCEMENTS
Can be upgraded to an enterprise java bean version.
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.
67
CONCLUSION
68
CONCLUSION
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..
69
REFERENCES
70
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 .
71
72