report file mayank hmail

74
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.

Upload: mayank-arora

Post on 21-Nov-2014

168 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: REPORT FILE Mayank Hmail

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.

Page 2: REPORT FILE Mayank Hmail

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 diagram

45

10). Data Flow Diagrams 48

11). Testing of projects with error snapshot

53

12). Division of time how training progresses

57

Page 3: REPORT FILE Mayank Hmail

Roll No: - 2107217

IMBIBE KNOWLEDGE ENTERPRISE

INTRODUCTIONTO

IMBIBE KNOWLEDGEENTERPRISE

(COMPANY PROFILE)

Page 4: REPORT FILE Mayank Hmail

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

Page 5: REPORT FILE Mayank Hmail

Roll No: - 2107217persons 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 :-

Page 6: REPORT FILE Mayank Hmail

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

Page 7: REPORT FILE Mayank Hmail

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.

Page 8: REPORT FILE Mayank Hmail

Roll No: - 2107217CLR 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

Page 9: REPORT FILE Mayank Hmail

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#.

Page 10: REPORT FILE Mayank Hmail

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.

Page 11: REPORT FILE Mayank Hmail

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.

VersionVersion

NumberRelease Date Visual Studio Default in Windows

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

3.0 3.0.4506.30 2006-11-06Windows Vista, Windows

Server 2008

3.5 3.5.21022.8 2007-11-19 Visual Studio 2008Windows 7, Windows

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

Page 12: REPORT FILE Mayank Hmail

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#.

Page 13: REPORT FILE Mayank Hmail

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:

C:\>csc Example.cs

Page 14: REPORT FILE Mayank Hmail

Roll No: - 2107217

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.

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

Page 15: REPORT FILE Mayank Hmail

Roll No: - 2107217

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:

Page 16: REPORT FILE Mayank Hmail

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.

Page 17: REPORT FILE Mayank Hmail

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 Mirroring

Extend log shipping capabilities with the database mirroring solution. You will be 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 Operations

The online index option allows concurrent modifications (updates, deletes, and 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. Administrators can reconnect to a recovering database after the transaction log has been rolled forward.

Page 18: REPORT FILE Mayank Hmail

Roll No: - 2107217Standards-based Information Access

Any object, data source, or business intelligence component can be exposed using 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 Management Studio

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

Dedicated Administrator Connection

SQL Server 2005 provides a dedicated administrator connection that administrators can use to access a running server even if the server is locked or otherwise 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 Enhancements

For distributed databases, SQL Server 2005 provides comprehensive schema 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.

Page 19: REPORT FILE Mayank Hmail

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 (precompiled is the fastest)

Yes – both precompiled and dynamically compiled when a page is requested

Yes – both precompiled and dynamically compiled when a page is requested

Scripted Language – results in poor website performance

No No

Object Oriented – Increases the ability for 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.

Yes Yes

Page 20: REPORT FILE Mayank Hmail

Roll No: - 2107217

Supported Development Languages – easier to find developers

C++, C#, Visual Basic.NET, Jscript.NET, Python, Perl, Java (J#), COBOL, Eiffel, Delphi – 25 languages supported currently

Java

Browser Specific HTML Rendering – different HTML is automatically sent to IE than to Netscape, reducing incompatibility issues

Yes No

Open Source No Yes

Page 21: REPORT FILE Mayank Hmail

Roll No: - 2107217PROJECT 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

Page 22: REPORT FILE Mayank Hmail

Roll No: - 2107217messages 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.

Mailman

Recipient # 1

Recipient # 2

Recipient # 3

Incoming Mail

Messages

Mail Server

Deliver

Receive

Page 23: REPORT FILE Mayank Hmail

Roll No: - 2107217

PROJECT DESCRIPTION

Name of the project :-HMail

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

Login FormParent FormMail Server DesignAdd Contact FormRegister Form

User Control :-

Inbox User ControlSend Mail User ControlSent Mail User ControlAddress book User Control

Technologies Used :-

.Net FrameworkC# (C Sharp)Sql Server 2005

FEATURES OF HMAIL :-

Page 24: REPORT FILE Mayank Hmail

Roll No: - 2107217 Register Form :-

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

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

Page 25: REPORT FILE Mayank Hmail

Roll No: - 21072173. 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:-

private void button_createaccount_Click(object sender, EventArgs e)

Page 26: REPORT FILE Mayank Hmail

Roll No: - 2107217 { if (this.textBox_password.Text.Length < 6) { MessageBox.Show("Please check your password"); } else {

try { 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; else 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); } this.Close(); } 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(); } else

DateTime HandleFor Birthday

Radio Button for Gender

Communicate with Communicator and Server

Page 27: REPORT FILE Mayank Hmail

Roll No: - 2107217 { 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"); } else { if (this.textBox_retypepassword.Text != "") { if (this.textBox_password.Text == this.textBox_retypepassword.Text) { this.pictureBox_cross.Hide(); this.pictureBox_tick.Show(); } else { this.pictureBox_tick.Hide(); this.pictureBox_cross.Show(); this.textBox_retypepassword.Text = ""; this.textBox_password.Text = ""; } } }

LoginForm :-

Here we sign into HMail by using the login name and password

Picture (Right and Wrong) Box Handle

Password will be minimum of six character

Page 28: REPORT FILE Mayank Hmail

Roll No: - 2107217

After creating an account now we can successfully log in to HMail.In this we have two partsOne 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.

After clicking the ok button in the message box shown above, the parent form is displayed on the screen.

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

Page 29: REPORT FILE Mayank Hmail

Roll No: - 2107217Parent 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.

Parent Form :-

Page 30: REPORT FILE Mayank Hmail

Roll No: - 2107217

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. Inbox2. Send Mail3. Sent Mail4. 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

Page 31: REPORT FILE Mayank Hmail

Roll No: - 2107217We 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

Page 32: REPORT FILE Mayank Hmail

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.

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.

At this place we can check mails send by the other usersE.g.:- Sample user has one mail from the qwerty on oct/18/2009

Page 33: REPORT FILE Mayank Hmail

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.

Page 34: REPORT FILE Mayank Hmail

Roll No: - 2107217This 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

Page 35: REPORT FILE Mayank Hmail

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

Page 36: REPORT FILE Mayank Hmail

Roll No: - 2107217Sent Mail Coding:-

private void showMails() { String[] arr = Globals.c.getMails(Globals.userId);

for (int i = 0; i < arr.Length; i = i + 4) { this.dataGridView1.Rows.Add(arr[i],arr[i+1], 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) { this.dataGridView1.Rows.Clear(); } 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); } this.dataGridView1_VisibleChanged(sender, e); MessageBox.Show("Mail is deleted successfully"); } catch (Exception ex) { MessageBox.Show(ex.Message); } }

Deleting the contents of DataGridView

Deleting the Selected Row

Inserting The Data in

DataGridView

Page 37: REPORT FILE Mayank Hmail

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:

In notes we can write about the birth date and other important Information related to that person

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

Page 38: REPORT FILE Mayank Hmail

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.

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

For insertion of contact.

Page 39: REPORT FILE Mayank Hmail

Roll No: - 2107217The 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.

Address Book of user sample

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

Page 40: REPORT FILE Mayank Hmail

Roll No: - 2107217PROTOCOL:-

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.

Page 41: REPORT FILE Mayank Hmail

Roll No: - 2107217Coding 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 clientpublic 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 Terminators = s + this.messageTerminator;

return (s);}

//spliting the messageprotected 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));

Page 42: REPORT FILE Mayank Hmail

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 clientpublic 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();

}}

Page 43: REPORT FILE Mayank Hmail

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

Page 44: REPORT FILE Mayank Hmail

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 ID

Name Address Email

Customer

Page 45: REPORT FILE Mayank Hmail

Roll No: - 2107217

Data Analysis

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 intfirst name nvarchar(50)lastname nvarchar(50)birthday date timegender intlocation 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 inttouser int

fromuser intdate datetime

subject nvarchar(500)body nvarchar(MAX)

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

Page 46: REPORT FILE Mayank Hmail

Roll No: - 2107217 Name Type

firstname nvarchar(50)lastname nvarchar(50)nickname nvarchar(50)

title nvarchar(50)id nvarchar(50)

phonenumber nvarchar(10)

homeaddressnvarchar(500

)city nvarchar(70)

notes nvarchar(MAX)userid int

E-R Model of HMail Database are :-

Users

Userid

Locatio

n

Gender

Birthday

Lastname

Name

Password

Loginname

City

Securityanswer

Securityquestion

Firstname

SENDS

Date

Fromuser

Touser

Mailid

MailBody

Subject

1 N

Contacts Phonen

umber

IdTitle

Nickname

Lastname

Name

Firstname

City Homead

dressUserid

Notes

Page 47: REPORT FILE Mayank Hmail

Roll No: - 2107217

Data Flow Diagrams

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.

Page 48: REPORT FILE Mayank Hmail

Roll No: - 2107217

0 – LEVEL DFD

SENDER

MAILSERVER

RECIEVER

Page 49: REPORT FILE Mayank Hmail

Roll No: - 2107217

1 – LEVEL DFD

MAILCLIENT

MAILHELPER

(COMMUNICATOR)

MAILSERVER

Page 50: REPORT FILE Mayank Hmail

Roll No: - 21072172 – LEVEL DFD

DATABASE

LOGIN

MAIL

SERVER

INBOX

SENDMAIL

SENTMAIL

ADDCONTACTS

ADDRESSBOOK

REGISTER

Page 51: REPORT FILE Mayank Hmail

Roll No: - 21072173 – LEVEL DFD

LOGIN

MAILSERVER

INBOX

SEND

MAIL

SENT

MAILADD

CONTACTS

ADDRESS

BOOK

REGISTER

DATABASE

REPLY

FORWARD

DELETE

SEND

DELETE

UPDATE

DELETE

Page 52: REPORT FILE Mayank Hmail

Roll No: - 2107217TESTING OF PROJECT WITH THE ERROR SNAPSHOTS

1).Problem in DateTime Format.

Page 53: REPORT FILE Mayank Hmail

Roll No: - 2107217

2. Errors while debugging the progam.

Page 54: REPORT FILE Mayank Hmail

Roll No: - 21072173. No proper connection and synchronization with Mail server

Page 55: REPORT FILE Mayank Hmail

Roll No: - 21072174. Problem in threading concept.

Page 56: REPORT FILE Mayank Hmail

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

A BAR GRAPH

1 2 3 4 5 60

10

20

30

40

50

60

70

80

90

100

Division of time how training progress

Progress(in %age)

Time(in weeks)