0% found this document useful (0 votes)
73 views56 pages

REPORT FILE Mayank Hmail

The document provides an introduction and overview of Imbibe Knowledge Enterprise (IKE), a technical training institute. It discusses that IKE was established in 2008 to provide quality education and training in cutting-edge developer technologies related to the IT field. IKE offers a comprehensive range of learning solutions and services to address the needs of diverse audiences. The vision of IKE is to deliver the best experience on all major platforms and to help individuals grow through self-development and commitment to work. The document also provides an introduction to the .NET framework and C# programming language, discussing features such as the common language runtime, .NET framework architecture, and design goals around components, cross-language development, inheritance, and reliability.

Uploaded by

Mayank Arora
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
73 views56 pages

REPORT FILE Mayank Hmail

The document provides an introduction and overview of Imbibe Knowledge Enterprise (IKE), a technical training institute. It discusses that IKE was established in 2008 to provide quality education and training in cutting-edge developer technologies related to the IT field. IKE offers a comprehensive range of learning solutions and services to address the needs of diverse audiences. The vision of IKE is to deliver the best experience on all major platforms and to help individuals grow through self-development and commitment to work. The document also provides an introduction to the .NET framework and C# programming language, discussing features such as the common language runtime, .NET framework architecture, and design goals around components, cross-language development, inheritance, and reliability.

Uploaded by

Mayank Arora
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 56

Roll No: - 2107217

ACKNOWLEDGEMENT

I take this opportunity to express my gratitude to my college DOON VALLEY INSTITUTE


OF ENGINEERING & TECHNOLOGY, KURUKSHETRA UNIVERSITY, HARYANA
for introducing training into my course. Industrial training is a very important aspect in the field
of Engineering & only after going through this training I got the exposure to the practical
knowledge.

I take this opportunity to express our deep sense of gratitude and profound regards to everybody
who helped us throughout the project. I would like to thank our project guide Mr. Rahul Singla
for his constant help and valuable suggestion throughout the project. The constant guidance and
encouragement received from Sir has been of great help in carrying our the present work and is
acknowledged with reverential thanks.

I own my regards to the entire faculty of the department of Computer Science and Information
technology at DOON VALLEY INSTITUTE OF ENGINEERING & TECHNOLOGY
from where I have learnt the basics of Computer Science and whose informal discussions and
able guidance was a become light for me in the entire duration of this work.

I would also like to thank my team members who worked with me and our combined efforts lead
to the completion of the project. Finally, I am indebted to all whosoever have contributed in this
report work and friendly.
Roll No: - 2107217

CONTENTS

S.NO CONTENTS PAGE NO.

1). Introduction to company profile 3

2). Technology used 7

3). Introduction to C#.Net 7

4). Sql Server 17

5). Other Comparable Technologies 19

6). Project Undertaken 21

7). Project Description 23

8). System Requirement 44

9). Database design with E-R 45


diagram
10). Data Flow Diagrams 48

11). Testing of projects with error 53


snapshot
12). Division of time how training 57
progresses
Roll No: - 2107217

INTRODUCTION
TO
IMBIBE KNOWLEDGE
ENTERPRISE
(COMPANY PROFILE)

IMBIBE KNOWLEDGE ENTERPRISE


Roll No: - 2107217

RAHUL SINGLA, Director & Chief Software Architect of


Imbibe Knowledge Enterprise (IKE). He is a Freelance Developer specializing in development,
deployment and maintenance of solutions including Database Applications, Web Portals and
end-to-end productivity solutions to be deployed on Intranets or the Internet.
He currently operates a Software Firm called Imbibe Inc. which is an Independent Software
Solutions Vendor (ISSV) cum IT Consulting firm, providing cutting-edge Software products. He
also operates a Technical Training Institute providing education in developer technologies
related to IT field, called Imbibe Knowledge Enterprise.

INTRODUCTION :-

Imbibe Knowledge Enterprise (IKE) is a Technical Training


Institute providing education in cutting-edge developer technologies related to IT field. In 2008, a
group of visionary professionals and entrepreneurs felt the need of an institution that can sharpen and
strengthen the skills and traits of humans. Therefore, its commencement was not co-incidental but a
necessity to set standards of competence perfection and excellence in the field of education and

training. Its genesis is culmination of biological reactions of amazing brains.

IKE is broadly known for its quality education and dedication to excellence with positive and
progressive approach. It is a premier educational institution keenly engaged in transforming jobless
Roll No: - 2107217
persons into a team of devoted and motivated personnel.

Our innovative ideas of training and contemporary demand centric courses make us most preferred
institution in the region. We provide comprehensive learning solutions and we are committed to
provide high-end services with the perfect blend of training, skills, proficiency and expertise. We
prepare and produce dynamic and resourceful professionals who are relevantly taught for their chosen
professions and vocations within effective learning surroundings. According to our belief, healthy
environment is equally important for effective learning. We are closely associated with international
players in technology to provide training and knowledge, and our Students have been placed in the
best MNCs of the IT field.

IKE offers a comprehensive range of learning solutions and services to address the needs of diverse
audiences. We are today amongst the region’s leading talent development companies offering
learning solutions to individuals, enterprises and schools.
 
IKE’s wide spectrum of services portfolio, comprising a mix of global solutions with a local flavor,
are prevalent across varied domains. Driven by its vision of developing global talent, IKE is helping
to build a pool of employable, industry-ready professionals globally. As one of the leading training
companies, we offer diverse portfolio of programs in areas of IT and ITES.

Research and Development is central to IT learning philosophy. It is a core strength that helps us
identify the emerging market needs, leads us to create new learning methodologies and techniques,
helps us refine our curriculum, making it cutting-edge, and enables us to improve our education
delivery. Our pioneering efforts in the understanding of human cognition has added to the learning
effectiveness of our offerings. We are creating solutions capable of dealing with the new learning
environment thrown open by the Internet, that addresses anytime, anywhere learning.

The company’s expertise in areas like strategic consulting, learning design, customized content, off-
the-shelf content (e-learning),training delivery, hi-end technology training, testing & assessment, and
learning management enables large organisations to train cost effectively and efficiently. It facilitates
a learning environment that meets their existing and emerging skills requirements.

At IKE, we are committed to deliver high end solutions with the right blend of knowledge, skills and
expertise. The gamut of services offered ensures a complete end to end solution for training needs of
corporates.

Vision :-
Roll No: - 2107217

The vision statement of company is “To deliver the best experience on all major platforms.”

 To develop a sense of belonging and commitment to work and organization.


 To create a team spirit.
 Achieve high levels of productivity and excellence in all our services.
 Help individuals in self-development & growth through organization & individual
development.

TECHNOLOGY USED
Roll No: - 2107217
INTRODUCTION TO C#.NET

Why .NET?

1. Interoperability between languages and execution environments

2. Uniformity in schema or formats for Data Exchange using XML, XSL

3. Extend or use existing code that is valid

4. Programming complexity of environment is reduced

The .NET Framework is…

1. A component model for the internet


2. The new approach to building large scale distributed systems for the Internet
3. Provides the capability to integrate multiple devices
4. Built around the tools and protocols (XML, WSDL, SOAP, HTTP) that are
becoming standard on the Internet

The .NET in ASP.NET stands for the .NET Framework, a set of objects and blueprints from
Microsoft for building applications. All applications developed under the .NET Framework;
including ASP.NET applications, have certain key features that ensure compatibility, security,
and stability.
Common Language Runtime (CLR) is an environment that manages the execution of code. With
the .NET Framework and CLR, we write code and compile it. However, instead of compiling it
into the computer understands, we compile it into a language called Microsoft Intermediate
Language (MSIL). When we compile to MSIL, your application produce something called
metadata. This is descriptive information about your application. It tells what the application can
do, where it belongs, and so on. When you want to run your program, the CLR takes over and
compile the code once more into the computer’s native language. This way MSIL can go on any

type of computer. The CLR can speak many different computer languages and does all the
compiling for you. Once you compile your application, you can bring it to any other computer.
Roll No: - 2107217
CLR also provides services such as error handling, security features, versioning and deployment
support, as well as cross-language integration. That means we can choose any language we want
to write our .NET applications, including ASP.NET applications.

Fig:- .NET Framework Architecture

The .NET Framework Design Goals

1. Component Development for the Internet


2. "Cross-Language Development”
3. Inheritance, Debugging, Exception handling
4. Reliability and Security

5. Simple Development and Deployment


6. Device-agnostic
Roll No: - 2107217

The Creation of C#

While Java has successfully addressed many of the issues surrounding portability in the Internet
environment, there are still features that it lacks. One is cross-language interoperability, also
called mixed-language programming. This is the ability for the code produced by one language
to work easily with the code produced by another. Cross-language interoperability is needed for
the creation of large, distributed software systems. It is also desirable for programming software
components, because the most valuable component is one that can be used by the widest variety
of computer languages, in the greatest number of operating environments.

Another feature lacking in Java is full integration with the Windows platform. Although Java
programs can be executed in a Windows environment (assuming that the Java Virtual Machine
has been installed), Java and Windows are not closely coupled. Since Windows is the mostly
widely used operating system in the world, lack of direct support for Windows is a drawback to
Java.

To answer these and other needs, Microsoft developed C#. C# was created at Microsoft late in
the 1990s and was part of Microsoft’s overall .NET strategy. It was first released in its alpha
version in the middle of 2000. C#’s chief architect was Anders Hejlsberg. Hejlsberg is one of the
world’s leading language experts, with several notable accomplishments to his credit. For
example, in the 1980s he was the original author of the highly successful and influential Turbo
Pascal, whose streamlined implementation set the standard for all future compilers.

C# is directly related to C, C++, and Java. This is not by accident. These are three of the most
widely used and most widely liked programming languages in the world. Furthermore, at the
time of C#’s creation, nearly all professional programmers knew C, C++, and/or Java. By
building C# upon a solid, well-understood foundation, C# offered an easy migration path from
these languages. Since it was neither necessary nor desirable for Hejlsberg to start from scratch,
he was free to focus on specific improvements and innovations.

The family tree for C# is shown in Figure 1-1. The grandfather of C# is C. From C, C# derives
its syntax, many of its keywords, and its operators. C# builds upon and improves the object
model defined by C++. If you know C or C++, then you will feel at home with C#.
Roll No: - 2107217

Figure 1-1: The C# family tree

C# and Java have a bit more complicated relationship. As explained, Java is also descended from
C and C++. It too shares the C/C++ syntax and object model. Like Java, C# is designed to
produce portable code. However, C# is not descended from Java. Instead, C# and Java are more
like cousins, sharing a common ancestry, but differing in many important ways. The good news,
though, is that if you know Java, then many C# concepts will be familiar. Conversely, if in the
future you need to learn Java, then many of the things you learn about C# will carry over.

C# contains many innovative features but some of its most important relate to its built-in support
for software components. In fact, C# has been characterized as being a component-oriented
language because it contains integral support for the writing of software components. For
example, C# includes features that directly support the constituents of components, such as
properties, methods, and events. However, C#’s ability to work in a mixed-language
environment is perhaps its most important component-oriented feature.

The Evolution of C#

Following the original 1.0 release, C# has undergone two revisions. The first was version 1.1,
which was a minor upgrade that did not add significantly to the language.Version 2.0 is a major
release. It adds many new features and fundamentally expands the scope, power, and range of the
language. Along with many small improvements, C# 2.0 includes 14 major additions to the
language.
Roll No: - 2107217

The next major release of C# was 3.0.Beacuse of the many new features added by C# 2.0, one
might have expected the development of C# to slow a bit,just to let programmers catch up, but
this was not the case.With the release of C# 3.0,microsoft once again put C# on the cutting edge
of language design,this time adding the set of innovative features that redefined the programming
landscape. A more complete listing of the releases of the .NET Framework may be found on the
.NET Framework version list.

Version
Version Release Date Visual Studio Default in Windows
Number
1.0 1.0.3705.0 2002-02-13 Visual Studio .NET

1.1 1.1.4322.573 2003-04-24 Visual Studio .NET 2003 Windows Server 2003

2.0 2.0.50727.42 2005-11-07 Visual Studio 2005


Windows Vista, Windows
3.0 3.0.4506.30 2006-11-06
Server 2008
Windows 7, Windows
3.5 3.5.21022.8 2007-11-19 Visual Studio 2008
Server 2008 R2
4.0 Beta 2009-05-20 Visual Studio 2010

Of these new features, the one that has the most effect on the language, and the most direct
impact on programmers, is generics. Not only does it add an entirely new syntax element to the
language, but it also greatly expands C#’s expressive power by enabling the creation of type-
safe, reusable code. As a side-effect, the addition of generics has caused the Collections library
to be greatly expanded.

Some of the key features introduced in the C# Dot Net are as follows:-
 Inheritance
 Constructors and destructors
 Overloading
 Overriding
 Exception handling
 Multithreading
Roll No: - 2107217
 Interfaces
 Structures
 Enumeration
 Delegates
 Events
 Indexes

What Is the .NET Framework?

The .NET Framework defines an environment that supports the development and execution of
highly distributed, component-based applications. It enables differing computer languages to
work together and provides for security, program portability, and a common programming model
for the Windows platform. As it relates to C#, the .NET Framework defines two very important
entities. The first is the Common Language Runtime (CLR). This is the system that manages the
execution of your program. Along with other benefits, the Common Language Runtime is the
part of the .NET Framework that enables programs to be portable, supports mixed-language
programming, and provides for security.

The second entity is the .NET Framework class library. This library gives your program access
to the runtime environment. For example, if you want to perform I/O, such as displaying
something on the screen, you will use the .NET library to do it. If you are new to programming,
then the term class may be new. Although it is explained in detail later in this book, for now a
brief definition will suffice: a class is an object-oriented construct that helps organize programs.
As long as your program restricts itself to the features defined by the .NET Framework class
library, your programs can run anywhere that the .NET runtime system is supported. Since C#
automatically uses the .NET Framework class library, C# programs are automatically portable to
all .NET environments.

How C# Relates to the .NET Framework

Although C# is a computer language that can be studied on its own, it has a special relationship
to its runtime environment, the .NET Framework. The reason for this is twofold. First, C# was
initially designed by Microsoft to create code for the .NET Framework. Second, the libraries
used by C# are the ones defined by the .NET Framework. Thus, even though it is possible to
separate C# the language from the .NET environment, the two are closely linked. Because of
this, it is important to have a general understanding of the .NET Framework and why it is
important to C#.
Roll No: - 2107217

How the Common Language Runtime Works

The Common Language Runtime manages the execution of .NET code. Here is how it works:
When you compile a C# program, the output of the compiler is not executable code. Instead, it is
a file that contains a special type of pseudocode called Microsoft Intermediate Language
(MSIL). MSIL defines a set of portable instructions that are independent of any specific CPU. In
essence, MSIL defines a portable assembly language. One other point: Although MSIL is similar
in concept to Java’s bytecode, the two are not the same.

It is the job of the CLR to translate the intermediate code into executable code when a program is
run. Thus, any program compiled to MSIL can be run in any environment for which the CLR is
implemented. This is part of how the .NET Framework achieves portability.

Microsoft Intermediate Language is turned into executable code by using a JIT compiler. “JIT”
stands for “Just-In-Time.” The process works like this: When a .NET program is executed, the
CLR activates the JIT compiler. The JIT compiler converts MSIL into native code on a demand
basis as each part of your program is needed. Thus, your C# program actually executes as native
code even though it is initially compiled into MSIL. This means that your program runs nearly as
fast as it would if it had been compiled to native code in the first place, but it gains the portability
benefits of MSIL.

In addition to MSIL, one other thing is output when you compile a C# program: metadata.
Metadata describes the data used by your program and enables your code to interact with other
code. The metadata is contained in the same file as the MSIL.

Using csc.exe, the C# Command-Line Compiler

Although the Visual Studio IDE is what you will probably be using for your commercial
projects, the C# command-line compiler is the easiest way to compile and run most of the sample
programs shown in this book. To create and run programs using the C# commandline compiler,
you will follow these three steps:

1. Enter the program using a text editor.

2. Compile the program.

3. Run the program.

Compiling the Program

To compile the program, execute the C# compiler, csc.exe, specifying the name of the source file
on the command line, as shown here:
Roll No: - 2107217
C:\>csc Example.cs

The csc compiler creates a file called Example.exe that contains the MSIL version of the
program. Although MSIL is not executable code, it is still contained in an exe file. The Common
Language Runtime automatically invokes the JIT compiler when you attempt to execute
Example.exe. Be aware, however, that if you try to execute Example.exe (or any other exe file
that contains MSIL) on a computer for which the .NET Framework is not installed, the program
will not execute because the CLR will be missing.

Running the Program

To actually run the program, just type its name on the command line, as shown here:

C:\>Example

When the program is run, the following output is displayed:

A simple C# program.

Using the Visual Studio IDE

To edit, compile, and run a C# program using Visual Studio 2005, follow these steps.

1. Create a new, empty C# project by selecting File | New | Project. Next, select Visual C#,
and then Console Application, as shown here:

Then, change the name to Project1 and press OK.


Roll No: - 2107217
2. Once the project is created, the Visual Studio IDE will look like this:

3. Notice that a new window called Program.cs was created. This contains an empty
template for a C# console program. This file is created automatically by Visual Studio
2005 and contains the skeleton to a C# program. However, this skeleton is more
complicated than it needs to be for our purposes, so delete all of the lines in this window.
After doing so, the Program.cs window will be blank, and look like this:

4. Next, enter the example program into the Program.cs window, and then save the file
using the name Example.cs. When done, your screen will look like this:
Roll No: - 2107217

5. Compile the program by selecting Build Solution from the Build menu.

6. Run the program by selecting Start Without Debugging from the Debug menu. When you
run the program, you will see the window shown here.
Roll No: - 2107217

SQL SERVER:

SQL Server is an SQL-compliant RDBMS. SQL-compliant means it use the ANSI


(American National Standard Institute) version of Structured Query Language or ‘SQL’.
Structured Query Language is a command that allow us to modify or retrieve information
from the database.
Client server means that SQL Server is designed to store data in the central location (the
server) and deliver it on demand to numerous other locations (the client). SQL Server is
also a Relational Database Management System (RDBMS).

FEATURES OF SQL SERVER 2005:

Feature Description

Database Extend log shipping capabilities with the database mirroring solution. You will be
Mirroring able to use database mirroring to enhance availability of your SQL Server systems
by setting up automatic failover to a standby server.

Online Restore With SQL Server 2005, database administrators are able to perform a restore
operation while an instance of SQL Server is running. Online restore improves the
availability of SQL Server because only the data being restored is unavailable; the
rest of the database remains online and available.

Online Indexing The online index option allows concurrent modifications (updates, deletes, and
Operations inserts) to the underlying table or clustered index data and any associated indexes
during index data definition language (DDL) execution. For example, while a
clustered index is being rebuilt, you can continue to make updates to the underlying
data and perform queries against the data.

Fast Recovery A new faster recovery option improves availability of SQL Server databases.
Roll No: - 2107217
Administrators can reconnect to a recovering database after the transaction log has
been rolled forward.

Standards-based Any object, data source, or business intelligence component can be exposed using
Information Access standards-based protocols such as SOAP and HTTP—eliminating the need for a
middle-tier listener, such as IIS, to access a Web services interface that is exposed
by SQL Server 2005.

SQL Server SQL Server 2005 includes SQL Server Management Studio, a new integrated suite
Management of management tools with the functionality to develop, deploy, and troubleshoot
Studio SQL Server databases, as well as enhancements to previous functionality.

Dedicated SQL Server 2005 provides a dedicated administrator connection that administrators
Administrator can use to access a running server even if the server is locked or otherwise
Connection unavailable. This capability enables administrators to troubleshoot problems on a
server by executing diagnostic functions or Transact-SQL statements.

Snapshot Isolation Snapshot Isolation (SI) level is provided at the database level. With SI, users can
access the last committed row using a transitionally consistent view of the database.
This capability provides greater scalability.

Data Partitioning Data partitioning is enhanced with native table and index partitioning that enables
efficient manageability of large tables and indexes.

Replication For distributed databases, SQL Server 2005 provides comprehensive schema
Enhancements change (DDL) replication, next-generation monitoring capabilities, built in
replication from Oracle to SQL Server, merge replication over https, and significant
merge replication scalability and performance improvements. Additionally, the
peer-to-peer transactional replication feature improves support for data scale out
using replication.
Roll No: - 2107217

OTHER COMPARABLE TECHNOLOGY

Java is a programming language that can run on many different computers including mobile


phones. It was originally developed by Sun Microsystems and released in 1995. There are small
Java programs, called Applets. They often run inside web browsers. The language derives much
of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java
applications are typically compiled to bytecode (class file) that can run on any Java Virtual
Machine (JVM) regardless of computer architecture.

The original and reference implementation Java compilers, virtual machines, and class libraries
were developed by Sun from 1995. As of May 2007, in compliance with the specifications of the
Java Community Process, Sun relicensed most of their Java technologies under the GNU General
Public License. Others have also developed alternative implementations of these Sun
technologies, such as the GNU Compiler for Java and GNU Classpath.

 Java vs .Net

Feature .Net Java


Compiled Code – Increases website speed Yes – both Yes – both
(precompiled is the fastest) precompiled and precompiled and
dynamically dynamically compiled
compiled when a when a page is
page is requested requested

Scripted Language – results in poor No No


website performance
Object Oriented – Increases the ability for Yes Yes
code reuse and provides enhanced features
as well as reduced development time;
since code is more reusable, results in
fewer bugs that can be discovered by any
client and fixed for everyone; encourages
developers to write more maintainable
code.
Roll No: - 2107217

Supported Development Languages – C++, C#, Visual Java


easier to find developers Basic.NET,
Jscript.NET, Python,
Perl, Java (J#),
COBOL, Eiffel, Delphi
– 25 languages
supported currently

Browser Specific HTML Rendering – Yes No


different HTML is automatically sent to IE
than to Netscape, reducing incompatibility
issues

Open Source No Yes


Roll No: - 2107217
PROJECT UNDERTAKEN

HMAIL

Hmail is simply a Desktop Application created under window application of .Net framework by
applying programming language C#.In this,we can send out text messages from one PC to another
PC, we need not to access the Internet. It is based on the Client/Server Application. It describes the
relationship between two computer programs in which one program, the client, makes a service
request from another program, the server, which fulfills the request.

MAIL SERVER :-

The term Mail Server is also loosely used to mean a computer acting as an MTA(message transfer
agent) by running the appropriate software. . If we are sending messages using mail server program,
Messages will first be sent from client to mail server for delivery and then sent to recipient.Similar in
case of recieving, Messages will be sent from mail server to client(reciever).

An MTA receives mail from a mail user agent (MUA). The transmission details are specified by the
our costomize protocol(TTP).The MTA works behind the scenes, while the user usually interacts with
the MUA. So MTA is usually coupled with some means for mail clients to gain access to stored
Roll No: - 2107217
messages when clients come online. And Mail Server takes all the information about the client from
it’s the database and show it to the that user who is logged in to the HMail.

MAIL CLIENT :-

An mail client, mail reader, or more formally mail user agent (MUA), is a computer program used to


manage messages.Specifically, the term Mail Client may refer to any agent acting as  client toward
an mail server, regardless of it being a mail user agent, a relaying server, or a human typing on a
terminal. In addition,it is provided the message management, composition, and reception
functionality is sometimes considered an Mail client. Like most client programs, an MUA is only
active when a user runs it.Unless the MUA has access to the server's disk, messages are stored on a
Server database and the MUA has to request them on behalf of the user.

Receive
Roll No: - 2107217

PROJECT DESCRIPTION

Name of the project :-HMail

No. of Windows Forms :- 5


No. of user controls :- 4
Name of Forms :-

 Login Form
 Parent Form
 Mail Server Design
 Add Contact Form
 Register Form

User Control :-

 Inbox User Control


 Send Mail User Control
 Sent Mail User Control
 Address book User Control

Technologies Used :-

 .Net Framework
 C# (C Sharp)
 Sql Server 2005

FEATURES OF HMAIL :-
Roll No: - 2107217
 Register Form :-

Here we fill the


personal information

Here we fill the user


id which is easily
remembered to the
user during the time of
login. This login name
may contains the a-z
alphabets, 0-9 digits
and the special
characters .And
password should be
more then the six
characters

Here we fill the


security questions and
there answers for the
sake of security in the
future

First of all we have to register or signup on HMail by just answering the simple questions which
is divided in to three sections
1. Personal Information
2. Account info
Roll No: - 2107217
3. Security

Personal information:-
Personal information is defined as being any information concerning an individual and allowing
the identification of him or her. In this we have
 First name
 Last name
 Birth date
 Gender
 Location of the person

Account information:-
It is the information about the user’s id and the password which he/she have remember at time of
login. And user id may contains the special characters like sample@HMial. Password may
contain 0 to 9 digits and a to z alphabet and it has to be more than six in length.

Security:-

In this section user has to fill one question and it’s answer. Tips of Picking a good security
question and answer:-

 Choose a question only you know the answer to - make sure the question isn't associated
with your password.
 Pick a question that can't be answered through research (for example, your birth date,
your first or last name, your social security number, your phone number etc.).
 Make sure your answer is memorable, but not easy to guess. Use an answer that is a
complete sentence for even more security.

This security section is used in future if the given user forgets his password.

After filling all that and by clicking the save and close button now we have an account on the
HMail.And it is shown in the message box like this

Register form coding:-


Roll No: - 2107217
private void button_createaccount_Click(object sender, EventArgs e)
{
if (this.textBox_password.Text.Length < 6)
{
MessageBox.Show("Please check your password");
}
else
{
DateTime Handle
try For Birthday
{
int gender;

DateTime birthday = DateTime.Parse(this.comboBox_day.Text


+ "/" + this.comboBox_month.Text + "/" + this.comboBox_year.Text);

if (this.radioButton_male.Checked)
gender = 1; Radio Button for
else Gender
gender = 2;

if (this.textBox_password.Text !=
this.textBox_retypepassword.Text)
{
MessageBox.Show("Password do not match");
}
else
{
Globals.c.registerUser(this.textBox_firstname.Text,
this.textBox_lastname.Text, birthday, gender, this.comboBox_location.Text,
this.textBox_city.Text, this.textBox_loginname.Text,
this.textBox_password.Text, this.comboBox_question.Text,
this.textBox_answer.Text);
} Communicate with
this.Close();
} Communicator and Server
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
private void textBox_retypepassword_Leave(object sender, EventArgs e)
{
if (this.textBox_password.Text.Length > 5)
{
if (this.textBox_password.Text != "")
{
if (this.textBox_password.Text ==
this.textBox_retypepassword.Text)
{
this.pictureBox_cross.Hide();
this.pictureBox_tick.Show();
}
Roll No: - 2107217
else
{
this.pictureBox_tick.Hide();
this.pictureBox_cross.Show();
this.textBox_retypepassword.Text = "";
this.textBox_password.Text = "";
}
}
}
}

private void textBox_password_Leave(object sender, EventArgs e)


{
if (this.textBox_password.Text.Length < 6)
{
MessageBox.Show("Please enter minimum of 6 character of
length"); Password will be
}
else
minimum of six
{ character
if (this.textBox_retypepassword.Text != "")
{
if (this.textBox_password.Text ==
this.textBox_retypepassword.Text)
{
this.pictureBox_cross.Hide();
this.pictureBox_tick.Show(); Picture (Right and
} Wrong) Box Handle
else
{
this.pictureBox_tick.Hide();
this.pictureBox_cross.Show();
this.textBox_retypepassword.Text = "";
this.textBox_password.Text = "";
}
}
}

 LoginForm :-
Roll No: - 2107217
Here we sign into
HMail by using the
login name and
password

This is the server ip


& server port
which is set to the
values 127.0.0.1 &
1024 by default.
And it is in
synchronization
with the Mail
Server

After creating an account now we can successfully log in to HMail.In this we have two parts
One is for the user’s information and second is for the server Ip and server port which is
synchronized with the mail server.
Now first we have to set the server’s configuration after that we fill the login name and the
password and click the button.

If the given user exists then this application shows this message box shown below.
Roll No: - 2107217
After clicking the ok button in the message box shown above, the parent form is displayed on the
screen.
Parent form is the window form where we perform all our functions like sending and checking
the mail and also store our contacts.

If the user doesn’t exists it shows the message box which is shown in the figure below then we
have to check and re-enter the login name and password.
Roll No: - 2107217

 Parent Form :-

In this parent form we have user controls along with the links each for one user control.  
User Controls are the user defined controls which allow us to design a custom control which can
be reused in the form.These user controls are as follows:-
1. Inbox
2. Send Mail
3. Sent Mail
4. Address Book
And one button for Add Contacts which is a Window from

Snapshot of Parent Form:-

This all are


the links each
for one user
control

This is the place where we display all the user


controls and their visibility changes on clicking
on the links shown in figure above
Roll No: - 2107217

We handled all the user controls with the help of one function which helps in aligning all the user
controls called alignControl which is shown below. This function calls by the click event of the
links and this click events also changes the visibility of the usercontrols as per the selection of
links by the user.

private void linkLabel_Inbox_LinkClicked(object sender,


LinkLabelLinkClickedEventArgs e)
{
this.inbox1.Visible = true;
this.alignControl(this.inbox1);

private void alignControl(UserControl c)


{
if (this.previous != null)
this.previous.Visible = false;

this.previous = c;
c.Location = new Point(xDiff, yDiff);
c.Size = new Size(this.Width - xDiff - 10, this.Height - yDiff);
c.Show();
}

private void linkLabel_SentMail_LinkClicked(object sender,


LinkLabelLinkClickedEventArgs e)
{
this.sentMail1.Visible = true;
this.alignControl(this.sentMail1);

private void linkLabel_addressbook_LinkClicked(object sender,


LinkLabelLinkClickedEventArgs e)
{
this.addressBook1.Visible = true;
this.alignControl(this.addressBook1);

Coding part for aligning the User Controls on Parent Form


Roll No: - 2107217

 Inbox user control :-


Mainly inbox is the rest room of mails where one user can have the information about the mails
which is send by the existing users on the HMail to that particular user.
It’s include the information about:-

1. From
2. Date
3. Subject
4. Body

We also have the options of replying and forwarding the mails, which is conducting by the
buttons reply and forward which is shown in the below snapshot of inbox user control.

At this place we can check


mails send by the other
users
E.g.:- Sample user has one
mail from the qwerty on
oct/18/2009

Now if user Sample wants to reply the answer of the given mail then he/she has to select one row
and then has to press reply button by this Send Mail user control will appears on the Parent Form
as shown in the Send Mail user control figure. By the help of forward button user can send the
particular mail to the other by selecting one row of the table.
Roll No: - 2107217

 Send Mail User Control :-

Sending the mail is the purpose of transferring the information from one user to the other user.
And it is the secure way of transferring the information because only that particular user can
receive it and read it. For sending the mail we require userid of the user to whom the mail is to be
sending.
Here in this Send Mail User Control one user can send the mails to the other users. For sending
the mail, user has to click the send button. And this mail will be send by the customize protocol
TTP.
Roll No: - 2107217

This feature allows you to edit your mail, compose your message, indicate 'from', 'reply', mail
addresses etc.

This feature is used to make the mail appear as if it were coming from some other mail address
than that indicated in your personal account, have replies routed to the proper departments and
attach other information which people can then comment on in your survey.

Write the subject for your e-mail in the 'Subject' field. The e-mail subject should be as
interesting and powerful as possible in order to ensure your e-mail is opened. It is the first thing
we read. Make sure it is clear and state the purpose of your survey, report, reminder or alert
mail. 
Note: make sure "Subject" field does not contain brakes. It is not recommended to copy/paste
"Subject" from external sources. These actions may corrupt your Invitation mail.

After Clicking on the send button if the given user exists then that mail is send to that user and
the message box will appeared which is shown in the next figure 1.

Fig:-1

And if the given user doesn’t exists then the other message box will appeared which is shown by
the fig 2.

Fig:-2
Roll No: - 2107217

 Sent Mail User Control:-

Generally we have sent mail box for the record of mails which we send to others through one
particular user id. And we also have the record of their respective time of sending the mail.
This user control shows the record of mails which was sent to the other users by the given user.
We have one button of delete to delete the mails present in this.
This user control has one table which have four columns:-

1. To(to whom the mail was sent)


2. Date(time at which the mail was sent)
3. Subject(main subject of the mail)
4. Body(main information which was sent)

This is the mail


which we send
above in the
report to user
qwerty
Roll No: - 2107217
Sent Mail Coding:-

private void showMails()


{
String[] arr = Globals.c.getMails(Globals.userId);
Inserting The
for (int i = 0; i < arr.Length; i = i + 4)
{
Data in
this.dataGridView1.Rows.Add(arr[i],arr[i+1], DataGridView
arr[i+2],arr[i+3]);
}

private void dataGridView1_VisibleChanged(object sender, EventArgs e)


{
String[] arr = Globals.c.getMails(Globals.userId);
for (int i = 0; i < arr.Length; i = i + 2) Deleting the contents
{
this.dataGridView1.Rows.Clear(); of DataGridView
}

if (this.Visible)
this.showMails();
}

private void button_Delete_Click(object sender, EventArgs e)


{
if(this.dataGridView1.SelectedRows.Count!=1)
{
MessageBox.Show("Please select only 1 row");
return;
}
try
{
foreach (DataGridViewRow r in this.dataGridView1.SelectedRows)
{
Globals.c.deleteMail((string) r.Cells[1].Value);
}
Deleting the
this.dataGridView1_VisibleChanged(sender, e);
MessageBox.Show("Mail is deleted successfully"); Selected Row
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Roll No: - 2107217

 Add Contacts Window Form:-

Contact is like database where we store the contacts. Each contact entry usually consists of a few
standard fields (for example: first name, last name, company name, address, telephone number,
mail address, fax number, mobile phone number). Most such systems store the details in
alphabetical order of people's names, although in paper-based address books entries can easily
end up out of order as the owner inserts details of more individuals or as people move.

This the form where user can add its contacts along with the mail id and home address. In this we
have fields like:

This fields are the


required fields.
That’s why we use
here the symbol ‘*’

In notes we can
write about the
birth date and
other important
Information
related to that
person
Roll No: - 2107217

How does user add people to its Contact list?

1. Click Add Contacts along the left side of HMail


Parent form.
2. New form is appeared.
3. Enter your contact's information in the appropriate
fields.
4. Click Save and Close to add your contact.
5. For ignoring that click close.
When user clicks the Save and Close button the message box will appears if contact is added
successfully in the data base as shown in the figure below.

For insertion of
contact.
contact

 Address Book User Control:-

An address book is a book or a database used for storing entries called contacts. Each Address
Book entry usually consists of a few standard fields (for example: first name, last name,
company name, address, telephone number, e-mail address, fax number, mobile phone number).
Most such systems store the details in alphabetical order of people's names, although in paper-
based address books entries can easily end up out of order as the owner inserts details of more
individuals or as people move.

For deletion of
contact
Roll No: - 2107217
The Address Book is an application that has a local database and user interface for finding and
editing information about people. Here the user can see his contacts that he stored in the previous

section of Add Contacts. He can also arrange it in the alphabetical order, and if he wants to
delete then he can also do that by selecting the row and by pressing the delete button. And the
message box will appears shown above.

Contact that we
added before in
the previous
section of Add
Contacts Form.

Address Book of user sample


Roll No: - 2107217
PROTOCOL:-

In computing, a protocol is a set of rules which is used by computers to communicate with each
other across a network. A protocol is a convention or standard that controls or enables the
connection, communication, and data transfer between computing endpoints. In its simplest
form, a protocol can be defined as the rules governing the syntax, semantics, and synchronization
of communication. Protocols may be implemented by hardware, software, or a combination of
the two.

 Properties Of Protocol:-
While protocols can vary greatly in purpose and sophistication, most specify one or more of the
following properties:-

 Detection of the underlying physical connection (wired or wireless), or the existence of


the other endpoint or node.
 Handshaking.
 Negotiation of various connection characteristics.
 How to start and end a message.
 Procedures on formatting a message.
 What to do with corrupted or improperly formatted messages.
 How to detect unexpected loss of the connection, and what to do next.
 Termination of the session and/or connection.

 Introduction to TTP:-

TTP stands for Text Transfer Protocol. Text transfer protocol is a set of rules to transfer, sending
and receiving the text messages. In this, we are only concern with the text messages. Transfer of
mails is done with the help of Mail Helper. Mail Helper is a means of communication between
the Mail client and Mail Server. In Mail helper, mainly two processes are taken. First is of
sending the messages and second is of receiving the messages. For sending of mails, the sent
message is joined, converting into bytes and write in network stream. Now the question arises
how the joining of messages take place. Each messages are joined by the field separator and
terminated with message terminator. As we made our own customized protocol, We use certain
set of rules. Here the Field separator is null character(‘/0’) and the message terminator is ctrl-z
whose ASCII value is 26.For receiving the message, first we split the message and then send to
information to client. This splitting of messages is done by using Dynamic array,ie the list of
strings. We add the each part of dynamic array and converted into new array by using the
function .ToArray( ). In this way this protocol works.
Roll No: - 2107217
Coding of Mail Helper:-

public class Communicator


{
protected TcpClient client;
protected NetworkStream stream;
protected readonly Encoding encoding = Encoding.Unicode;
protected readonly char fieldseparator = '\0';
protected readonly char messageTerminator =
char.Parse(char.ConvertFromUtf32(26));

//make connection with client


public Communicator (TcpClient client)
{
this.client = client;
this.stream = client.GetStream();
}

//join message with individual message is terminated with '\0'


char and end message is terminated with ^Z(Ctrl-z)
protected string joinMessage (params String[] args)
{
String s = "";

foreach (string part in args)


{ //Feild separator
s = s + part + this.fieldseparator;
}
//Message Terminator
s = s + this.messageTerminator;

return (s);
}

//spliting the message


protected string[] splitMessage (string s)
{
List<string> l = new List<string>();
foreach (string part in s.Split(new char[] {
this.fieldseparator }, StringSplitOptions.RemoveEmptyEntries))
l.Add(part);

return (l.ToArray());
}

protected byte[] getBytes (string s)


{
return (this.encoding.GetBytes(s));
}

protected string getString (byte[] b)


{
return (this.encoding.GetString(b));
Roll No: - 2107217
}

//sent message is joined, converted into bytes and write in


network stream
public void sendMessage (params String[] args)
{
string s = this.joinMessage(args);
byte[] b = this.getBytes(s);
this.stream.Write(b, 0, b.Length);
}

//recieve message by splitting it and send to client


public String[] receiveMessage ()
{
List<byte> l = new List<byte>();

int b = this.stream.ReadByte();
while (b != -1 && b != this.messageTerminator)
{
l.Add((byte) b);
b = this.stream.ReadByte();
}
b = this.stream.ReadByte();

String s = this.getString(l.ToArray());

return (this.splitMessage(s));
}

public void dispose ()


{
this.stream.Dispose();
this.client.Client.Close();
this.client.Close();
}
}
Roll No: - 2107217

System Requirement:-
User Interface: It should be interactive attractive & informative
Hardware Interface: Interact with the server, which contains the database
Software Interface: Connectivity to the server & the database
Communication Interface: Server attachment is necessary.

INTERFACE REQUIREMENT:-
1. User Interface:-
The package must be user friendly and robust. It must prompt the user with proper message
boxes to help them perform various actions and how to precede further the system must respond
normally under any in out conditions and display proper message instead of turning up faults and
errors.
2. Hardware Specification:-
HARDWARE SPECIFICATION
CPU Intel Pentium IV
SPEED 1.5GHz
RAM 256 MB

HARD DISK 40GB

3. System Requirement:-
SOFTWARE SPECIFICATION

FRAMEWORK .NET framework 2.0

DBMS MS SQL DBMS ( 2005)

OPERATING SYSTEM XP OR VISTA


Roll No: - 2107217
DATABASE DESIGN WITH E-R DIAGRAM

In software engineering, an Entity-Relationship Model (E-R Model) is an abstract and


conceptual representation of data. Entity-relationship modeling is a database modeling method,
used to produce a type of conceptual schema or semantic data model of a system, often
a relational database, and its requirements in a top-down fashion.

Diagrams created using this process are called entity-relationship diagrams, or ER


diagrams or ERDs for short. An entity may be defined as a thing which is recognized as being
capable of an independent existence and which can be uniquely identified. An entity is an
abstraction from the complexities of some domain. When we speak of an entity we normally
speak of some aspect of the real world which can be distinguished from other aspects of the real
world. An entity-relationship (ER) diagram is a specialized graphic that illustrates the
interrelationships between entities in a database. ER diagrams often use symbols to represent
three different types of information. Boxes are commonly used to represent entities. Diamonds
are normally used to represent relationships and ovals are used to represent attributes.

The first stage of information system design uses these models during the requirements
analysis to describe information needs or the type of information that is to be stored in
a database. The data modeling technique can be used to describe any ontology (i.e. an overview
and classifications of used terms and their relationships) for a certain area of interest. In the case
of the design of an information system that is based on a database, the conceptual data model is,
at a later stage (usually called logical design), mapped to a logical data model, such as
the relational model; this in turn is mapped to a physical model during physical design.Eg.

Customer

Data Analysis
Roll No: - 2107217

Data Base Tables ->

Database Tables to be created are:

1. Users (Login):- This table contains the following entity and userid is Primary key here:

Name Type

userid int
first name nvarchar(50)
lastname nvarchar(50)
birthday date time
gender int
location nvarchar(50)
city nvarchar(50)
loginname nvarchar(50)
password nvarchar(50)
security question nvarchar(100)
security answer nvarchar(100)

2. Mail:- This table contains the following entity and mailid is Primary key here:

Name Type

mailid int
touser int
fromuser int
date datetime
subject nvarchar(500)
body nvarchar(MAX)

3. Contacts:- This table contains the following entity and userid is foreign key in table
users:

Name Type

firstname nvarchar(50)
Roll No: - 2107217
lastname nvarchar(50)
nickname nvarchar(50)
title nvarchar(50)
id nvarchar(50)
phonenumber nvarchar(10)
nvarchar(500
homeaddress )
city nvarchar(70)
notes nvarchar(MAX)
userid int

 E-R Model of HMail Database are :-

Notes

Data Flow Diagrams


Roll No: - 2107217
DFD’s have the purpose of clarifying system requirements and identifying major transformations
that will become programs in system design. A DFD is also known as “Bubble chart” has the
purpose of clarifying system requirements and identifying major
transformations that will become programs in system design. So it’s a starting point of the design
phase that functionality decomposes the requirements specifications down lines. The bubbles
represent data transformation and lines represent data flows in the system.

DFD SYMBOLS:-

In DFD there are four symbols:

 A CIRCLE or a BUBBLE represents the process that transforms incoming


data flow(s) into outgoing data flow(s).
 An OPEN RECTANGLE is a data store-data at rest, or a temporary repository
of data.
 A SQUARE defines the originator or the destination of the system data.
 An ARROW identifies the data flows in motion. It’s a pipeline thru which
information flows.
Roll No: - 2107217
0 – LEVEL DFD

SENDER RECIEVER

MAIL
SERVER
Roll No: - 2107217
1 – LEVEL DFD

MAIL MAIL MAIL


CLIENT HELPER SERVER
(COMMUNICATOR)

2 – LEVEL DFD
Roll No: - 2107217

M INBOX
A
I SEND
LOGIN L MAIL

S
E SENT
R MAIL
REGISTER
V
E ADD
CONTACTS
R

ADDRESS
DATABASE BOOK

3 – LEVEL DFD
Roll No: - 2107217

DELETE
DATABASE FORWARD

REPLY

SEND

TESTING OF PROJECT WITH THE ERROR SNAPSHOTS


DELETE

1).Problem in DateTime Format.

UPDATE

DELETE
Roll No: - 2107217

2. Errors while debugging the progam.


Roll No: - 2107217

3. No proper connection and synchronization with Mail server


Roll No: - 2107217

4. Problem in threading concept.


Roll No: - 2107217
Roll No: - 2107217
DIVISION OF TIME HOW TRAINING PROGRESSES USING
A BAR GRAPH

Division of time how training progress

100

90

80

70

60
Progress(in %age)
50

40

30

20

10

0
1 2 3 4 5 6

Time(in weeks)

You might also like