Final Report Example
Final Report Example
Bulandshahr (U.P.)
A Projecct Report
on
EMAIL SYSTEM
Submitted in partial fulfillment of the requirements for the award of the degree
Of
MASTER OF COMPUTER APPLICATION
Submitted by:
VINAY KUMAR
Roll No: 1101914017
Guided by:
Prof. Avnish Kumar Sharma
Submitted To
I wish to Acknowledge with a great sense of gratitude to my guide Prof. Avnish Kumar
Sharma for their valuable guidance, suggestion and correction, I have received from
them. They not only encouraged me throughout the work, but I also thank them for
reviewing the entire manuscript with painstaking attention for details.
members of MIT COLLEGE, BULANDSHAHR for helping me to design the project work
Last but not the least, I avail the opportunity to express my deepest gratitude towards
my trainer Sonno Jaiswal for helping me to complete this project successfully
Vinay Kumar
SELF CERTIFICATE
This is to certify that the Project Report entitled “ Email System” is done by me is an authentic
work carried out for the partial fulfillment of the requirements for the award of the degree of
Master of Computer Application under the guidance of Prof. Avanish Kumar Sharma The
matter embodied in this project work has not been submitted earlier for award of any degree
------------------------------------------------
Roll No : 1101914017
CERTIFICATE
This is to certify that this project entitled “Email System” submitted in partial fulfillment of the
degree of MASTER OF COMPUTER APPLICATIONS to the U.P.Technical University, Lucknow
through Marathwada Institute of Technology, Bulandshshr (U.P.), done by Mr. Vinay Kumar
Roll No. 1101914017 is an authentic work carried out by him/her at MIT COLLEGE,
BULANDSHAHR under my guidance. The matter embodied in this project work has not been
submitted earlier for award of any degree or diploma to the best of my knowledge and belief.
------------------------------ ---------------------------
________________________________
Table of contents
Abstract
Software Development Methodology
Introduction
1. Purpose
2. Advantages
3. Scope
4. Existing System with Limitations
5. Proposed System Features
Specification Requirements
1. Sofware Requirement Specification
2. Hardware requirement Specification
3. Functional Requirements
Technologies Used
1. Servlet
2. Oracle 10g Express Edition
3. Apache Tomcat 7.02
Behavioural Description
1. DFD
2. User Case Diagram
3. Activity Diagrams
4. Oracle Database Tables
System Design
1. Sequence and Colaboration Diagram
2. Class Diagrams
Testing and Implementation
Output Results
Coding
Conclusion
Bibilography
ABSTRACT
ABOUT THE PROJECT
Businesses usually adopt a common sense approach when it comes to spending the IT
budget with cost being a major influence in purchasing decisions. However, when it
comes to choosing a mail server, many businesses seem to pay less attention to the costs
and, as a result, end up spending far more money than is necessary.
Email System(or Internet Mailing System) which has been privatized and is existing in
different forms like Hotmail. Free mail. Cyber mail, Mainly The project will give the easy way
to create a new account and sending mails with free of cost.
Advantages:
The user of Email System is given a unique login id and must give the correct password.
It gives total security for us. So unauthorized user can't allow to see our messages. Even if the
user forgets his/her password reminding facility by which the user can recollect the password and
log into the system.
The advantage of the this system is it's security feature allowing only registered users to
access the system and preventing any hackers, unauthorized users.
Now a day the organizations are growing fastly and are increasing in size also. So there
organizations are divided into departments. In the fast growing world the information is need as
fast as possible. This can be accomplished by passing the information quickly. Quick passing of
mails is not possible in load manual systems. Because in manual system the mails are passed
through persons from one department to another. But it takes mush time and risk also. This leads
the inconsistency of information. So we need a system, which is both quick and accurate. This
can be achieved by mailing system.
In present organization structure most of the work is done using software applications. In
order to improve service for customers we need effective applications. Similarly considering
need of work flow we need intranet mailing application.
SPECIFICATION
REQUIREMENT
SPECIFICATION REQUIREMENT
Requirement analysis for web applications encompasses three major tasks: formulation,
requirements gathering and analysis modeling. During formulation, the basic motivation and
goals for the web application are identified, and the categories of users are defined. In the
requirements gathering phase, the content and functional requirements are listed and interaction
scenarios written from end-user’s point-of-view are developed. This intent is to establish a basic
understanding of why the web application is built, who will use it, and what problems it will
solve for its users.
A set of programs associated with the operation of a computer is called software. Software is the
part of the computer system, which enables the user to interact with several physical hardware devices.
The minimum software requirement specifications for developing this project are as follows:
Database : Oracle
The collection of internal electronic circuits and external physical devices used in building a
computer is called the Hardware. The minimum hardware requirement specifications for developing this
project are as follows:
Processor : Standard processor with a speed of 1.6 GHz or more
USED
TECHNOLOGIES USED
Servlets:-
A servlet is a java programming language class that is used to extend the capabilities of servers
that host applications access via a request-response programming mode. Servlets are Java
technology’s answer to Common Gateway Interface (CGI) Programming. They are programs
that run on a Web server, acting as middle layer between request coming from a Web browser or
other HTTP client and databases of applications on the HTTP server.
Read any data sent by the user: This data usually entered in a form on a Web page, but could
also come from a java applet or a custom HTTP client program.
Look up any other information about the request that is embedded in the HTTP request:
This information includes details about browser capabilities, cookies, the host name of the
requesting client, and so froth.
Generate the results: This process may require talking to a database, executing an RMI or
CORBA call, invoking a legacy application, or computing the response directly.
Format the results inside a document: In most cases, this involves embedding the information
inside an HTML page.
Set the appropriate HTTP response parameters: This means telling the browser what type of
document is being returned (e.g.HTML), setting cookies and caching parameters, and other such
tasks.
Send the document back to the client: This document may be sent in text format (HTML),
binary format (GIF images), or even in a compressed format like gzip that is layered on top of
some other underlying format.
The Javax.servlet and javax.servlet.http packages provide interfaces and classes for
writing servlets. All servlets must implement the Servlet interface, which defines life-cycle
methods. When implementing a generic service, you can use or extend the GenericServlet class
provided with the java Servlet API. The HttpServlet classes provide methods, such as doGet and
do Post, for handling HTTP-specific services.
To be a servlet, a class should extend HTTPServlet and override doGet or do Post (or
both), depending on whether the data is being sent by GET or by POST. These methods take two
arguments: An HttpServletRequest and an HttpServletResponse.The HttpServletRequest have
methods that let you find out about incoming information such as FORM data, HTTP request
headers, and the like. Finally, note that doGet and do Post are called by the service method, and
sometimes you may want to override service directly.
The life cycle of a servlet is controlled by the container in which the servlet has been deployed.
When a request is mapped to a servlet, the container performs the following steps.
If the container needs to remove the servlet, it finalizes the servlet by calling the servlet’s destroy
method.
Cookies
Cookies are small bits of textual information that a Web server sends to a browser and that the
browser returns unchanged when visiting the same Web site or domain later
Browsers generally only accept 20 cookies per site and 300 cookies total, and each cookie is limited to
4KB, cookies cannot be used to fill up someone's disk or launch other denial of service attacks.
To send cookies to the client, a servlet would create one or more cookies with the appropriate
names and values via new Cookie (name, value), set any desired optional attributes via
cookie.setXxx,and add the cookies to the response headers via response.addCookie(cookie).To
read incoming cookies, call request.getCookies(), which returns an array of Cookie objects.
Session Management
Many applications require that a series of requests from a client be associated with one another.
Sessions are represented by an Http Session object. A session cab be accessed by calling the get
Session () method of a request object. This method returns the current session associated with
this request, or, if the request does not have a session, it creates one. The timeout period can be
accessed by using a session’s [get\set] Max Inactive Interval methods.
Session Tracking
A Web container can use several methods to associate a session with a user, all of which involve
passing an identifier between the client and the server. The identifier can be maintained on the
client as a cookie, or the Web component can include the identifier in every URL that is returned
to the client.
In fact, on many servers, they use cookies if the browser supports them, but automatically revert
to URL-rewriting when cookies are unsupported or explicitly disabled.
Documentation Accessibility
The first thing you need to do is to log in as the Oracle Database XE Administrator. Follow these
steps:
On Windows, from the Start menu, select Programs (or All Programs),
then Oracle Database 10g Express Edition, and then Go To Database Home
Page.
On Linux, click the Application menu (on Gnome) or the K menu (on KDE),
then point to Oracle Database 10g Express Edition, and then Go To Database
Home Page.
2. At the Database Home Page login window, enter the following information:
Password: Enter the password that was specified when Oracle Database XE was
installed.
3. Click Login.
To create your application, you need to log in as a database user. Oracle Database XE comes
with a sample database user called HR. This user owns a number of database tables in a sample
schema that can be used to create applications for a fictional Human Resources department.
However, for security reasons, this user's account is locked. You need to unlock this account
before you can build a sample application.
1. Make sure you are still logged on as the database administrator, as described in the
previous section.
2. Click the Administration icon, and then click Database Users.
3. Click the HR schema icon to display the user information for HR.
1. Log out from the database administrator account by clicking Logout in the upper right
corner of the Database Home Page.
3. In the Login window, enter hr for both the user name and password.
4. Click Login.
Creating an application is an easy way to view and edit your database data. You create this
application based on the EMPLOYEES table, which is part of the HR schema.
c. Click Next.
Notice that Action describes the type of page you are adding.
b. Next to the Table Name field, click the up arrow, and then
select EMPLOYEES from the Search Dialog window.
Two new pages display at the top of the page, under Create Application.
d. Click Next.
6. On the Tabs panel, accept the default (One Level of Tabs) and click Next.
7. On the Shared Components panel, accept the default (No) and click Next.
This option enables you to import shared components from another application. Shared
components are common elements that can display or be applied on any page within an
application.
8. For Authentication Scheme, Language, and User Language Preference Derived From,
accept the defaults and click Next.
Themes are collections of templates that you can use to define the layout and style of an
entire application.
10. Confirm your selections. To return to a previous wizard page, click Previous. To accept
your selections, click Create.
After you click Create, the following message displays at the top of the page:
2. In the log in page, enter hr for both the User Name and Password.
You can query the EMPLOYEES table, if you want. To manage the application, use the
Developer toolbar at the bottom on the page.
Description of the illustration gs_d_toolbar.gif
The Developer toolbar offers a quick way to edit the current page, create a new page,
control, or component, view session state, or toggle debugging or edit links on and off.
4. To exit your application and return to Application Builder, click Edit Page 1 on the
Developer toolbar.
5. To return to the Database Home Page, select the Home breadcrumb at the top of the
page.
Congratulations! You have just created your first application using Oracle Database XE.
You can use the Oracle Database XE menus to perform basic functions with Oracle Database
XE. To see the menus, do the following:
On Windows, from the Start menu, select Programs (or All Programs) and then Oracle
Database 10g Express Edition.
On Linux, click the Application menu (on Gnome) or the K menu (on KDE) and then
point to Oracle Database 10g Express Edition.
o Go To Online Forum: Displays the online forum for discussions about Oracle
Database XE.
o Read Online Help: Displays the Oracle Database XE online help. This help is
only available if the database is started.
o Register For Online Forum: Allows you to register for the Oracle Database XE
online forum.
Backup Database: In NOARCHIVELOG mode (the default), shuts down the database,
backs it up, and then restarts it. In ARCHIVELOG mode, performs an online backup of
the database. For more information on backups, refer to Oracle Database Express
Edition 2 Day DBA.
Go To Database Home Page: Displays the Oracle Database XE Home Page in your
default browser. "Logging in as the Database Administrator" explains how to log into this
home page as a database administrator.
Restore Database: Shuts down and then restores the database to the most recent backup.
For more information on restoring a database, refer to Oracle Database Express Edition
2 Day DBA.
Run SQL Command Line: Starts the SQL Command Line utility for Oracle Database
XE. To connect to the database, issue the following command at the SQL prompt that
appears:
connect username/password
where username is the user name, such as sys, system, or another account name,
and password is the password that was assigned when Oracle Database XE was installed.
The get help, you can enter the commandhelp at the SQL prompt, once you have
connected to the database.
Start Database: Starts Oracle Database XE. By default, the database is started for you
after installation and every time your computer is restarted. However, if you think the
database is not running you can use this menu item to start it.
Tomcat 5 implements the Servlet 2.4 and Java Server Pages 2.0 specifications and
includes many additional features that make it a useful platform for developing and deploying
web applications and web services.
These are some of the key tomcat directories, all relative to $CATALINA_HOME:
/bin - Startup, shutdown, and other scripts. The *.sh files (for Unix systems) are
functional duplicates of the *.bat files (for Windows systems). Since the Win32
command-line lacks certain functionality, there are some additional files in here.
/conf - Configuration files and related DTDs. The most important file in here is
server.xml. It is the main configuration file for the container.
INSTALLING TOMCAT
Installing Tomcat on Windows can be done easily using the Windows installer. Installation as a
service: Tomcat will be installed as a Windows NT/2k/XP service no matter what setting is
selected. Using the checkbox on the component page sets the service as "auto" startup, so that
Tomcat is automatically startup when Windows starts. For optimal security, the service should
be affected a separate user, with reduced permissions (see the Windows Services administration
tool and its documentation).
Java location: The installer will use the registry or the JAVA_HOME
environment variable to determine the base path of the JDK or a JRE. If only a
JRE (or an incorrect path) is specified, Tomcat will run but will be unable to
compile JSP pages at runtime. Either all webapps will need to be precompiled
(this can be easily done using the Tomcat deployed), or the lib\tools. Jar file from
a JDK installation must be copied to the common\lib path of the Tomcat
installation.
Architecture Overview
Server: In the Tomcat world, a Server represents the whole container. A Server element
represents the entire Catalina servlet container. Therefore, it must be the single outermost
element in the conf/server.xml configuration file. Its attributes represent the characteristics of the
servlet container as a whole. Tomcat provides a default implementation of the Server interface,
and this is rarely customized by users.
Engine
An Engine represents request processing pipeline for a specific Service. As a Service may
have multiple Connectors, the Engine received and processes all requests from these
connectors, handing the response back to the appropriate connector for transmission to the
client.
Host
Connector
A Connector handles communications with the client. There are multiple connectors
available with Tomcat, all of which implement the Connector interface These include the
Coyote connector which is used for most HTTP traffic, especially when running Tomcat
as a standalone server, and the JK2 connector which implements the AJP protocol used
when connecting Tomcat to an Apache HTTPD server. Creating a customized connector
is a significant effort.
Context
A Context represents a web application. A Host may contain multiple contexts, each with
a unique path. The Context interface may be implemented to create custom Contexts, but
this is rarely the case because the Standard Context provides significant additional
functionality.
Service
A Service is an intermediate component which lives inside a Server and ties one or more
Connectors to exactly one Engine. The Service element is rarely customized by users, as
the default implementation is simple and sufficient: service interface.
BEHAVIORAL
DESCRIPTION
BEHAVIORAL DESCRIPTION
Data Flow:
There are 2 types of Dfd’s they are
The Top Level DFD gives the overview of the whole system identifying the major system
processes and data flow. This level focuses on the single process that is drawn in the context
diagram by ‘Zooming in’ on its contents and illustrates what it does in more detail.
4.1.2. Use Case Documentation:
A use case diagram is a diagram that shows a set of use cases and actors and
relationships.
Contents
Login
Inbox
User
Compose
Send
Download
Update Profile
Process Flow
Activity Diagrams:
Activity Diagram:
An activity diagram shows the flow from activity to activity. An activity is an ongoing non-
atomic execution within a state machine.
Activities ultimately result in some action, which is made up of executable atomic
computations that result in a change in state of the system or the return of a value.
Activity diagrams commonly contain
Like all other diagrams, activity diagrams may contain notes and constrains.
Login Process
Providing
Services
Retry
Validation
<<No>>
<<YES>>
Services
Registration Process :
Providing
Services
Provide
Credentials
admin validation
<<YES>>
<<NO>>
Invalidate
details
User Activity:
Login
validation
Logout
SYSTEM DESIGN
SYSTEM DESIGN
The main focus of the analysis phase of Software development is on “What needs to be done”.
The objects discovered during the analysis can serve as the framework or Design. The class’s
attributes, methods and association identified during analysis must be designed for
implementation language. New classes must be introduced to store intermediate results during
the program execution.
Emphasis shifts from the application domain o implementation and computer such as user
interfaces or view layer and access layer. During analysis, we look at the physical entities or
business objects in the system, that is, which players and how they cooperate to do the work of
the application. These objects represent tangible elements of the business.
During the Design phase, we elevate the model into logical entities, some of which might
relate more to the computer domain as people or employees. Here his goal is to design the
classes that we need to implement the system the difference is that, at this level we focus on the
view and access classes, such as how to maintain information or the best way o interact with a
user or present information.
Design process:
During the design phase the classes identified in object-oriented analysis Must be revisited with a
shift focus to their implementation. New classes or attribute and Methods must be an added for
implementation purposes and user interfaces. The object-oriented design process consists of the
following activities:
1. Apply design axioms to design classes, their attributes, methods, associations, structure
And protocols Refine and complete the static UML class diagram by adding details to the UML
diagram. This step consists of following activities. *Refine attributes *Design methods and
protocols by utilizing a UML activity diagram to represent the method’s algorithms.
*Refine associations between classes
Create mirror classes: For every business class identified and created. For
example, if there are three business classes, create three access layer classes.
*Redundant classes: Do not keep two classes that perform similar translate results
*Method classes: Revisit the classes that consist of only one or two methods to see if
they can be eliminated or combined with existing classes.
Design the macro level user interface, identifying view layer objects.
Design the micro level user interface, which includes these activities:
* Design the view layer objects by applying the design axioms and
corollaries.
Design also must be traceable across requirements, analysis, design from the Requirements
model.
DESIGN AXIOMS
Axioms are a fundamental truth that always is observed to be valid and for which there is
no counter example or exception. Such explains that axioms may be hypothesized form a large
number of observations by nothing the common phenomena shared by all cases; they cannot be
proven or derived, but they can be invalidated by counter examples or exceptions. A theorem is a
proposition that may not be self-evident but can be proven from accepted axioms. If therefore, is
equivalent to a law or principle. A corollary is a proposition that follows from an axioms or
another proposition that has been proven. Again, corollary is shown to be valid or not valid in the
same manner as a theorem. In the two important axioms axiom 1 deals with relationships
between system components and axiom 2 deals with the complexity of design.
Axiom 1: The independence axiom, which maintain the independence of the components.
Axiom 2: The information axioms that maintain the information content of the design.
Axioms1 states that, during the design process, as we go from requirement and use case to a
system component, each component must satisfy that requirement without affecting other
requirements.
An axiom 2 is concerned with simplicity. Scientific theoreticians often rely on a general rule
known as Occam’s razor, after William of Occam. He says, “The best theory explains the known
facts with a minimum amount of complexity and maximum simplicity and straightforwardness.”
The best designs usually involve the least complex code but not necessarily the fewest number of
classes or methods. Minimizing complexity should be the goal, because that produces the most
easily maintained and enhanced application. In an object-oriented system, the best way to
minimize complexity is to use inheritance and the systems built in classes and to add as little as
possible to what already is there.
From the two design axioms, many corollaries may be derived as a direct consequence of the
axioms. These corollaries may be more useful in marking specific design decisions, since they
can be applied to actual situations.
1. Uncoupled design with less information content: Highly cohesive objects can improve
coupling because only a minimal amount of essential information need be passed
between objects. The degree or strength of coupling between two components is
measured by the amount and complexity of information transmitted between them.
2. Single purpose: Each class must have single, clearly defined purposes.
3. Large number of simple classes: Keeping the classes simple allows reusability. Large
and complex classes are too specialized to be reused.
4. Strong mapping: There must be a strong association between the physical system and
logical design. During the design phase, we need to design this class, design its methods,
its association with other objects. So a strong mapping links classes should be identified.
5. Standardization: promote standardization by designing interchangeable and reusing
existing classes or components.
6. Design with inheritance: Common behavior must be moved to super classes. The super
class-sub class structure must make logical sense.
Attributes identified in object oriented analyzed must be refined in the design phase. In the
analysis phase, the name of the attributes was sufficient. But in the design phase, detailed
information must be added to the model. The three basic types of attributes are:
Visibility indicates either public visibility or protected visibility or private visibility. The public
visibility indicates that the attribute can be accessible to all classes. The protected visibility
indicates that the accessibility is given to the subclasses and operations of the class. The private
visibility indicates that the accessibility can be given only to the operations of the class only.
An interaction diagram shows an interaction, consisting of a set of objects and their relationships,
including the messages that may be dispatched among them.
A sequence diagram is an interaction diagram that emphasizes the time ordering of messages.
Graphically, a sequence diagram is a table that shows objects arranged along x-axis and
messages, ordered in increasing time, along the y-axis.
Contents
Sequence:
Register Login Inbox Compose Mail AddressBook Update Profile
: User
Fill Form
valid
response
LoginRequest
valid
response
select
response
compose
response
Add contacts
response
response
Collaboration Diagram
- Collaboration is a society of classes, interfaces, and other elements that work together to
provide some cooperative behavior that’s bigger than the sum of all its parts.
Contents
Objects
Links
Messages
Like all other diagrams, sequence diagrams may contain notes and constrains.
Collaboration
2: valid
5: valid
Register
1: Fill Form
: User 9: compose
8: response
14: response
7: select
10: response
13: update personal details
Inbox
Update Compose
Profile Mail
Component Diagram:
Inbox Compose Check
User Mail
Database-
JDBC
Deployment Diagram
- A deployment diagram is a diagram that shows the configuration of run time processing
nodes and the components that live on them.
Contents
Nodes
Dependency and association relationships
- Like all other diagrams, deployment diagrams may contain notes and constraints.
- Deployment diagrams may also contain components, each of which must live on some node.
- Deployment diagrams may also contain packages or subsystems, both of which are used to
group elements of your model into larger chunks.
Database Server
MySQL Server
Application Server
J2SE
Server
USER
Servlets
Application
Web
Browser
ORACLE DATA BASE TABLES
Table Name:- sssitmail_users
Column Name Data Type Nullable Default Primary Key
ID NUMBER No - 1
FIRSTNAME VARCHAR2(4000) Yes - -
LASTNAME VARCHAR2(4000) Yes - -
EMAIL VARCHAR2(4000) Yes - -
GENDER VARCHAR2(4000) Yes - -
CITY VARCHAR2(4000) Yes - -
STATE VARCHAR2(4000) Yes - -
COUNTRY VARCHAR2(4000) Yes - -
REGISTEREDDATE DATE Yes - -
DOB DATE Yes - -
1-7
TESTING AND
IMPLEMENTATION
TESTING AND IMPLEMENTATION
Testing Methodologies
o Black box Testing:
o White box Testing.
o Gray Box Testing.
Levels of Testing
o Unit Testing.
o Module Testing.
o Integration Testing.
o System Testing.
o User Acceptance Testing.
Types Of Testing
o Smoke Testing.
o Sanitary Testing.
o Regression Testing.
o Re-Testing.
o Static Testing.
o Dynamic Testing.
o Alpha-Testing.
o Beta-Testing.
o Compatibility Testing.
o Installation Testing.
o Adhoc Testing.
TCD (Test Case Documentation)
STLC
o Test Planning.
o Test Development.
o Test Execution.
o Result Analysis.
o Bug-Tracing.
o Reporting.
Testing Methodologies:
Black box Testing: is the testing process in which tester can perform testing on an
application without having any internal structural knowledge of application.
Usually Test Engineers are involved in the black box testing.
White box Testing: is the testing process in which tester can perform testing on an
application with having internal structural knowledge.
Usually The Developers are involved in white box testing.
Gray Box Testing: is the process in which the combination of black box and white
box techniques are used.
STLC (SOFTWARE TESTING LIFE CYCLE)
2. Objective of testing,
Of application.
application
Smoke Testing: is the process of initial testing in which tester looks for the availability of all
the functionality of the application in order to perform detailed testing on them. (Main check is
for available forms)
Sanity Testing: is a type of testing that is conducted on an application initially to check for
the proper behavior of an application that is to check all the functionality are available before the
detailed testing is conducted by on them.
Regression Testing: is one of the best and important testing. Regression testing is the process
in which the functionality, which is already tested before, is once again tested whenever some
new change is added in order to check whether the existing functionality remains same.
Re-Testing: is the process in which testing is performed on some functionality which is
already tested before to make sure that the defects are reproducible and to rule out the
environments issues if at all any defects are there.
Static Testing: is the testing, which is performed on an application when it is not been
executed. ex: GUI, Document Testing
Dynamic Testing: is the testing which is performed on an application when it is being
executed. ex: Functional testing.
Alpha Testing: it is a type of user acceptance testing, which is conducted on an application
when it is just before released to the customer.
Beta-Testing: it is a type of UAT that is conducted on an application when it is released to the
customer, when deployed in to the real time environment and being accessed by the real time
users.
Compatibility testing: it is the testing process in which usually the products are tested on the
environments with different combinations of databases (application servers, browsers…etc) In
order to check how far the product is compatible with all these environments platform
combination.
Installation Testing: it is the process of testing in which the tester try to install or try to deploy
the module into the corresponding environment by following the guidelines produced in the
deployment document and check whether the installation is successful or not.
Adhoc Testing: Adhoc Testing is the process of testing in which unlike the formal testing
where in test case document is used, with out that test case document testing can be done of an
application, to cover that testing of the future which are not covered in that test case document.
Also it is intended to perform GUI testing which may involve the cosmotic issues.
TCD (Test Case Document):
Test scope:
Test coverage is provided for the screen “ Acadamic status entry” form of a student
module of university management system application
Areas of the application to be tested
Test Scenario:
When the office personals use this screen for the marks entry, calculate the status details,
saving the information on student’s basis and quit the form.
Test Procedure:
The procedure for testing this screen is planned in such a way that the data entry, status
calculation functionality, saving and quitting operations are tested in terms of Gui testing,
Positive testing, Negative testing using the corresponding Gui test cases, Positive test
cases, Negative test cases respectively
Test Cases:
T.C.
Actual
No Description Expected value value Result
1 Check for the date Time The date and time of the
system must be displayed
Auto Display
No value
Save
GUI
OUTPUT RESULTS
Index.html
Composeform.html
header.html
Loginerror.html
loginform.html
Coding
package com.javatpoint;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
response.setContentType("text/html");
PrintWriter out=response.getWriter();
request.getRequestDispatcher("header.html").include(request,
response);
HttpSession session=request.getSession(false);
if(session!=null){
String sender=(String)session.getAttribute("email");
String recipient=request.getParameter("to");
String subject=request.getParameter("subject");
String message=request.getParameter("message");
if(i>0){
}
}else{
response.sendRedirect("loginerror.html");
out.close();
Connection con=null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system"
,"oracle");
}catch(Exception e){e.printStackTrace();}
return con;
import java.text.SimpleDateFormat;
java.util.Date utildate=formatter.parse(stringdate);
return sqldate;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
response.setContentType("text/html");
PrintWriter out=response.getWriter();
request.getRequestDispatcher("header.html").include(request,
response);
out.close();
doGet(request,response)
File Name:LoginDao.java
package com.javatpoint;
import java.sql.*;
String name=null;
try{
Connection con=ConnectionProvider.getConnection();
PreparedStatement ps=con.prepareStatement("select
firstname from sssitmail_users where email=? and password=?");
ps.setString(1,email);
ps.setString(2,password);
ResultSet rs=ps.executeQuery();
if(rs.next()){
name=rs.getString(1);
}catch(Exception e){e.printStackTrace();}
return name;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
response.setContentType("text/html");
PrintWriter out=response.getWriter();
String
email=request.getParameter("email").concat("@sssitmail.com");
String password=request.getParameter("password");
HttpSession session=request.getSession();
session.setAttribute("name",name);
session.setAttribute("email",email);
response.sendRedirect("InboxServlet");
}else{
request.getRequestDispatcher("loginerror.html").forward(request,
response);
out.close();
import java.sql.*;
int status=0;
try{
Connection con=ConnectionProvider.getConnection();
ps.setString(1,sender);
ps.setString(2,recipient);
ps.setString(3,subject);
ps.setString(4,message);
java.util.Date
utildate=java.util.Calendar.getInstance().getTime();
ps.setDate(5,sqldate);
ps.setString(6,"no");
status=ps.executeUpdate();
}catch(Exception e){System.out.println(e);}
return status;
}
File Name: RegisterDao.java
package com.javatpoint;
import java.sql.*;
int status=0;
try{
Connection con=ConnectionProvider.getConnection();
ps.setString(1,firstname);
ps.setString(2,lastname);
ps.setString(3,email);
ps.setString(4,gender);
ps.setDate(5,sqldob);
ps.setString(6,city);
ps.setString(7,state);
ps.setString(8,country);
ps.setDate(9,sqlcurrentdate);
ps.setString(10,password);
status=ps.executeUpdate();
}catch(Exception e){System.out.println(e);}
return status;
}
File Name: RegisterServlet.java
package com.javatpoint;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
response.setContentType("text/html");
PrintWriter out=response.getWriter();
String firstname=request.getParameter("firstname");
String lastname=request.getParameter("lastname");
String
email=request.getParameter("email").concat("@sssitmail.com");
String password=request.getParameter("password");
String gender=request.getParameter("gender");
String dob=request.getParameter("dob");
String city=request.getParameter("city");
String state=request.getParameter("state");
String country=request.getParameter("country");
java.sql.Date sqldob=null;
try{
sqldob=DateFormatter.formatdate(dob);
}catch(Exception e){out.print(e);}
java.util.Date currentdate=Calendar.getInstance().getTime();
java.sql.Date sqlcurrentdate=new
java.sql.Date(currentdate.getTime());
if(i>0){
request.getRequestDispatcher("loginform.html").include(request,
response);
else{
out.print("registration failed!");
out.close();
}
File Name:- LogOutServlet.java
package com.javatpoint;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
response.setContentType("text/html");
PrintWriter out=response.getWriter();
request.getSession(false).invalidate();
//request.getRequestDispatcher("loginform.html").include(request,
response);
response.sendRedirect("index.html");
}
}
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
response.setContentType("text/html");
PrintWriter out=response.getWriter();
request.getRequestDispatcher("header.html").include(request,
response);
HttpSession session=request.getSession(false);
String name=(String)session.getAttribute("name");
String email=(String)session.getAttribute("email");
out.print("<span style='float:right'>Hi,"+name+"</span>");
out.print("<h2>Inbox</h2>");
try{
Connection con=ConnectionProvider.getConnection();
ps.setString(1,email);
ps.setString(2,"no");
ResultSet rs=ps.executeQuery();
out.print("<tr><th>No.</th><th>Recipient:Subject</th><th>Message
Date</th></tr>");
int count=1;
while(rs.next()){
out.print("<tr><td>"+(count++)+"</td><td><a
href='InboxServletMessage?id="+rs.getInt(1)+"'>"+rs.getString("recipient")
+":"+rs.getString("subject")+"</a></td><td>"+rs.getDate("messagedate")+"</
td></tr>");
con.close();
out.print("<table>");;
}catch(Exception e){out.print(e);}
out.close();
}
Conclusion
CONCLUSION
The project titled as “Email System" has been designed with much care, with the intention easier and
the more complexity involved is presented in a simple and lucid style.
1. Security
The Intranet Mailing System works in a similar fashion as that of an Intranet Mailing System,
there is no need to get an internet connection for this mailing system. The various branches of the
organization can be connected to a single host server and then an employee of one branch can send a
message to an employee of another branch through server.
The users of Intranet Mailing are given a unique user-id and password is hided .So it gives
security also.
BIBLIOGRAPHY
BIBLIOGRAPHY
https://www.java.com/en/download/
http://www.oracle.com/index.html
Reference websites
www.javatpoint.com
www.w3schools.com
http://www.tutorialspoint.com/java/index.htm
Reference Books
Thinking in java