Sei sulla pagina 1di 31

CHAPTER 1: INTRODUCTION

COMPANY PROFILE:
Banglore computer Education was established in 2001 with the vision to create an efficient man power
in the field of software development and to promote the adjoining regions to participate in IT
revolution. The institute provides training in various languages like CORE and Advance JAVA, PHP,
Android, Hibernate, Spring, .Net, C++,etc.
It was founded by Mr. Rajesh K. Bansal who is a SCJP (Sun Certified Java Programmer) having strong
programming skills and 14 years of training experience.
Over these years of working the institute has gained a reputation among the masses as an institute,
which means quality and has contributed to its maximum for the uplifting of an educated modern
society. BCE is certified that management system of company has been assessed and found to comply
with the requirements of ISO 9001:2008.

TEAM: We have a committed team of professionals with experience in variety of tools and platforms.
Our assistants keep themselves updated with the latest technology trends. Our skilled people share a
common vision of growth. We do what we believe in, and we believe in what we do.

BELIEF: We believe in utilizing technology to make things simple and easy to use. We also believe in
thinking ahead and delivering training about technology that can fit well with upcoming future
technologies.

VALUES: We believe that the rich learning experiences our programs offer can effect powerful and
positive transformation in individuals, in their communities, and in their institutions. We work with our
partners and sponsors worldwide to design and implement programs in which participants reach across
and live across boundaries and borders. And we do this in an atmosphere of mutual respect,
organized collaboration, and fun.

FACILITIES:
Some of the facilities offered in BCE are as follows:

Trainers at the centre have 5 years of experience in all languages.


To ensure the quality, all the trainers are certified in their own domain .
Page
1

For learning to be comprehensive, the requirement is to automate complex scenarios. Project


assignments are given to students to help them realize real time experience.
Students are trained on Test Automation Framework, Scripting and given assignments on a
project which equip them to handle any automation project independently.
Also focus is on developing the soft skills of the students which is a key differentiator in the IT
industry today. Soft skills training include interview facing, resume drafting, client interaction,
email etiquette, cross cultural interaction, etc.
Labs are provided to students for working on their projects. Assistants are always available to
help students.

Page
2

CHAPTER 2: TECHNOLOGIES USED


2.1 JAVA:
Java is an object-oriented programming language with a built-in application programming interface
(API) that can handle graphics and user interfaces and that can be used to create applications or applets.
Because of its rich set of API's, similar to Macintosh and Windows, and its platform independence,
Java can also be thought of as a platform in itself. Much of the syntax of Java is the same as C and C+
+. One major difference is that Java does not have pointers.
Java applications are typically compiled to bytecode that can run only on Java virtual machine (JVM)
regardless of computer architecture.
In Java we distinguish between applications, which are programs that perform the same functions as
those written in other programming languages, and applets, which are programs that can be embedded
in a Web page and accessed over the Internet. Our initial focus will be on writing applications. When a
program is compiled, a byte code is produced that can be read and executed by any platform that can
run Java.
There were five primary goals in the creation of the java language:

It should be "simple, object-oriented and familiar"


It should be "robust and secure"
It should be "architecture-neutral and portable"
It should execute with "high performance"
It should be "interpreted, threaded, and dynamic"

2.1.1 LIBRARIES

java.lang: Provides classes that are fundamental to the design of the Java programming
language. The most important classes are Object, which is the root of the class hierarchy, and

Class, instances of which represent classes at run time.


java.io: Provides for system input and output through data streams, serialization and the file
system. Unless otherwise noted, passing a null argument to a constructor or method in any
class or interface in this package will cause a NullPointerException to be thrown.
Page
3

java.applet: Provides the classes necessary to create an applet and the classes an applet uses to

communicate with its applet context.


java.sql: Provides the API for accessing and processing data stored in a data source (usually a
relational database) using the Java programming language. This API includes a framework
whereby different drivers can be installed dynamically to access different data sources.

java.awt: Contains all of the classes for creating user interfaces and for painting graphics and
images. A user interface object such as a button or a scrollbar is called, in AWT terminology, a
component. The Component class is the root of all AWT components. See Component for a
detailed description of properties that all AWT components share.

javax.swing: Provides a set of "lightweight" (all-Java language) components that, to the


maximum degree possible, work the same on all platforms.

2.1.2 JAVA RUNTIME ENVIRONMENT (JRE)


The Java Runtime Environment (JRE) is a set of software tools for development of Java applications. It
combines

the

Java

Virtual

Machine

(JVM),

platform

core

classes

and

libraries.

JRE is part of the Java Development Kit (JDK), but can be downloaded separately. JRE was originally
developed by Sun Microsystems Inc., a wholly owned subsidiary of Oracle Corporation. Also known as
Java runtime.
JRE consists of the following components:
1. Deployment technologies, including deployment, Java Web Start and Java Plug-in.
2. User interface toolkits, including Abstract Window Toolkit (AWT), Swing, Java 2D, Accessibility,
Image I/O, Print Service, Sound, drag and drop (DnD) and input methods.
3. Integration libraries, including Interface Definition Language (IDL), Java Database Connectivity
(JDBC), Java Naming and Directory Interface (JNDI), Remote Method Invocation (RMI), Remote
Method Invocation Over Internet Inter-Orb Protocol (RMI-IIOP) and scripting.

Page
4

4. Other base libraries, including international support, input/output (I/O), extension mechanism,
Beans, Java Management Extensions (JMX), Java Native Interface (JNI), Math, Networking,
Override Mechanism, Security, Serialization and Java for XML Processing (XML JAXP).

2.1.3 JAVA VIRTUAL MACHINE (JVM)


A Java virtual machine (JVM) is an abstract computing machine. There are three notions of the JVM:
specification, implementation, and instance. An instance of the JVM can execute any executable
computer program compiled into Java bytecode. It is the code execution component of the Java
platform.
In the Java programming language, all source code is first written in plain text files ending with
the .java extension. Those source files are then compiled into .class files by the javac compiler.
A .class file does not contain code that is native to your processor; it instead contains bytecodes the
machine language of the Java Virtual Machine (Java VM). The java launcher tool then runs your
application with an instance of the Java Virtual Machine.

FIG.2.1: Compilation and Interpretation of Java [https://www.google.co.in/search?


q=compilation+and+interpreter+of+java&biw=1024&bih=677&source=lnms&tbm=isch&sa=X&ei=T
bpQVNWpIYmA8QWhoIC4AQ&ved=0CAcQ_AUoAg#facrc=_&imgdii=_&imgrc=GMIdMUo_ObV
Page
5

3eM%253A%3B5fCKi1acGhAi9M%3Bhttp%253A%252F%252Fwww.roseindia.net%252Fjava
%252Fjava-introduction%252Fjavatools%252Fjava-interpreter.gif%3Bhttp%253A%252F
%252Fwww.roseindia.net%252Fjava%252Fjava-introduction%252Fjavatools%252Fjavainetrpreter.shtml%3B547%3B297]
Because the Java VM is available on many different operating systems, the same .class files are capable
of running on Microsoft Windows, the Solaris Operating System (Solaris OS), Linux, or Mac OS.
Some virtual machines, such as the Java SE HotSpot at a Glance, perform additional steps at runtime to
give your application a performance boost. This include various tasks such as finding performance
bottlenecks and recompiling (to native code) frequently used sections of code.

Fig 2.2: Platform Independence of java


[https://www.google.co.in/search?
q=platform+independence+of+java&biw=1024&bih=677&source=lnms&tbm=isch&sa=X&ei=wblQV
IL5Ncfm8AXe6oKQBg&ved=0CAYQ_AUoAQ#facrc=_&imgdii=_&imgrc=51MHXemQlGic9M
%253A%3BEgM3MgvUBUUqoM%3Bhttp%253A%252F%252Fwww.javatpoint.com%252Fimages
%252Fplateform.JPG%3Bhttp%253A%252F%252Fwww.javatpoint.com%252Ffeatures-of-java
%3B474%3B391]
2.1.4 FEATURES OF JAVA
Page
6

Platform Independent.
Object-Oriented
Robust and Secure
Distributed
Multithreaded and Interactive
Dynamic and Extensible Code
Architectural Neutral

2.2 FRAMEWORK AND SOFTWARE USED:


2.2.1 SWINGS
Swing implements a set of GUI components that build on AWT technology and provide a pluggable
look and feel. Swing is implemented entirely in the Java programming language, and is based on the
JDK 1.1 Lightweight UI Framework.
Swing features include:

All the features of AWT.


100% Pure Java certified versions of the existing AWT component set (Button, Scrollbar, Label,

etc.).
A rich set of higher-level components (such as tree view, list box, and tabbed panes).
Pure Java design, no reliance on peers.
Pluggable Look and Feel.

Swing components do not depend on peers to handle their functionality. Thus, these components are
often called "lightweight" components.
Pros

Portability: Pure Java design provides for fewer platform specific limitations.
Features: Swing supports a wider range of features like icons and pop-up tool-tips for

components.
Vendor Support: Swing development is more active. Sun puts much more energy into making
Swing robust.
Page
7

Look and Feel: The pluggable look and feel lets you design a single set of GUI components that
can automatically have the look and feel of any OS platform (Microsoft Windows, Solaris,
Macintosh, etc.).

Cons
1. Applet Portability: Most Web browsers do not include the Swing classes, so the Java plugin
must be used.
2. Performance: Swing components are generally slower and buggier than AWT, due to both the
fact that they are pure Java and to video issues on various platforms. Since Swing components
handle their own painting (rather than using native API's like DirectX on Windows) you may
run into graphical glitches.

2.2.2 JDBC
The JDBC is a set of the database access classes. The term JDBC stands for "Java database
Connectivity" and it was developed by Javasoft.
JDBC technology is an API (application program interface) that allows visual access to any tabular data
source from java programming languages by mean of some connecting software called drives. it
provide cross-DBMS connectivity to wide range of SQL database JDBC allows java applets, servlets
and applications to access data in famous database management system.
It also provides access to other tabular data source such as spread sheets or flat files. The JDBC API
allows developer to take advantage of the java platforms write once, run anywhere" capabilities for
industrial strings cross platforms applications that require access to enterprise data. The JDBC API is
the industry standard for data base-independent connectivitys between the java programming language
and a wide range of the database. The JDBC API makes it possible to do these things

Establish a connection with a database or access tabular data source.


Send SQL statements and process the results.

Page
8

Because JDBC is a standard specification, a Java program that uses the JDBC API can connect to any
database management system (DBMS) for which there is a JDBC driver.

2.2.3 ECLIPSE
Eclipse is a multi-language software development environment comprising an integrated development
environment (IDE) and an extensible plug-in system. It is written mostly in Java. It can be used to
develop applications in Java and, by means of various plug-ins, other programming languages
including Ada, C, C++, COBOL, Haskell, Perl, PHP, Python, R, Ruby (including Ruby on Rails
framework), Scala, Clojure, Groovy and Scheme. It can also be used to develop packages for the
software Mathematica. Development environments include the Eclipse Java development tools (JDT)
for Java, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.
The initial codebase originated from VisualAge. The Eclipse SDK (which includes the Java
development tools) is meant for Java developers. Users can extend its abilities by installing plug-ins
written for the Eclipse Platform, such as development toolkits for other programming languages, and
can write and contribute their own plug-in modules.
ARCHITECHTURE:
The Eclipse Platform subproject provides the core frameworks and services upon which all plug-in
extensions are created. It also provides the runtime in which plug-ins are loaded, integrated, and
executed. The primary purpose of the Platform subproject is to enable other tool developers to easily
build and deliver integrated tools.
It can deal with any type of resource (Java files, C files, Word files, HTML files, JSP files, etc) in a
generic manner but doesn't know how to do anything that is specific to a particular file type. The
Eclipse platform, by itself, doesn't provide a great deal of end-user functionality - it is what it enables
that is interesting. The real value comes from tool plug-ins for eclipse that "teach" the platform how to
work with these different kinds of resources. This pluggable architecture allows a more seamless
experience for the end user when moving between different tools than ever before possible.
The Eclipse platform defines a set of frameworks and common services that collectively make up
"integration-ware" required to support a comprehensive tool integration platform. These services and
frameworks represent the common facilities required by most tool builders including a standard
workbench user interface and project model for managing resources, portable native widget and user
interface libraries, automatic resource delta management for incremental compilers and builders,
language-independent debug infrastructure, and infrastructure for distributed multi-user versioned
resource management.

Page
9

In addition, the Eclipse platform defines a workbench user interface and a set of common domainindependent user interaction paradigms that tool builders plug into to add new capabilities. The
platform comes with a set of standard views which can be extended by tool builders. Tool builders can
both add new views, and plug new domain-specific capability into existing views.

Fig 2.3 Eclipse Indigo Workspace

2.3DATABASE : MySQL
MySQL is a relational database management system (RDBMS), and ships with no GUI tools to
administer MySQL databases or manage data contained within the databases. Users may use the
included command line tools, or use MySQL "front-ends", desktop software and web applications that
create and manage MySQL databases, build database structures, back up data, inspect status, and work

Page
10

with data records. It is named after co-founder Michael Widenius's daughter, My. SQL stands for
structured query language, better known as "sequel".
It is used for:
1) Querying a database by editing the SQL statement
2) Querying a database with a program.
3) Defining the data organization.
4) Administrating data.
5) Accessing multiple data server.
6) Managing transaction.

2.3.1 QUERIES: These are used to retrieve the data based on specific criteria. This is the most
important element of sql.
Some basic queries in sql:

Creating a table:
Syntax: create table table_name(column_name1 datatype(size), column_name2 datatype(size),
,column_name datatype(size));

Inserting into a table:


Syntax: insert into table_name values(x,y,z);

Updating a table:
Syntax: update table_name set column_name=value where column_name=value;

Deleting a column of table:


Syntax: delete from table_name where column_name=value;

Selecting columns of table:


Syntax: select * from table_name;

Page
11

2.3.2 SOFTWARE USED: NAVICAT PREMIUM


Navicat Premium is a multi-connections Database Administration tool allowing you to connect to
MySQL, PostgreSQL and Oracle databases simultaneously within a single application, making
database administration to multiple kinds of database so easy. It supports most of the features in
MySQL, Oracle and PostgreSQL including Event, Trigger, Function/Procedure, View, etc. Navicat
Premium is available on three platforms - Microsoft Windows, Mac OS X and Linux. It can connect
users to local/remote server, providing several utility tools such as Data/Structure Synchronization,
Import/Export, Backup and Report to facilitate the process for data maintenance. Navicat Features:
Latest MySQL versions support

Compatible with any MySQL server version.

Support of Events.

Support of Triggers.

Support of Procedures and Functions.

Support of Views.

VARCHAR Data Type support. Value from 0 to 65,535 in 5.0.3 and later versions.

BIT Data Type support.

BINARY/VARBINARY Data Type support.

DESIGNS OF TABLE INVOLVED:


Table 2.1: Design of Log In Table

Page
12

Table 2.2: Design of contacts table

Table 2.3 Design of history table


Page
13

CHAPTER 3 PROJECT DESCRIPTION


Page
14

3.1 OVERVIEW OF PROJECT


SMS App is a windows application that allows users or admin to send SMS to the contacts added by
them directly from their PC or laptop.
The app has various modules. It creates admin-user environment. Admin can add users who can access
the SMS app by providing them with User IDs and passwords. An administrator can add a user, delete
the registration of user, search info. of user and update the records i.e., it can change the records of
users.
User and Admin log in to the project from one panel only. An interesting feature has been added that
allows the users to access the password, in case they have forgotten it. All they have to do is click on
Forgot password? and provide their User IDs and click on Send SMS button and a message of their
password will be send to their mobile phones.
Furthur, users can add the contacts they want in Contact Juggler. Various fields like D.O.B, Address,
Mobile number, category, country, etc are provided in Contact Juggling to add information of new
contacts. Along with adding contacts, user can delete, search and update the records of added contacts.
A user can view the records created by him/her anytime he/she wants, directly from menu. Also the app
maintains history logs of the operations performed so far which includes many features like: viewing
messages sent, time and date of sending messages, name of person whom message has been sent along
with the category he/she belongs to, etc.
The app also brings in the facility of searching contacts and history. It is inconvenient to look for a
record serially in database with so many records i.e. , it is a time consuming process, so the app gives
you the facility to view specific contact and history log by short listing them on basis of category,
mobile no., message send and the date and time when the message was sent.
It is to be worth noting that user dont have to provide the full message, exact date and time and full
mobile no. to search contact list and history logs. User just have to provide the characters that may be
initials or in middle or present at last. The results matching the input will be displayed.
Page
15

And at last once user send the message or perform the operations whatever he/she wish to, can logout
from the app from menu and again login next time to avail benefits of app.

3.2 ADVANTAGES OF PROJECT:


The various advantages of SMS app are as follows:
New concept of sending SMS through PC is introduced.
Security:
-administration has the highest authority to edit/delete/create users and database.
-password is in hidden characters form and it cant be lost if a user forgot because a message of
password is send to that particular users phone only.

Ease of Use: The app is easy is to made user friendly and can be handled easily.

Saves time: User can easily search for contacts and history logs without searching in database.

Portability:
-the application is built using eclipse which has support to run on any platform provided the
required compilers are available.
- for database: mysql has been used , that to has extensive support over many popular
architecture and operating system.

Easy update:
Everything is stored in computer database, so it is easy to update.

Efficient and fast searching of records.

Availability: User can access the app anytime and anywhere, provided internet connection is
present.

3.3 SCOPE:

The app can be widely used in companies, institutes, schools, colleges and organizations. The
messages are sent within seconds.

Page
16

Can be used in environments where security of user and time saving for searching records are of
utmost importance.

The environments requiring ease of everything can use the app with features like maintain
history logs, contacts logs, searching history and contacts is required.

Unlimited records can be saved.

CHAPTER 4: PROJECT SNAPSHOTS

Page
17

Fig 4.1: Log In Page

This is the first page of my project. Here admin and the users created by admin can log in to access the
app by filling in provided user ids and passwords and clicking Sign Up. If a user Sign up then it will be
directed to welcome page of app and admin will be directed to administration panel on sign up.If
password or ID filled is wrong then a message of Invalid ID is displayed.
Also on clicking Cancel the User ID and Password fields will be emptied.
If someone forgets the password then he/she dont have to worry because additional features like
Forgot password? is added. On clicking on this button user can move to Forgot password page.

Page
18

Fig 4.2: Forgot password page

Forgot password? Option in Log in page will open this page. Here if user forgets the password then
he/she can get it by providing the User id in User id field and clicking on Send SMS button. On
performing above procedure one SMS will be send to users phone.
Also a Back button is provided for user to get back to Log In page.

Page
19

Fig 4.3 Administration Panel

This is Administration Panel. Only Admin will be directed to this page if he logs in. This page creates
user who can access the app. Some salient features are:
Register: Admin creates user by clicking on Register after filling in required fields.
Find: This is a search option in Panel. User can view the details of registered user by providing his id
and clicking Find button and this will display the whole information of user.
Cancel Reg.: This is used to Cancel Registration of user.
Update: Admin can modify the records of any user by using Update Option.
New: This clears each and every field and allows to enter new records.
Menu: Menu directs the Admin to welcome page of app.
Back: Admin will be directed to Log in page.

Page
20

Fig 4.4: Welcome Page

Main page or welcome page of app looks like one shown above. This page contains menu bar which
directs us to various pages. Following are options on this page:
1. Manager: Manager have five options:
About: Brief description of app.
All Contacts: Shows all contacts created by user or admin.
Contact Juggler: It allows to add the contacts to whom we can send SMS.
Contact Finder: Used to find contacts.
Log Out: One can logout from app by clicking logout.
2. SMS:
SMS Sender: This will direct to the page from where we can send the SMS.
3. History:
History logs: Used to view history logs.
History quest: History quest helps you to search history.
Page
21

Fig 4.5: Contact juggler

Contact Juggling allows user to add contacts. Some of the salient features are:
Save: This button at the bottom allows one to save records.
New: This clears each and every field and allows to enter new records.
Search: User can view the details of added contacts by providing his id and clicking Search button and
this will display the whole information of user.
Update: User can modify the records of added contacts by using Update Option.
Cancel Record: This is used to Cancel added contact.
Back: User will be directed to Main page or welcome page.

Page
22

Fig 4.6: Contact finder

User can search contacts by selecting category and clicking on Go. This will display all the contact
names of that category in names field. Select a name and click Go and this will give each and every
detail of that contact under details.
One can search by giving mobile no. and clicking Go.
An additional interesting feature is that you can provide initials, ending or middle digits of mobile no.
and you will get the matching results.

Page
23

Fig 4.7: History finder

This page will be displayed if one clicks on History >> History quest in main page. This panel is used
to find history. User can search history in three ways:
1. Message: User can input message extracts and the contacts whom we send that message will be
displayed after clicking on Go.
2. Date/Time: One can even put in date or time and messages send on that time or date will be
displayed.
3. Category: User can even select the category and messages send to that category will be
displayed.

Page
24

Fig 4.8: SMS Sender

This is the panel behind sending SMS.


User can select category and on selecting category names and contact nos. will be displayed in
particular fields. Select the required name and click proceed >>. This will show the no. in Mobile no.
box.
After this write your message in Message text box and click Send.
On sending a dialog box with message Message send will be displayed. Make sure internet is
connected.
User can also directly input the mobile no. in mobile text area and send message.

Page
25

4.1 SNAPSHOTS FROM DATABASE INVOLVED:

Fig 4.9: Log In Table in database

Fig 4.10: Log In Table as shown in project


Page
26

This is not included in menu because this page contains user ids and password of admin and users
created by admin with other secret details.

Fig 4.11: Contacts record in database

Page
27

Fig 4.12: Contact Book as shown in project

A table shown above will be displayed if we click on All contacts on main page. This page is created
in database and contains all the info. of contacts created by users.

Page
28

Fig 4.13: History logs in database

Page
29

Fig 4.14: History logs in project

History logs contain all the messages send by user to various people along with other information
parameters.

Page
30

BIBLIOGRAPHY AND REFERENCES


The following books are used to fulfill the requirements of project and are helpful in understanding,
development and the maintenance of the project.

Head First Java by Kathy Sierra and Bert Bates


Database Concepts by Henry F Korth
The Complete Reference Java 2

REFERENCES:

http://www.w3schools.com
http://guruzon.com
http://docs.oracle.com
http://www.programmerinterview.com
http://www.ehow.com
http://javatpoint.com
http://iconarchive.com
www.google.co.in
www.wikipedia.com
www.4shared
www.eclipse.org
www.studytonight.com

Page
31