Está en la página 1de 122

Softpro India Computer Technologies Pvt. Ltd.

Lucknow

Project Report On

eStudyZone

ACKNOWLEDGEMENT
The completion of any task is the reward to not only persons actively involved in accomplishing it, but also to the people involved in inspiring, guiding and helping those people. We take the opportunity here to thank all those who have helped us in this project, without which this indeed, would have been, a mammoth task. Yet, this project wouldnt have been possible without the unrelenting care and support of many people. First and Foremost, I would like to thank external guide for industrial training Mr.SK Verma (Technical Guide in Softpro India technologies) for being always their with his helping hands. I am highly indebted to our internal project guide Ms. Deepa Raj for his encouraging, motivating & invaluable support in bringing the work to this shape, without which this project indeed would have been a quite difficult task.

Last but not least, I am also thankful to all members of MCA Department for their support at different stages of the project work.

Thanking You

ABSTRACT
Estudyzone is a web based portal which will be used worldwide and will provide common place for learners and trainers. The main objective of this application is to provide such a platform where people can share information and knowledge in an effective and efficient manner . This project deals with developing web based application which introduces a new concept of Learners and Trainers and is also providing virtual environment.This platform will provide user friendly environment with improved tutorials are provided on Languages( C,C++,C#,Java .).

This system is implemented using a 3-tier approach , with a backend database, a middle tier of Microsoft Internet Information Services (IIS) and ASP.NET, and a web browser as the front end client. In order to develop a estudyzone Web based application, a number of Technologies must be studied and understood. These include multi-tiered architecture, server and client side scripting techniques, implementation technologies such as ASP.NET, programming language (such as C#, & JavaScript etc.) and relational databases (MS SQL SERVER 2005).

ABOUT THE ORGANIZATION


Softpro India Computer Technologies Pvt. Ltd. is an emerging Software Development company. It is spread in 5 location in India and 2 locations abroad. SPI developers state of art software solutions in field of business application and networking. The company also markets, sell and support software products, web sites and offers turnkey solutions to customers. Softpro India Computer Technologies Pvt. Ltd. provides Corporate as well as Certification programs. It also provides Programming services, Application Development and Integration services. We are responsible for designing and development services, Search Engines Optimization Services and back office solutions. Softpro India Computer Technologies Pvt. Ltd. provides customized and flexible IT solution, with low costs for

international standards, without any reduction or loss in quality, technology and scalability for the client.

FOUNDATION
As a result of huge research Softpro India Computer Technologies Pvt. Ltd., was founded in 2004, with the mission of Bridging the Technology GAP by a group of Technocrats, Mr. S.K. Verma from IIT Kanpur (1989 Batch), one of the pioneer Institute of the Country and Mr. Ajay Singh, B.Tech from I.E.T. Lucknow in Electronics Engineering (1991 Batch.). Ajay Singh, Regional Manager Softpro India Computer Technologies Pvt. Ltd., has worked with the organizations of International repute in India & abroad in the areas of Networking, Designing & Security Systems, Information Science, Tele-medicine and Educational Technology. Hence as a result of his rich experience there was born a Company that started with a mission of Bridging the Technology Gap with special focus on the use of latest Technologies in the innovations. Mr. Ajay Singh is currently the Regional Manager of Softpro India Computer Technologies Pvt. Ltd. and has been responsible for the technological innovations.

Softpro India Computer Technologies Pvt. Ltd. Business Edge


SPI is not only in Software Development but also catering the current Enterprise needs. A group of professionals from various domains of Technology having more than 10 years of experience in the respective fields. Availability of advance technology. Understand the importance of business operations of our clients. Provide the quality service to our clients. Customized Interaction processes specifically as per our client needs. Highly motivated and qualified team.

MISSION STATEMENT
Bridging The Technological Gap

To design, build, deliver and manage unique and customized business solutions for our customers and to provide unparallel service to support our customers such that we remain a preferred provider of business solutions to our clients.

BACKGROUND
Founded in 2004, Softpro India Computer Technologies Pvt. Ltd. is an established offering professional services and employing industry professionals. SPI mission is to provide integrated solution and consulting services for the information technology industries. SPI is a multidisciplinary network of professionals whose main focus is to streamline your corporate structure insures that each division provides unique and specialized services while working in synergy with our customer resulting in a high degree of flexibility and rapid response. SPI can tailor equipment, application software and support services to suite company individual needs.

EXPERIENCED TEAM
Founded in 2004, Softpro India Computer Technologies Pvt. Ltd. is an established offering professional services and employing industry professionals. SPI mission is to provide integrated solution and consulting services for the information technology industries. SPI is a multidisciplinary network of professionals whose main focus is to streamline your corporate structure insures that each division provides unique and specialized services while working in synergy with our customer resulting in a high degree of flexibility and rapid response. SPI can tailor equipment, application software and support services to suite company individual needs.

BUSINESS PARTNERSHIP
SPI Specializes in information technology Products and Services that provides the right solution to your needs at a competitive price. We have formed strategic alliances with a number of manufacturers, distributors, resellers, integrators and other technology and service providers to insure that the best resources can be utilized while addressing the needs of our clients. Our goal is to establish and maintain customer loyalty by providing the highest level of service, quality and value in our industry.

We offer you following products and services:

Services Maintenance & Support Services Installation Services Help Desk Consulting Services Software Development

LAN/WAN and Cabling Services Consulting/Design Implementation Maintenance/Support Network LAN/WAN/Enterprise/Global Hardware and Software Management

Integration Networks Integration

Training Services Consulting Corporate Telework Training Telecom Training Software and Hardware Training

Products Hardware LAN/WAN Remote Access & Software

Command office:

Softpro India Command Office & Software Development cell B-15, Sector-F (Opp. Sahara Bhawan) Aliganj, Kapoorthala Crossing Lucknow,UP Email: hr@softproindia.org Phone: +91 522 6565114, +91 522 4003550, 09838505980 Softpro India: SLC (Softpro Learning Center) Training Division cell B-1/21, Sec-H, Purania X-ing Aliganj, Lucknow

CONTENTS

Introduction Features SDLC (System Development And Life Cycle Model)


Initiation Estudyzone initiation

System Analysis
Business needs Objective Scope Problem faced with existing system Proposed System Challenges Benefits Feasibility study

Software Requirement Specifications


Business needs Objective Scope Time Constraints Requirement Notes / Legends Priority of requirements Requirements Application Functionality Security Requirements Data management Deployment Requirements Software Requirements Hardware Requirements Training And Documentation Support And Maintenance

System Design

High Level Design


Entities Involved Modules Used Tools Used o Environment o Languages And Programming o Software Interface o Hardware Interface Data Flow Diagram

o o Context Level First Level

ER-Diagram

Low Level Design


Table Description Modules Description Source Code

Screen Shots
Testing Test Cases And Bug Report Implementation Future Scope Of The Software How To Use The Software

References

INTRODUCTION
The estudyzone.com is a new concept of bringing the information learners and trainers on a common platform so that they can learn and share information respectively. It is a web based portal for information seekers and information providers. It will act as a meeting point for the two parties or it can be viewed as a community for the two groups of users. It will enable the users to query on specific subjects. It will also facilitate the trainers to maintain their online library where they can store their study materials in various format. The website consists of features such as suggestion box for learners/ trainers so that they can inform about their comments regarding the website or anything they feel about the working of website. The website will encourage the users to use the suggestion box as much as possible by telling them its advantages. The suggestion box will be the main source of interacting with user comments regarding the website. Also an administrator is provided who will monitor the website on regular behalf in order to view the suggestions ,queries and take appropriate actions in its response. The learner and trainer will be given a unique userid on the basis of which they will utilize the benefits of the website. The website provides no access to unregistered users. If a person acts as both a trainer and learner he will have two userids i.e. one for accessing the rights of learner and the other one for accessing the rights of trainer. Both the parties will be provided separate space on server where they can store their study materials. The trainers can send the study material to the learner as well. The website maintains the general profile of both leaner and trainer together because the general profile consists of information similar to both the communities. The advance profiles of both the parties are maintained separately because the advance profiles of learner and trainer consists of separate fields. The trainer will mention his area of expertise, number of years experience in the particular expertise area. Additionally he will mention the projects handled by him in the corresponding subject along with certain remarks. On the other hand, the advance profile of learner consists of his learning area and his personal grading on the particular subject along with remarks. On the basis of the personal grading and remarks the trainer will assess the learners capability and on this basis the trainer is going to decide what type of study material to provide to the learner. The website allows the learner to query in codified form which means that the learner will mention the learning subject. He need not write complete description of his problem. According to the learning area of learner, the trainers whose expertise area matches with the learning area of learner will be listed out. The website is intended to be made for popularity ad economic benefit to the company. The user will be charged only for registration and then he can continue working on the site for lifelong span.

FEATURES
To provide common place for learners and trainers. To create portal where people can share information & knowledge in an effective and efficient manner. Every learner and trainer personal profile will be maintained. Trainer will maintain his library where he will collect all the materials according to his expertization area in different file format and will provide material to the learner according to his requirement. Accurate and fast information access Improved tutorials . User friendly. Secured website.

SDLC (System Development And Life Cycle)


Like any other set of engineering products, software products are also oriented towards the customer. It is either market driven or it drives the market. Customer Satisfaction was the buzzword of the 80's. Customer Delight is today's buzzword and Customer Ecstasy is the buzzword of the new millennium. Products that are not customer or user friendly have no place in the market although they are engineered using the best technology. The interface of the product is as crucial as the internal technology of the product. As software is always of a large system (or business), work begins by establishing the requirements for all system elements and then allocating some subset of these requirements to software. This system view is essential when the software must interface with other elements such as hardware, people and other resources. System is the basic and very critical requirement for the existence of software in any entity. So if the system is not in place, the system should be engineered and put in place. In some cases, to extract the maximum output, the system should be re-engineered and spruced up. Once the ideal system is engineered or tuned, the development team studies the software requirement for the system.

Initiation
Initiation begins when a sponsor identifies a need or an opportunity. Concept proposal is created. To generate a high-level view of the intended project and determine the goals of the project. The feasibility study sometimes used to present the project to upper management in an attempt to gain funding. Projects are typically evaluated in three areas of feasibility: economical, operational, and technical. Furthermore, it is also used as a reference to keep the project on track and to evaluate the progress of the MIS team. The MIS is also a complement of those phases. This phase is also called the analysis phase.

eStudyZone Initiation
This project is providing virtual environment for learners and trainers . Learners will learn new and exciting things by forwarding his request to the trainers in contrast trainer will response him. It is like a common platform for students and teachers .The most exciting and innovative concept used in this website will be that every learner will attach to the trainer according to the learning area and expertization area respectively. Softpro India proposed to create a User Interface specific to the needs of the client. The interface was intended to be user friendly where the user can easily find all the options. It planned to build a compact interface that could be easy to understand as well as to work upon. Softpro followed an iterative approach while developing the project. It first gathered the requirements in hand. Based on the collected information, started building the project. Later on, as and when more requirements were encountered, more functionality was added to website. The website was intended to be made flexibly so that new features could be added without much alteration in the original project.

System Analysis

Business Needs
The client requires that the portal should broadly categorize users of the website in to two categories learner and trainer. Learner is the one who wants to gather knowledge and Trainer is the one who will provide information. It is required to build a portal that can be used worldwide. The learner should be able to mention his area(s) on which he wants study material and the trainer should be able to mention his expertise his area(s) of excellence according to which he can provide study material to the learner. The trainer should be able to store his study material in the online library of the website. The client wants that the look and feel of the website should be comprehensible and knowable. There should be an administrator page where the administrator would have access to all the information stored in any table. Also suggestion box should be provided so that the administrator should be aware of the current status of the website and also get the feedbacks from the users (learner/ Trainer)

OBJECTIVE
Our main goal is to create such portal where people can share information and knowledge in an effective and efficient manner and to provide a common platform for all users to groom themselves at every stage. Basically it is not possible manually and errors will also occur & it will be very time consuming and also inaccurate. There are the some problems which can be solved by our application. Which are as follows:o

Fast and efficient service: - This system can give the fast service (insertion, deletion, updating, searching etc.) to the users of the system. Reduction in workload :- That means all the tasks are done by the system/machine which give the rest to the human beings. Fine management :- Our system provide the good management in the records keeping and provide the good scheduling in the all the operations of the database.

Provide the satisfaction to all the Learners and Trainers :- User is doing its all operations with the system on his requirements and he is completely satisfied because our system is fulfils its all requirements.

Provide the flexibility in the operations :- We are developing the type system which is able to do all type of transactions (insertion, deletion, updating, searching etc). Remove the complexity in the operations : - Our system is providing the real life features to providing the service since the user of the system in not feel the complexity in its operations.

Provide the long term relationship with the users : - Our system is providing the long term relationship with the users which are more important for the good future and benefits of the organization.

SCOPE
Provides relevant ,quality study materials over various technologies . single platform virtual environment. address lots of issues and get solutions. opportunity for students and teachers. building foundation.

Problems Faced with Existing System


Retrieving of records is difficult. No option for giving suggestions by both trainers and learners. Searching is time consuming. Processing speed become slow.

Insecure data. There is no facility of storing any personal information of users and visitors.

Proposed System
Covered various languages contents. Various security checks by administrator Easy explanation and easy availability of the material or contents. User friendly website. Easy query resolving. Quick and advanced searching by trainers. Define To-Be Processes Prepared User Interface Requirement Document. Prepared well defined cohesive processes for the project. Develop High-Level Design and Low level Design before execution Built a design of all the processes required for the project Developed the architecture of the software solution Developed the project design in detail for the software developer in the company.

The Challenges
Following challenges were encountered during the website development:Query Resolving Process of Trainer. Quick and Advanced Searching of study material by Trainer Handling the Learning Codes and Expertise Area of Learner and Trainer. Administrators work handling.

Benefits
It is expected that the project will be great success for those users who do not get satisfactory study materials for purposes like presentation making or for the users who want it for notes making or for reference purposes. It will provide a library where trainer can maintain his study materials that can be in different formats like .ppt, .doc, .html, pdf,

etc. The suggestion boxes in the other sites are rarely viewed and the queries remain unsolved. But in the EstudyZone.com the administrator will regularly monitor and regularize the activities going on inside the website. It will be taken care of that the suggestions given by the user should be attended.

FEASIBILITY SUDTY
Feasibility study is the measure of how beneficial or practical the development of an information system will be to an organization. The Feasibility analysis is a cross life cycle activity and should be continuously performed throughout the system life cycle. Feasibility tests:

Operational Feasibility
By providing the web based application all the users will get very good facilities and quick service by getting satisfactory material in different file format. All the trainer will be able to maintain their archive so that easily materials will be provided to the learners. Users will feel comfortable by reduction of their work. Easy to handle large and centralized database. Losing of records will be avoided. Considering all these factors we can conclude all the users and end users will be satisfied by the system.

Technical Feasibility
For the design and development of the system ,several software products have been accommodated. Database design MS SQL Server 2005 (Preferred) or any other DBMS. Interface design ASP.NET, FLASH. Coding C# (Preferred) or any other supported Language. This technology (ASP.NET) has enough efficiency in producing the system. Therefore the project is technically feasible.

Schedule Feasibility
The duration of time required for the project has been planned appropriately and it is the same as the duration of time expected by the client. Therefore the website can be delivered to the client within the expected time duration, satisfying the client. Hence the project is feasible in scheduling.

Economic Feasibility

According to the resources available and the project scheduling process it is estimated that the expenses allocated for the web application to be developed, by the client is sufficient enough. Hence the economical factor has been considered feasible.

SOFTWARE REQUIREMENT SPECIFICATION (SRS)

1. Business Needs
The client requires that the portal should broadly categorize users of the website in to two categories learner and trainer. Learner is the one who wants to gather knowledge and Trainer is the one who will provide information. It is required to build a portal that can be used worldwide. The learner should be able to mention his area(s) on which he wants study material and the trainer should be able to mention his expertise his area(s) of excellence according to which he can provide study material to the learner. The trainer should be able to store his study material in the online library of the website. The client wants that the look and feel of the website should be comprehensible and knowable. There should be an administrator page where the administrator would have access to all the information stored in any table. Also suggestion box should be provided so that the administrator should be aware of the current status of the website and also get the feedbacks from the users (learner/ Trainer)

2. Objectives
This manuscript represents the requirements analysis attempt to define the various technical and business process requirements for information sharing. It clearly defines various perspectives of the system required at the initial phase. This document is produced in order to facilitate the design team by providing them the baseline for establishing system designs and ultimately the development of the system. The SRS will help the designers in the development by making them aware of the requirements and preventing them from diverting from the specifications mentioned in SRS.

Scope
The scope of the eStudyZone.com focuses on information sharing between the information seekers and information providers. It will act as a meeting point for the two parties or it can be viewed as a community for the two groups of users. It will enable the users to query on specific subjects. Apart from the known requirements, the application will be build to adapt the new requirements. For this purpose the designers will develop the software providing appropriate flexibility each step. The requirements mentioned in the document cover the different necessities of the application. Some of the necessities are mandatory while rest of them is optional or extra features. The data gathered during this process also assists in testing process and the final deployment. The application is required to fulfill the functional requirements of the client as full as possible also giving additional features.

Time Constraints
The final deployment of the application should be before 15th April, 2010 until then all the requirements mentioned in SRS should be inbuilt into the system.

Requirement Notes/ Legends


Following abbreviations have been used while describing various requirements of the application

Priority of Requirements C R O SM EF
Conditionally Required Required Optional System Maintained External Feature

Requirements Application Functionality


REQ No. RS 1.1 Serial No. 1 Priority
C

Requirement All the modules specified in the Low level Design should be properly designed using appropriate css or similar designing tools and should be strictly web based.

RS 1.2

The software should be user friendly, secure, stable and bug free. It should provide easy to understand menus that should assist the users to easily navigate through the web pages of the website

RS 1.3

Although both the trainers and learners are users but there should be different pages for them as the menus differ for both

RS 1.4

The online library of the trainer/library should provide quick and advance searching facility to the user.

RS 1.5

The quick search should be based on single values of each parameter. The query should be dynamic that should change according to the fields opted by the user.

RS 1.6

The advanced search should be based on multiple values for each parameter. The query should be dynamic that should change according to the fields selected by the user. The auto fill and password remembering feature will be maintained by the system.

RS 1.7

SM

RS 1.8

The queries displayed on the trainers or administrators page should always be displayed in descending order of date so that the most recent query is displayed first. The suggestions should be displayed on administrators page in descending order of date. the

RS 1.9

RS 1.10

10

Unregistered users should not be allowed to query or maintain their library. Database Backup and Recovery The query resolving feature should be properly managed with appropriate controls. Online Testing of the users in order to let them know their progress in a particular subject. The results will be displayed immediately along with the assessment

RS 1.12 RS 1.13

12 13

EF R

RS 1.14

14

RS 1.15

15

The application shall be Two tier application namely Client Layer(Presentation logic) and Database Layer (Persistence logic) with standard applications software component

RS 1.16

16

The applications shall be linked to the other sites at the footer.

Security Requirements
REQ No. RS 2.1 Serial No. 1 Priority R Requirement The system should be inbuilt with data security features All the critical information in the database should be secure All the interactive users must have separate login and authentication screen. The passwords should not be disclosed anywhere on the website. If the user forgets his password and mentions the hint answer with the matched hint question then also the password will not be disclosed.

RS 2.2

RS 2.3

RS 2.4

Data Management
The application should store the data in such a way that it is properly and quickly accessed. Each user should be allocated separate space on the domain. Separate folders will be maintained for every user where he could store his study material. The folders should be named according to the user id of the user. If a user acts both as a trainer and learner he should be provided two different folders for working. The searching process especially of study materials should be quick. The query resolution feature should be efficiently maintained. Apart from data handling on users side, the data should be handled more properly on the administrators side. The administrator should have the power to delete users. If a userid is deleted it should be taken care of that all the

login details along with basic and advanced profile of user should also be deleted subsequently. The associated folders with the materials should also be deleted.

Deployment Requirements
Final deployment of the application should take place before 15th April 2009 i.e. the website should be in running state by the aforementioned date. Any delay in project deployment will result in terms violation of the company. The online help shall be provided for each and every webpage used in the website so that the user should not feel confused at each step.

Software Requirements :
Client on Internet: Web Browser, Operating System (any). Client on Intranet: Client Software, Web Browser, Operating System (any). Web Server: IIS 6 or higher, Operating System (windows server). Application framework: Microsoft .NET Framework 2.0. Data Base Server: MS SQL SERVER 2005, Operating System (windows Server). Development End: Visual Studio 2005 (ASP.NET, HTML, JavaScript), MS SQL SERVER 2005, OS (Windows Server), Web Server (IIS 6 or higher).

Hardware Requirement:
Client - Side: Browser Internet Explorer6.0 or higher Server - Side: Web server IIS 6 or Higher
Processor Pentium 4 RAM 128 MB RAM 2GB Disk Space 1 GB Disk Space 120 GB

Database Processor SQL SERVER Pentium 4 2005

Support and Maintenance


One year free support for rectifying system bugs including front end and beck end will be provided. During warranty period Software Engineers will be responsible for removing bugs and improving it. After one year support can be extended @ 20% of the total product deployment cost.

SYSTEM DESIGN
The term design used in two ways used as a verb, it represents the process of design for the system. The objective of the design process is to produce a model of representation of a system which can be used later to build the system. The produced model is called the design of the system. The design process for software systems often has four levels, they are:o o o o Data Design Architectural Design Interface Design Procedural Design

Data Design
During this phase of data design, the relation of the data structure to the software requirement specification is to be designed and the data dictionary used in this should be specified. An important activity during design is to identify the program modules that must operate directly upon the logical data structures.

HIGH LEVEL DESIGN

Entities Involved
The website is basically dealing with 3 categories of users. Learner Trainer Administrator The learner and trainer will have many attributes in common like the login information and general profile information. The attributes from which they are distinguished into two different categories are described in following section. Learner Learner is the user whose advance profile consists of his learning area. The learning area corresponds to the subjects on which he requires contents. He will also mention his personal grading about himself in the particular subject along with certain remarks. The learner is responsible for initiating the query. His online library will consist of training contents uploaded by himself as well as those transferred by trainer. Trainer Trainer is the user whose advance profile consists of his expertise area which corresponds to the subject. For each expertise area he will also mention his experience and other information like projects handled. Administrator Administrator is the super user who is responsible for monitoring the website. He has exclusive rights to view the users list, his advance profiles, the queries made and those resolved or unresolved along with the training materials stored. He has the rights to delete the profile of a particular user.

MODULES User Information Management


Login Manager Basic Profile Learner Advance Profile Trainer Advance Profile Request Module User InfoSeeker

Query Management
Query Manager Archive Collection Archive InfoSeeker Download Material Suggestion Box Administrator

TOOLS USED
Microsoft .NET framework 2.0 as Application architecture. Visual Studio 2005 & Dream weaver 8 are used for development of this college portal. Microsoft SQL Server 2005 for back end database. Microsoft IIS 6 (Internet Information Services) as web server to host our website. Photoshop CS2, Fireworks and Swismax for graphics and picture editing and designing.

Environment
The eStudyZone Web Application will be written in C# .NET language. The development environment will be Microsoft Visual Studio .NET. The eStudyZone Application will be tested on Windows XP platform.

Languages for Programming


C# for ASP.NET. JavaScript for Client side validation.

Software Interface
Client on Internet: Web Browser, Operating System (any). Client on Intranet: Client Software, Web Browser, Operating System (any) . Web Server: IIS 6 or higher, Operating System (windows). Data Base Server: MS SQL SERVER 2005, Operating System (windows). Development End: Visual Studio 2005 (ASP.NET, HTML, JavaScript), MS SQL SERVER 2005, OS (Windows), Web Server (IIS 6 or higher).

Hardware Interface
Client - Side: Browser Internet Explorer6.0 or higher Processor Pentium 4 RAM 128 MB Disk Space 1 GB

Server - Side: IIS 6 or Higher SQL SERVER 2005 Processor Pentium 4 Pentium 4 RAM 512 MB 512 MB Disk Space 20 GB 20 GB

DataFlow Diagram

1st Level Data Flow Diagram

Study materials
1 Login Request Confirmation or rejection New User Request Confirm 2 Login Request

Login Processing System

Library Management
Search Contents

Confirmation or rejection New User Request

Contents

Learner

Profile Processing

Trainer
Confirm

confirm

Updation & Deletion Query Submission Query Acknowledge

Updation & Deletion Query Details

Query Processing

ER-DIAGRAM

1 M

1 M M M M 1

LOW LEVEL DESIGN

DataDictionary And Class Design Login Module


Database Design : Table Name: Login //it store the login information
S No 1 2 4 5 Fields Name

userid password hintanswer category

Size 20 20 30 10

Constraints primary key not null Null not null

Datatype varchar varchar varchar char

Description hold the user defined unique id holds the password for the user Hint answer for user L' for learner, 'T' for trainer

Class Design
Public Properties:
public string userid; public string password;

public string hintanswer; public string Category; Public methods: // check the validity of mentioned UserId and hintanswer
Public bool category) ValidateUser(string uuserid,string ppassword,string

//save login information in LoginInfo table


public bool savelogin()

//updating values in LoginInfo table


public void update(string category,string hintanswer) userid, string password, string

//deleting values from LoginInfo table


public bool deleteaccount(string ss)

Basic Profile Module


Database Design: Table Name : registration //It contains the basic profile

S NO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

FIELDS NAME

userid password username address emailId country state city pincode contact1 contact2 dob faxno designation department organization

SIZE 20 30 50 50 50 40 40 40 12 12 12 12 30 30 30

CONSTRAINT primary key not null not null null not null not null not null not null null not null null not null null null null null

DATATYPE varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar datetime varchar varchar varchar varchar

DESCRIPTION holds the user defined unique id holds the user name holds the address of user holds the address of user holds the emailid holds the country holds the state holds the city holds the pincode holds the contact number holds the contact number hold the date of birth holds the fax number holds the designation of user holds the department of user holds the name of organization of user

Class Design :
Public properties:
public string userid; public string password; public string username; public string address; public string emailid; public string category; public string country; public string state; public string city; public string pincode; public string contact1; public string contact2; public DateTime dob; public string faxno; public string designation; public string department; public string organisation;;

Public methods: // check User Id availability


public bool checkuser(string s1)

// save the general information about user


public bool savereg()

public int insertdata(string t1,string t2,string t3,string t4,string t5,string t6,string t7,string t8,string t9,long t10,long t11,long t12,DateTime t13,long t14,string t15,string t16,string t17)

//update the general information about user


public void updatedata(string uname, string add, string eid, string cat, string country, string state, string city, long p, long c1, long c2, DateTime dob, long faxno, string des, string dep, string org)

//delete the general information about user


public bool deleteaccount(string ss)

//take the information

public bool takedata(string u)

LearnerAdvanceProfile Module
Database Design : Table Name: learneradvprofile //it store the advance profile of learner
S No Field's Name Size Constraint Datatype Description

1 2

userid learningarea

20 5

Not null not null

varchar varchar

It contains the user id of the Learner It contains the codified form of a particular Learning Area It holds the level of learner in the corresponding learning area It holds the remark of learner about himself in the corresponding learning area

3 4

level remark

2 40

not null null

numeric varchar

Note: The userId and learningArea will together form a composite Primary Key

Class Design :
Public Properties:
public string userid; public string learningarea; public string level; public string remarks;;

Public Methods: //Save Advance Profile of Learner


public bool saveleradvprofile(string u1)

//Update Advance Profile of Learner


public void updatelerneradvprofile()

//Delete Advance Profile of Learner

public void deleteother(string ss, string ss1)

//Retrieve the Advance Profile of the Learner with passed UserId


public bool sessionrelated(string userid)

Request Module
Database Design : Table Name : learnerrequest
S No 1 2 3 Fields Name

learnerid trainerId requeststatus

Size 20 20 50

Constraints not null not null Not null

Datatype varchar varchar varchar

Description

It contains the user id of the Learner


It hold the id of trainer. It holds yes for resolved and no for not resolved

Class Design:
Public Properties:
public string query; public string status; public string learnerid; public string trainerid;

Public Methods:

//fetch list of trainers


public DataSet getTrainerDetail(string f)

// send request to selected trainer //accept request given by trainer

public bool saverealquery(string u, string t, string qs, string query) public DataSet getQueryDetail(string f)

TrainerAdvacedProfile Module
Database Design : Table Name: TrainerAdvance
S No Field's Name Size Constraint Datatype Description

1 2

userid expertisearea

20 5

not null not null

varchar varchar

It contains the user id of Trainer It contains the codified form of a particular Expertise Area

expertiseyears

not null

numeric

It holds the experience years of the trainer in the corresponding experience area It holds the number of projects undertaken by the trainer in the corresponding expertise area It holds the remark of the trainer in the expertise area

project

null

numeric

remarks

40

null

varchar

Note: userId and expertiseArea will together form a composite primary key Public Properties:
public string userid; public string expertisearea; public int expertiseyear; public string project; public string remarks;

Public Methods: //save expertise details


public bool savetraineradvprofile()

//update expertise details

public void updatetraineradvprofile()

//delete expertise details for the given UserId


public void deleteother(string ss, string ss1)

//Retrieve the advanced profile of a Trainer with given UserId


public bool fatchdataoftrainer(string userid)

Download Material Module


Database design : Table Used : Material, learnerrequest
S No 1 2 3 Fields Name

Learnerid Trainerid requeststatus

Size 20 20 50

Constraints Not Null Not Null Not Null

Datatype varchar varchar varchar

Description

It hold the id of learner. It hold the id of trainer.


It stores the path of file i.e. location

Public Methods: //It returns the filepath information i.e. where the file is stored
public DataSet downmaterial() public DataSet downmaterial()

//It returns the list of trainers who will be providing the material //It will return true or false if material is downloaded or not
protected void grddownload_SelectedIndexChanged(object sender, EventArgs e)

QueryManager Module
Database Design: Table Used : Query Manager
Query Name

Length

Null/Not Null

Datatype

Description

Queryid Query learnerId learningArea trainerId Querydate Status

20 50 20 10 20

Primary Key Not Not Not Not Null Null Null Null

varchar varchar varchar Varchar Varchar

Automatic generation

Not Null 3 Not Null

It hold the Query of learner It hold the id of learner. It hold learning area(sub.) It hold the id of trainer. Date on which query was datetime made It holds RSL for resolved varchar and NRS for not resolved

Class Design :
Public Properties: Public string queryid;
public string query; public string status; public string learnerid; public string trainerid;

Public Methods: //Save the query info in QueryManager table


public bool saverealquery(string u, string t, string qs, string query)

//Fetch all the details from QueryManager table.


public DataSet getQueryDetail(string f)

//Set the status of a particular query

public int updatestatus(int status)

//delete the queryDetails of a particular query Public bool deletequery(int queryno)

SuggestionBox Module

Database Design: Table Name: suggestionbox


S NO 1 2 3 4 FIELDS NAME serialnumber userid usersuggestion dateAdded SIZE 20 20 50 CONSTRAINT Primary key not null not null null DATATYPE Numeric varchar varchar datetime DESCRIPTION It is the auto increment serial number It stores the UserId who submitted the Suggestion It stores the suggestions if any of the user It stores the date on which the User (Learner/Trainer) has submitted the suggestion

dateattended

null

datetime

It stores the date on which the Administrator attended to the suggestion It stores the status of suggestion i.e. whether it is attended by the administrator with 2 values- RSL or URS

status

10

null

varchar

Class Design : Public Fields Public int serialNumber; public string UserId; public string UserSuggestion; public string DateAdded; public string DateAttended; public string Status;

Public methods //It saves the Suggestion by the Learner/ Trainer


public void savesugg(string s1, string s2, string s3, string s4, string s5, string s6)

//View Suggestion of a user


public DataSet getviewsugg()

TrainerArchiveCollection Module
Database Design : Table Name: material

ArchiveCollection' Details S No 1 2 3 3 4 5 6 7 8 9 10 Fields Name serialNumber materialId fileName Title description Type Size dateAdded Status subjectCode serverFilePath 5 10 100 Size 20 20 50 30 50 30 10 Constraint not null Primary Key not null not null not null not null not null not null not null not null not null Datatype numeric varchar varchar varchar varchar varchar varchar datetime varchar varchar Varchar Description It is an auto increment field It is the unique Id for a particular material It is the file name in which material is stored It is the title of the material It stores a brief description of the content of material It stores the type of file e.g .doc, .pdf, et It stores total size of material It stores the date on which trainer saved the material It stores whether material is present in the library or not It stores the Subject Code It stores the Path where the material is stored on the server

Class Design : Public Fields:


public string learnerid; public string sr.no.; public string materialid; public string filename; public string title; public string description; public string type; public string size; public string dateadd; public string status; public string subjectcode;

public string serverfpath; public string trainerid;

Public Methods: //Saving Material Information in database


public bool SaveMaterial()

//Updating the Material Information


public DataSet getmaterialforlearner() public DataSet downmaterial()

//Deleting Material Information


public bool deletematerial(string ss)

ArchiveInfoSeeker Module Database Design : Table Name: material

Public Methods //It fetches the details of Specific Material


public DataSet downmaterial()

//It fetches the Materials Information based on materialid


public DataSet getbyidshow() public DataSet getbyidname()

//It fetches the materials Information based on filename //It fetches the current status of material i.e. whether it is present in the database or not
public DataSet downmaterial()

//It will get the Trainerid who upload the file


public DataSet getTrainerDetail(string f)

//It sends material to learner

public DataSet getmaterialforlearner()

Administrator Module
Database Design : Table Name: Administrator S NO. TABLE NAME

1 2 3 4 5

Admin_login material Suggestionbox query_manager querybox

Public Methods: //It will fetch the List of all Users With Category
public DataSet getUserDetail()

//It will fetch the Suggestions

public DataSet getSggDetail(string f)

//It will fetch all the submitted queries


public DataSet getQueryDetail(string f)

//It Delete Unused Data

public bool deletematerial(string ss)

Module Description

Login Manager
Introduction
The Login Manager is responsible for handling login related information of user. It has user friendly GUI interface which provides all the required information with minimum efforts. The Login Manager has the responsibility to allow only authenticated users to login to the website. It keeps check over the entry of the user. It provides flexibility to the

users even in the case when the user forgets his password. However the module has no provision to display the password if the user forgets his password for security reasons. The module consists of procedures to handle the storage ,updation and deletion of records of a particular userid. It also consists of methods for authenticating the user. The authentication can be by matching the password against user id or by matching the hint question and hint answer. It is also responsible for fetching the hint question if the user forgets the password. Features It has features responsible for saving, updating and deleting Login Details of users. It has user friendly and clear features to reveal its features. It retrieves and provides information in fast and efficient manner. Benefits The module provides the benefit of creating a first step check over the users. All the users have to go through this check and if he passes this check, then only he will be allowed to access the useful features of the website. It keeps track of the category of the user and based on the category appropriate homepage of the user i.e. after the user is authenticated then if the user is a learner then he is redirected to Learners home page and if he is a trainer then he is redirected to the trainers home page. Methodology The module is developed using the Object Oriented approach. The module is developed in three distinct phases Graphical User Interface (GUI), the coding (class level design) and database creation with testing. GUI is done using Visual Studio 2005 and VC# using Cascading StyleSheets (CSS). GUI is designed keeping easy user interface in mind. Different controls are used for data entry and checking feature.

The following features of Object Oriented Programming are used while developing this class:Public Properties Object Instance Non Static methods Constructors Inheritance The LoginManager class is designed as per the requirements of the project. All the properties are matched with the corresponding fields of database tables. The properties of

the class are kept public so that it can be integrated with the form text fields in GUI forms. Design of the class is shown below Class Name: LoginManager Public Properties public string UserId; public string Passwd; public string HintQues; public string HintAns; public char Category; Public Methods public char ValidateUser(string strUserId, string strPasswd) // check the validity of //mentioned UserId public string GetQuestion(string strUserId) //fetch the Hint Question public bool VerifyHintAnswer(string strUserId, string strHintAns) //check if Hint Question and Hint Answer matches or not public bool SaveLoginInfo( ) //save login information in //LoginInfo table public bool UpdateLoginInfo( ) //updating values in LoginInfo table

Development Of Class: LoginManager class is developed using C# under Visual Studio 2005. To develop database oriented functions ADO.net is used. Details of .Net classes and namespaces are shown below: Namespaces used System.Data System.Data.OleDb FCL classes used OleDbConnection

OleDbCommand OleDbDataAdapter DataSet Following functions are developed with the help of the above FCL class to interact with the Database ValidateUser(string strUserId, string strPasswd) This function is used to check the userid against password. It is a public and non static function and is called using the object of the class. The password corresponding to the userid passed as the first parameter is fetched from the database and this password is matched against the password passed as second parameter. If both match then the corresponding category is returned back. In case of error or if the userid and password do not match a single space is returned. GetQuestion(string strUserId) This function is used to fetch the HintQuestion for the userid passed in parameter. It is a public and non static function and is called using the object of the class. This function will be called when the user forgets his password and hits the Forget Password link button. The function returns a string. When the HintQuestion is found the string is returned and null otherwise. VerifyHintAnswer(string strUserId, string strHintAns) This function is used to check the userid against HintAnswer. It is a public and non static function and is called using the object of the class. The HintAnswer corresponding to the userid passed as the first parameter is fetched from the database and this HintAnswer is matched against the hint answer passed as second parameter. If both match then the bool value True is returned back. In case of error or if the userid and hintanswer do not match a bool value False is returned.

SaveLoginInfo( ) This function is used to save all the login information about the user into the database. It is a public and non static function and it can be called using the object of the class. This function returns true if operation is completed successfully. If any error occurs during the database operation it performs exception handling and the user does not get system generated error, a null value will be returned. UpdateLoginInfo( )

This function can be used to update all the information about user into the database. It is a public and non static function and it can be called using the object of the class. This function returns true if update operation is carried out successfully. If any error occurs during the database operation it performs the exception handling and a false value is returned. DeleteLoginInfo(string strUserID) This function is used to delete the login details of a user with the specified UserId passed as parameter. It is a public and nonstatic function and it can be called using the object of the class. This function returns true if delete operation is carried out successfully. If any error occurs during the database operation it performs the exception handling and a false value is returned.

New Information
1.1 SaveLoginInfo processing

Updated Information

1.2
Update/Delete LoginInfo processing

Learner/Traine rrrr
User ID and Password User ID and hintAnswer

Confirm/ Deny

1.4
Fetch HintQuestion

Hint Question

1.3
Login Info processing

1.4
Verify HintAnswer

Result

Basic Profile
Introduction
Basic profile deals with profile creation of the user during his/her registration time. Users can be either be Learner or trainer. It is like a form which is going to be filled with personal details by the users . This information can be filled by the user during his login detail entries . Basic profile information can be viewed by the user i.e. learner or trainer in the form of basic

profile after entering to their homepage. While reaching to the homepage learner and trainer can view their basic information detail and can edit their personal details according to their situation. Features It has features responsible for saving , updating , deleting the basic users details. It has user friendly and clear features to reveal its features. It retrieves and provides information in fast and efficient manner. Benefits This profile creation is very important as it shows all the relevant personal information of the users according to the data stored in the database at the time of new user registration. This profile creation process is very flexible as this information can be updated and deleted by the user time to time.

Methods Public bool checkUserAvailaibility (string struserid)


This methods checks whether user available or not with the help of userid of any user.When any new user create his account and enter his userid this methods checks that particular userid available or not i.e. that userid already exist or not.

Public bool SaveProfile()


This method is used to save general information of any user. When any user create his new account or going to register himself then this method save his general information and return true if information save successfully or return false if information not stored due to any reason.

Public bool deleteProfile()


This method is used to delete general information of any user. If any user want to delete his general information or want to delete his account then this method is responsible for that.

Public bool UpdateProfile()

This method is used to update the general information of ay user. If any user want to make changes in his general details then this function can be used.

Learner Advance Profile


Introduction
This advance profile is responsible for saving the entries given by the learner according to his learning interest area . Learning area is that area or part in which learner want to query to the trainer and request for study materials in that particular area. There are more than 100 learning area where learner shows his interest and adopt for more than one learning area and will also tell his level in that learning area i.e his grading in particular subject. Their remarks will also be welcomed . All the learning area will be related to the IT- Technology fields. According to this learning area the expertise trainer will be allotted to the learner . Features It has features responsible for saving , updating , deleting the basic users details. It has user friendly and clear features to reveal its features. It retrieves and provides information in fast and efficient manner Benefits This advance profile is very useful as this profile is asking for learners interest area which cover all the important area of IT-Technology.

Methods Public bool SaveAdvanceProfile()

This method is used to save the advance information of learner like his learning area, his level etc. this method return true if information successfully save or return false if information not saved.

Public bool DeleteAdvanceProfile()


This method is used to delete the advance profile of learner . If any learner want to delete information regarding to his learning area this method is responsible for that.

Public bool UpdateAdvanceProfile()


This method is responsible for updating the advance profile of learner. If any learner want to change his advance information regarding his learning area, this method can be used for that.

Public DataSet GetAdvanceProfile(string struserid)


This method is used to get information from the Learners advance profile. This method is basically used when learner want to search trainers related to his learning area. This function return all the information about learners learning area with the help of userid of learner.

Request Module
Introduction
This module is responsible for sending request by the learner to the trainer whom he want to handshake or attached so that learner will get his desired material. By just clicking to the request button his request will be forwarded to the requested trainer. Then if trainer will accept his request then that learner will attached to the learner. Through this process material will be requested and material will be send by the trainer to the learner.

Methods public DataSet GetTrainersList(string strTrainerId)


This method is responsible for fetching the trainers list according to the learners learning area will be specified.

public bool RequestSend(string strLearnerid, string strTrainerid)


This method is responsible for sending request to the trainer whom learner will select from the trainers list .

public bool AcceptRequest(string strLearnerId, strTrainerId)


This method is responsible for accepting the request which is given by the learner according to his learning area. If the request is accepted by the trainer then only learner will able to share the material.

Download Material Module Introduction


This module is responsible for downloading material which is given by the trainer to the learner . According to that requirement which is given by the learner to the trainer will provide material to the learner by providing him download button. From that download button learner will download the material.

public string GetFilepathinfo(string strmaterialid)


This method is responsible for getting the file path information . It will tell the exact location of the file where it is stored.

public Dataset GetTrainerid(string strlearnerid)


This method fetch the list of trainers who will be going to provide the material for downloading by the learners.

public bool DownloadMaterial()


This method is responsible for download material and will return true if material is downloaded otherwise it will return false.

Trainer Advance Profile


Introduction
This advance profile is responsible for saving the entries given by the Trainer according to his Expertization area. Expertization area is that area in which trainer has command . In this particular area or subject trainer is considered to have done his mastery. There are more than 100 expertization area and trainer will opt for more than one expertise area. According to his expertization area he will be providing the study material to the learner

when learner interest area and trainer expertization area will be matched . All the learning area will be related to the IT- Technology fields. Features It has features responsible for saving , updating , deleting the basic users details. It has user friendly and clear features to reveal its features. It retrieves and provides information in fast and efficient manner Benefits This advance profile is very useful as this profile is asking for trainers expertization area which covers all the important area of IT-Technology.

Public bool SaveExpertizeDetails()


This method is used for saving the details of expertization area of the trainer. It shows the field of technologies related to information technologies in which the trainer has full command. It saves the properties of the trainer as his expertization area, the total no of experienced years in that particular area,total projects handled by the trainer etc .

Public bool Update Expertize Details()


This method is used for updating the details of expatriation area of the trainer. It is useful when if the trainer has gained mastery over some more IT related technical area &if he has done some more projects regarding that area of specialization. It returns a Boolean value.

Public bool Delete Expertize Details()


This method is used for deleting expertizatio detail of the trainer. It takes userId & expertise area of trainer as input on the basis of which he can deletehis information. Expertise area is taken as input since one trainer can have mastery over more than one subjects. It also return a Boolean value that whether information of user is deleted or not.

Public Dataset Get Advance Profile()


This method is useful for retrieving the whole information of trainer regarding his advance profile i.e. the detail about his expatriation area, expertise year, project handled etc. it also retrieves the information based on userId of trainer. It returns a dataset i.e. it returns a complete table regarding the information of advance profile of various users.

Query Manager
Learner Query Management
Introduction
This module deals with management of queries given by the learner to the trainer according to the learning area of learner and expertization area of the trainer. After handshaking done between these two entities learner will fire his query to the attached trainer. All learners Queries details will be maintained in the database .

Methods Public Bool Send query ()


This method will be used by the learner who want to send a query to a particular user then it will call and save the query information like queryId ,Learner Id , Trainer Id ,and date added in query manager table.

Public Dataset fetch query (status)


This function will be used by learner. through this function learner will find all the queries status like resolved or unresolved. Learner will easily find how many queries will be resolved by the trainer .

Trainer Query Management


Introduction
This module deals with management of queries by the trainers . Learner will ask the queries to the trainer and trainer has to answer that query either replying him by telling queries status like resolved and unresolved and if queries are solved then set the status resolved and then providing study material to the learner .

Methods

Public Bool reply query ()


This method will be used by the trainer to reply to the queries asked by the learners. When their queries will be sloved then status will be set resolved.

Public Dataset fetch query (status)


This function will by admin or trainer through this function trainer find all the query into on the basis of status of query. Trainer easily find how many queries we has been resolved and how many he will resolve.

Suggestion box
Introduction
This module is responsible for welcoming or taking all the suggestions given by the learner and trainer. We can consider it like a feedback is taking from learner and trainer. Their suggestions can only be viewed by the Administrator not by any other learner and trainer.

Methods Public Bool save Suggestion ()


Save suggestion method is responsible for saving the suggestion in database file. Before calling this method user first write own suggestion regarding with that site and send request to server for suggestion regarding with that site and send request to server for saving that suggestion in database then this method will call and execute. And return true or false if true tells also property User suggestions have not saved.

Public Bool Update Suggestion ()


It update the suggestion status with date on which it was attended and return bool value. If value is true that mean suggestion have attendant by administrator otherwise suggestion have not attendant.

Public Bool delete Suggestion ()


This function is call by administrator when administrator want to delete the suggestion information on the basis of UserId then this function will call and return Bool value. it value is true than suggestion records successfully delete from database other wise record are not deleted.

Public Bool Delete Suggestions (Id, Date)


This function will call when admin want to delete the suggestion information on the basis of user id and particular date and it return also Bool value that tell the operation perform successfully or not.

Public dataset View Suggestion (ID)


This method take user Id as a argument and return dataset that have suggestion details corresponding that UserId.

Public Bool Delete Suggestion (int serial No)


This function deletes the suggestion detail on the basis of serial no.

Archive Collection
Introduction
This module is responsible collecting all the materials according to trainers need . Trainer will maintain his archive that is he will upload all material of different file format in his library and according to learners query he will transfer or send that material to learner. This archive will be maintained with full description of the material.

Methods Public bool SaveMaterialInfo( )


This method is used to save the material in trainers library or archive by giving certain details like material id, filename, description, title etc.

Public bool UpdateMaterialInfo( )


This method is used to update the material by the trainer according to requirement generated.

Public bool DeleteMaterialInfo( )


This method is responsible for deleting the material information from trainers archive according to the needs generated.

Archive Infoseeker
Introduction
This module deals with searching of materials by the trainer from his archive or library. This searching will be done by the trainer on criteria basis. This searching involved criteria like quick and advanced search. Trainer will use his archive and select the material as per the requirement of the learner and provide him link to download the content. From that link learner will download the contents .

Methods public DataSet QuickSearchMaterialInfo(string strCriteria)


Second method is in this trainer will fetch the material information based on limited search criteria in quick search the criteria will be subject name and file type . on this criteria based trainer will get specific material from the archive collection. Quick search provide the specific material verify quick.

public DataSet AdvanceSearchMaterialInfo(string strCriteria)


third method is advance search method in this method trainer will fetch the material informal based on some criteria in this module trainer used subject name and range about the size of the material. By advance search trainer will get lot of material with regarding to range of the size of the material and trainer can select many number of material and send to learner. By advance search cannot get specific material on the related information.

public string GetFilePath(string strMaterialId)


this method is used to retrieve the filepath with the help of materialid. This method will tell you the location where the file is store. This method is basically used by the trainer to search from his archive as per the requirement of the learner and then provide that material to the learner.

Administrator

Introduction
Administrator will be the person who will have full control over the websites. He has power to view all users , all suggestions , all queries and all materials stored in trainer library. He has power to delete the users , suggestions , queries which are not meaningful. Administrator will directly interacted with the all the table that are used in project admin can perform various information on those table admin works as a controller that control over all project.

Methods Public Dataset fetch user (category)


Admin want to see all the user and their information that are register on the site . then this will call. It take category as a argument and return dataset that have specific users and their information this function will work on the basis of user category.

Public Dataset fetch Material list ()


It will fetch all material information of all users. Those are register as trainers and return a dataset. Dataset contain the material information.

Public Dataset fetch user info (id)


It will return all the material information of a particular UserId that are passing in a function as a argument. This function returns a dataset that contain the material information of a particular user.

Public dataset view all Suggestion ()


It will fetch all the suggestion from database and return the dataset that contain these information.

Public Dataset view all query ()


If admin want to fetch all the query information on the basis of status of query then they call the view query method that takes status as a argument and return dataset that have specific solution.

User Infoseeker

Introduction
This module deals with searching of all the users. If trainer will use searching procedure then he will search all the related or attached learner with him and vice-versa. This searching will show the list of all the learners attached to the particular trainer.

Methods
public DataSet GetRelatedTrainers ( )
this method is used by the learner to give their queries and based on these queries the list of trainers will be shown to the learner. So learner can see the list of trainers who are attached to him.

public DataSet GetMatchedTrainers ( )


this method is used to return the list of trainers whose advance profile detail matched with the advance profile details of learner. For eg : trainer will mention his expertization area in his advance profile and learner will mention his learning area in his advance profile and whose expertization area will match with learning area their information will be shown to the learner.

Archive Info seeker


Introduction
Archive info seeker module used by trainer this module provide the information about material on some criteria based. The trainer will search the material from his archive collection on the base of material information in criteria. This module trainer used two methods for searching the material first is quick search method. Trainer will search mater according to learner requirement. And provide to learner to download link of that material content. And from that link learner will get the material content. Trainer will use some method for search the material.

Methods public DataSet GetSpecificMaterialInfo(string strMaterialId)

First method is that it will fetch the details of specific materials. So trainer can search specific material.

public DataSet QuickSearchMaterialInfo(string strCriteria)


in this trainer will fetch the material information based on limited search criteria in quick search the criteria will be subject name and file type . on this criteria based trainer will get specific material from the archive collection. Quick search provide the specific material verify quick.

public DataSet AdvanceSearchMaterialInfo(string strCriteria)


Third method is advance search method in this method trainer will fetch the material informal based on some criteria in this module trainer used subject name and range about the size of the material. By advance search trainer will get lot of material with regarding to range of the size of the material and trainer can select many number of material and send to learner. By advance search cannot get specific material on the related information.

public string GetFilePath(string strMaterialId)


this method is used to get the file path on the basis of materialid i.e. material filepath will be searched by entering the materialid that is file location will be known by the trainer.

SOURCE CODE

Connection Manager
using using using using using using using using using using using using System; System.Data; System.Configuration; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq; System.Data.OleDb;

public class ConnectionManager { public OleDbConnection connection = new OleDbConnection(); public OleDbCommand command = new OleDbCommand(); public OleDbDataAdapter dataadapter = new OleDbDataAdapter(); public DataSet ds = new DataSet(); public ConnectionManager() { } public void Connect() { connection.ConnectionString = connection.ConnectionString = @"Provider=sqloledb;initial catalog=estudy(amit);data source=.\sqlexpress;integrated security=sspi;"; command.Connection = connection; dataadapter.SelectCommand = command; } public DataSet getdataset(string query, string aliasname) { command.CommandText = query; dataadapter.Fill(ds, aliasname); return ds; } }

Login
using using using using using using using using using using using using System; System.Data; System.Configuration; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq; System.Data.OleDb;

public class login { public ConnectionManager cm = new ConnectionManager(); public string userid; public string password; public string category; public login() { cm.Connect(); } public bool ValidateUser(string uuserid, string ppassword, string category) { try { if (uuserid != "" && ppassword != "" && category != "") { cm.connection.Open(); cm.command.CommandText = "Select * from login where userid='" + uuserid + "' and password='" + ppassword + "' and category='" + category+ "'"; cm.dataadapter.Fill(cm.ds, "v1"); DataRow[] dr = cm.ds.Tables["v1"].Select("userid = '" + uuserid + "'and password='" + ppassword + "'"); if (dr.Length > 0) { return true; } else return false; } else { } } catch (Exception ex) {

return false;

throw ex; } finally { cm.connection.Close(); } } public bool ValidateAdmin(string uuserid, string ppassword) { try { if (uuserid != "" && ppassword != "") { cm.connection.Open(); cm.command.CommandText = "Select * from admin_login where userid='" + uuserid + "'"; cm.dataadapter.Fill(cm.ds, "v1"); DataRow[] dr = cm.ds.Tables["v1"].Select("userid = '" + uuserid + "'"); if (dr.Length > 0) { return true; } else return false; } else { } } catch (Exception ex) { throw ex; } finally { cm.connection.Close(); } } public DataSet getUserDetail() { DataSet ds1; ds1 = cm.getdataset("Select userid,username,address,emailid,category,country,state,city,pincode,con tact1,contact2,dob,faxno,designation,department,organization from registration", "a"); if (ds1.Tables["a"].Rows.Count > 0)

return false;

else } }

return ds1; return null;

Learner Advance Profile


using using using using using using using using using using using using System; System.Data; System.Configuration; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq; System.Data.OleDb;

public class leradv { public string[] w1 = new string[10]; public string s; public int s1; public string userid; public string learningarea; public string level; public string remarks; public string ea ; public string ey; public string project; public ConnectionManager cm = new ConnectionManager(); public leradv() { cm.Connect(); } public bool saveleradvprofile(string u1) { try { cm.command.CommandText = "Select * from learneradvprofile where userid='" + u1 + "'"; cm.dataadapter.Fill(cm.ds, "l1"); DataRow dr = cm.ds.Tables["l1"].NewRow(); dr["userid"] = userid; dr["learningarea"] = learningarea; dr["level"] = level; dr["remarks"] = remarks; cm.ds.Tables["l1"].Rows.Add(dr); OleDbCommandBuilder builder = new OleDbCommandBuilder(cm.dataadapter);

cm.dataadapter.Update(cm.ds.Tables["l1"]); return true; } catch (Exception ex) { return false; throw ex; }

} public bool sessionrelated(string userid) { try { DataRow dr; cm.command.CommandText = "Select * from learneradvprofile where userid='" + userid + "'"; cm.dataadapter.Fill(cm.ds, "t4"); int b=cm.ds.Tables["t4"].Rows.Count; for (int i = 1; i <= b; i++) { dr =(DataRow)cm.ds.Tables["t4"].Rows[i]; w1[i] = dr["learningarea"].ToString(); } //level = dr["level"].ToString(); //remarks = dr["remarks"].ToString(); return true; } catch(Exception e) { s="no information"; return false; }

} public bool fatchdataoftrainer(string userid) { try { cm.command.CommandText = "Select * from traineradvprofile where userid='" + userid + "'"; cm.dataadapter.Fill(cm.ds, "t4"); DataRow dr = cm.ds.Tables["t4"].Rows[0]; ea = dr["expertisearea"].ToString(); ey = dr["expertiseyear"].ToString(); project = dr["project"].ToString(); remarks = dr["remarks"].ToString(); return true; } catch (Exception e) { s = "no information"; return false; } }

public DataSet selectlearningarea() { DataSet ds; cm.command.CommandText = "select distinct(learningarea) from learneradvprofile"; cm.dataadapter.Fill(cm.ds, "t4"); ds= cm.ds; if (ds.Tables["t4"].Rows.Count > 0) return ds; else return null; } public DataSet selectexpertisearea() { DataSet ds; cm.command.CommandText = "select distinct(expertisearea) from traineradvprofile"; cm.dataadapter.Fill(cm.ds, "t4"); ds = cm.ds; if (ds.Tables["t4"].Rows.Count > 0) return ds; else return null; } public void updatelerneradvprofile() { } }

Trainer Advance Profile


using using using using using using using using using using using using System; System.Data; System.Configuration; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq; System.Data.OleDb;

public class traineradvprofile {

public string userid; public string expertisearea; public int expertiseyear; public string project; public string remarks; public ConnectionManager cm = new ConnectionManager(); public traineradvprofile() { cm.Connect(); } public bool savetraineradvprofile() { try { cm.command.CommandText = "Select * from traineradvprofile"; cm.dataadapter.Fill(cm.ds, "t1"); DataRow dr = cm.ds.Tables["t1"].NewRow(); dr["userid"] = userid; dr["expertisearea"] = expertisearea; dr["expertiseyear"] = expertiseyear; dr["project"] = project; dr["remarks"] = remarks; cm.ds.Tables["t1"].Rows.Add(dr); OleDbCommandBuilder builder = new OleDbCommandBuilder(cm.dataadapter); cm.dataadapter.Update(cm.ds.Tables["t1"]); return true; } catch (Exception ex) { return false; throw ex; } } public bool sessionrelated(string userid) { cm.command.CommandText = "Select * from traineradvprofile where userid='" + userid + "'"; cm.dataadapter.Fill(cm.ds, "t4"); //DataRow dr = cm.ds.Tables["t4"].Rows[0]; expertisearea = cm.ds.Tables["t4"].Rows[0] ["expertisearea"].ToString(); expertiseyear = Int16.Parse(cm.ds.Tables["t4"].Rows[0] ["expertiseyear"].ToString()); project = cm.ds.Tables["t4"].Rows[0]["project"].ToString(); remarks = cm.ds.Tables["t4"].Rows[0]["remarks"].ToString(); } } return true;

Trainer Achieve Collection & Material


using using using using using using using using using using using using System; System.Data; System.Configuration; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq; System.Data.OleDb;

public class material { public ConnectionManager cm = new ConnectionManager(); public int i; public string lid; public string sn; public string mid; public string fn; public string title; public string desc; public string type; public string size; public string dateadd; public string status; public string sc; public string sfpath; public string tid; public string ta; public material() { cm.Connect(); } public bool SaveMaterial() { try { cm.command.CommandText = "Select * from material"; cm.dataadapter.Fill(cm.ds, "t2"); DataRow dr = cm.ds.Tables["t2"].NewRow(); dr["serialnumber"] = sn; dr["materialid"] = mid; dr["filename"] =fn ; dr["title"] =title ; dr["description"] = desc; dr["type"] =type ; dr["size"] = size; dr["dateadded"] = Convert.ToDateTime(dateadd); dr["status"] = status; dr["subjectcode"] =sc ; dr["serverfilepath"] =sfpath ;

dr["trainerid"] = tid; cm.ds.Tables["t2"].Rows.Add(dr); OleDbCommandBuilder builder = new OleDbCommandBuilder(cm.dataadapter); cm.dataadapter.Update(cm.ds.Tables["t2"]); return true; } catch (Exception ex) { return false; throw ex; } } public DataSet downmaterial() { DataSet ds; ds = cm.getdataset("select materialid,filename,trainerid,title,status from material ", "v1"); if (cm.ds.Tables["v1"].Rows.Count > 0) return ds; else return null; } { public DataSet getTrainerDetail(string f)

DataSet tds; tds = cm.getdataset("Select learnerid from query_manager where trainerid='" + f + "'", "t2"); if (tds.Tables["t2"].Rows.Count > 0) return tds; else return null; } public DataSet getbyidshow() { DataSet ds; ds = cm.getdataset("select materialid,trainerid,title from material ", "v1"); if (cm.ds.Tables["v1"].Rows.Count > 0) return ds; else return null; } public DataSet getbyidname() { DataSet ds; ds = cm.getdataset("select filename,trainerid title from material ", "v1"); if (cm.ds.Tables["v1"].Rows.Count > 0) return ds; else return null; }

public DataSet getmaterialforlearner() { DataSet ds; ds = cm.getdataset("select materialid,filename,title from material ", "v1"); if (cm.ds.Tables["v1"].Rows.Count > 0) return ds; else return null; } public bool savelearnerrequest() { try { cm.command.CommandText = "Select * from learnerlibrary"; cm.dataadapter.Fill(cm.ds, "t1"); DataRow dr = cm.ds.Tables["t1"].NewRow(); dr["learnerid"] = lid; dr["trainerid"] = tid; dr["materialid"] = mid; dr["filename"] = fn; dr["title"] = title; cm.ds.Tables["t1"].Rows.Add(dr); OleDbCommandBuilder builder = new OleDbCommandBuilder(cm.dataadapter); cm.dataadapter.Update(cm.ds.Tables["t1"]); return true; } catch (Exception ex) { return false; } } public bool deletematerial(string ss) { try { cm.command.CommandText = "delete from material where materialid='" + ss + "'"; cm.connection.Open(); int r = cm.command.ExecuteNonQuery(); cm.connection.Close(); if (r > 0) { return true; } else return false; } catch(Exception ed) { return false; } } }

Download Material using using using using using using using using using using using using System; System.Data; System.Configuration; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq; System.Data.OleDb;

public class download { public ConnectionManager public download() { cm.Connect();

cm=new ConnectionManager();

} public DataSet downmaterial() { DataSet ds; ds = cm.getdataset("select materialid,filename,trainerid,title from learnerlibrary ", "v1"); if (cm.ds.Tables["v1"].Rows.Count > 0) return ds; else return null; } public DataSet getviewquery() { DataSet tds; tds = cm.getdataset("Select * from querybox", "t2"); if (tds.Tables["t2"].Rows.Count > 0) return tds; else return null; } public DataSet getviewsugg() { DataSet tds; tds = cm.getdataset("Select * from suggestionbox", "t2"); if (tds.Tables["t2"].Rows.Count > 0) return tds; else return null; } }

Query and Suggestion


using using using using using using using using using using using using System; System.Data; System.Configuration; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq; System.Data.OleDb;

public class querysugg { public int n; public ConnectionManager cm = new ConnectionManager(); public querysugg() { cm.Connect(); } public void savequery( string s1, string s2, string s3, string s4) { try { string s5 = "y"; cm.command.CommandText = "insert into querybox values('" + s1 + "','" + s2 + "','" + s3 + "','" + s4 + "','" + s5 + "')"; cm.connection.Open(); n = cm.command.ExecuteNonQuery(); } catch(Exception e) { } finally { cm.connection.Close(); } } public void savesugg(string s1, string s2, string s3, string s4, string s5, string s6) { try { cm.command.CommandText = "insert into suggestionbox values('" + s1 + "','" + s2 + "','" + s3 + "','" + s4 + "','" + s5 + "','" + s6 + "')"; cm.connection.Open(); n = cm.command.ExecuteNonQuery();

} }

} catch (Exception e1) { } finally { cm.connection.Close(); }

Basic Profile
using using using using using using using using using using using using System; System.Data; System.Configuration; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq; System.Data.OleDb;

public class registration { public string message; public int g; public string userid; public string password; public string username; public string address; public string emailid; public string category; public string country; public string state; public string city; public string pincode; public string contact1; public string contact2; public DateTime dob; public string faxno; public string designation; public string department; public string organisation; public ConnectionManager cm = new ConnectionManager(); public registration() {

cm.Connect(); } public bool savereg() { try { cm.command.CommandText = "Select * from registration"; cm.dataadapter.Fill(cm.ds, "a1"); DataRow dr = cm.ds.Tables["a1"].NewRow(); dr["userId"] = userid; dr["password"] = password; dr["username"] = username; dr["address"] = address; dr["emailid"] = emailid; dr["category"] = category; dr["country"] = country; dr["state"] = state; dr["city"] = city; dr["pincode"] = pincode; dr["contact1"] = contact1; dr["contact2"] = contact2; dr["dob"] = dob; dr["faxno"] = faxno; dr["designation"] = designation; dr["department"] = department; dr["organization"] = organisation; cm.ds.Tables["a1"].Rows.Add(dr); OleDbCommandBuilder builder = new OleDbCommandBuilder(cm.dataadapter); cm.dataadapter.Update(cm.ds.Tables["a1"]); return true; } catch (Exception ex) { return false; throw ex; } } public bool savelogin() { try { cm.command.CommandText = "Select * from login"; cm.dataadapter.Fill(cm.ds, "a2"); DataRow dr = cm.ds.Tables["a2"].NewRow(); dr["userId"] = userid; dr["Password"] = password; dr["Category"] = category; cm.ds.Tables["a2"].Rows.Add(dr); OleDbCommandBuilder builder = new OleDbCommandBuilder(cm.dataadapter); cm.dataadapter.Update(cm.ds.Tables["a2"]); return true; } catch (Exception ex)

{ }

return false; throw ex;

} public void updatedata(string uname, string add, string eid, string cat, string country, string state, string city, long p, long c1, long c2, DateTime dob, long faxno, string des, string dep, string org) { try { string str = "update registration set username='" + uname + "',address='" + add + "',emailid='" + eid + "',category='" + cat + "',country='" + country + "',state='" + state + "',city='" + city + "', pincode='" + p + "',contact1='" + c1 + "',contact2='" + c2 + "',dob='" + dob + "',faxno='" + faxno + "',designation='" + des + "',department='" + dep + "',organization='" + org + "' where userid='"+userid+"'"; cm.command.CommandText = str; cm.connection.Open(); g = cm.command.ExecuteNonQuery(); } catch (FormatException ex) { city = ex.Message; } finally { cm.connection.Close(); } } public bool takedata(string u) { cm.command.CommandText = "Select * from registration where userid='" + u + "'"; cm.dataadapter.Fill(cm.ds, "t4"); DataRow dr = cm.ds.Tables[0].Rows[0]; username = dr[2].ToString(); address = dr[3].ToString(); emailid = dr[4].ToString(); category = dr[5].ToString(); country = dr[6].ToString(); state = dr[7].ToString(); city = dr[8].ToString(); pincode =dr[9].ToString(); contact1 = dr[10].ToString(); contact2 = dr[11].ToString(); dob = DateTime.Parse(dr[12].ToString()); faxno = dr[13].ToString(); designation = dr[14].ToString(); department = dr[15].ToString(); organisation = dr[16].ToString();

return true; } public bool checkuser(string s1) { cm.command.CommandText = "SELECT userid FROM registration where userid='"+s1+"'"; cm.dataadapter.Fill(cm.ds, "t4"); if (cm.ds.Tables["t4"].Rows.Count > 0) { return true; } else return false; } public int insertdata(string t1,string t2,string t3,string t4,string t5,string t6,string t7,string t8,string t9,long t10,long t11,long t12,DateTime t13,long t14,string t15,string t16,string t17) { try { cm.command.CommandText = "insert into registration values('" + t1 + "','" + t2 + "','" + t3 + "','" + t4 + "','" + t5 + "','" + t6 + "','" + t7 + "','" + t8 + "','" + t9 + "','" + t10 + "','" + t11 + "','" + t12 + "','" + t13 + "','" + t14 + "','" + t15 + "','" + t16 + "','" + t17 + "')"; cm.connection.Open(); int n = cm.command.ExecuteNonQuery(); if (n > 0) { cm.connection.Close(); insertintologin(t1,t2,t6,t5); return n; } else return n; } catch (Exception e1) { return 0; } finally { cm.connection.Close(); } } public void insertintologin(string t1, string t2, string t6, string t5) { cm.command.CommandText = "insert into login values('" + t1 + "','" + t2 + "','" + t6 + "','" + t5 + "')"; cm.connection.Open(); int n = cm.command.ExecuteNonQuery(); } }

Show the information


using using using using using using using using using using using using System; System.Data; System.Configuration; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq; System.Data.OleDb;

public class show { public ConnectionManager cm = new ConnectionManager(); public string expertisearea; public string g; public string query; public string status; public string learnerid; public string trainerid; public show() { cm.Connect(); } public DataSet getTrainerDetail(string f) { DataSet tds; tds = cm.getdataset("Select * from traineradvprofile where expertisearea='" + f + "'", "t2"); if (tds.Tables["t2"].Rows.Count > 0) return tds; else return null; } public bool savetquerysuggestion() { try { cm.command.CommandText = "Select * from querysugg"; cm.dataadapter.Fill(cm.ds, "t1"); DataRow dr = cm.ds.Tables["t1"].NewRow(); dr["query"] = query; cm.ds.Tables["t1"].Rows.Add(dr); OleDbCommandBuilder builder = new OleDbCommandBuilder(cm.dataadapter); cm.dataadapter.Update(cm.ds.Tables["t1"]); return true; } catch (Exception ex) { return false;

throw ex; } } public bool saverealquery(string u, string t, string qs, string query) { try { cm.command.CommandText = "Select * from query_manager"; cm.dataadapter.Fill(cm.ds, "t2"); DataRow dr = cm.ds.Tables["t2"].NewRow(); dr["querydata"] = query; dr["querystatus"] = qs; dr["learnerid"] = u; dr["trainerid"] = t; cm.ds.Tables["t2"].Rows.Add(dr); OleDbCommandBuilder builder = new OleDbCommandBuilder(cm.dataadapter); cm.dataadapter.Update(cm.ds.Tables["t2"]); return true; } catch (Exception ex) { return false; throw ex; } } public DataSet getQueryDetail(string f) { DataSet tds; tds = cm.getdataset("Select querydata,querystatus from query_manager where learnerid='" + f + "'", "t2"); if (tds.Tables["t2"].Rows.Count > 0) return tds; else return null; } public bool deleteaccount(string ss) { cm.command.CommandText = "delete from registration where userid='" + ss + "'"; cm.connection.Open(); int r = cm.command.ExecuteNonQuery(); cm.connection.Close(); if (r > 0) { cm.command.CommandText = "delete from login where userid='" + ss + "'"; cm.connection.Open(); r = cm.command.ExecuteNonQuery(); cm.connection.Close(); if (r > 0) return true; else return false; }

return false; } public void deleteother(string ss, string ss1) { if (ss1 == "learner") { cm.command.CommandText = "delete from lerneradvprofile where userid='" + ss + "' and category='" + ss1 + "'"; cm.connection.Open(); int r = cm.command.ExecuteNonQuery(); cm.connection.Close(); } else if (ss1 == "trainer") { cm.command.CommandText = "delete from traineradvprofile where userid='" + ss + "' and category='" + ss1 + "'"; cm.connection.Open(); int r = cm.command.ExecuteNonQuery(); cm.connection.Close(); } } public int updatestatus(int status) { try { string str = "update query_manager set querystatus='" + g + "' where queryid='" + status + "'"; cm.command.CommandText = str; cm.connection.Open(); int n = cm.command.ExecuteNonQuery(); if (n == 1) { return n; } else { return 0; } } catch(Exception e1) { return 0; } } }

else

Trainer View Request


using using using using using using using using using using using using System; System.Data; System.Configuration; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq; System.Data.OleDb;

public class trainerviewrequest { public ConnectionManager cm = new ConnectionManager(); public trainerviewrequest() { cm.Connect(); } public DataSet getdatafromquerymanager(string s) { DataSet tds; tds = cm.getdataset("Select * from query_manager where trainerid='"+s+"'", "t2"); if (tds.Tables["t2"].Rows.Count > 0) return tds; else return null; } public void updatestatus(string s1,long g) { cm.command.CommandText="update query_manager set querystatus='"+s1+"' where queryid='"+g+"'"; cm.connection.Open(); cm.command.ExecuteNonQuery(); cm.connection.Close(); } public void updatequeryanswer(long s1, string s2,string s3) { cm.command.CommandText = "insert into queryresponse values('" + s1 + "','" + s2 + "','" + s3 + "')"; cm.connection.Open(); cm.command.ExecuteNonQuery(); cm.connection.Close(); cm.command.CommandText = "delete query_manager where queryid='"+s1+"'"; cm.connection.Open(); cm.command.ExecuteNonQuery(); cm.connection.Close(); } }

SCREEN SHOTS

Figure : Home Page

Figure : New User

Figure : Basic Profile

Figure : Administrator

Figure : Trainer Advance Profile

Figure : Archive Collection

Figure : Archive Infoseeker

Figure : Query Handling

Figure : Suggestion Box

Figure : Learner Advance Profile

Figure : Give Query ( Learner)

Figures : Download Material

TESTING
Testing Methodology
This module is tested by the following testing methods Unit Testing Integration Testing

Unit Testing:
Unit testing is a procedure used to validate that individual units of source code are working properly. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual program, function, procedure, etc., while in object-oriented programming, the smallest unit is a method, which may belong to a base/super class, abstract class or derived/child class. Ideally, each test case is independent from the others; mock or fake objects as well as test harnesses can be used to assist testing a module in isolation. Unit testing is typically done by software developers to ensure that the code they have written meets software requirements and behaves as the developer intended. Unit testing provides a sort of living documentation of the system. Developers looking to learn what functionality is provided by a unit and how to use it can look at the unit tests to gain a basic understanding of the unit API. Unit test cases embody characteristics that are critical to the success of the unit. These characteristics can indicate appropriate/inappropriate use of a unit as well as negative behaviors that are to be trapped by the unit. A unit test case, in and of itself, documents these critical characteristics, although many software development environments do not rely solely upon code to document the product in development. On the other hand, ordinary narrative documentation is more susceptible to drifting from the implementation of the program and will thus become outdated (e.g. design changes, feature creep, relaxed practices to keep documents up to date).

Integration Testing:
It is sometimes called I&T i.e. Integration and testing, it is the phase of software testing in which individual software modules are combined and tested as a group. It follows unit testing and precedes system testing.

Integration testing takes as its input modules that have been unit tested, groups them in larger aggregates, applies tests defined in an integration test plan to those aggregates, and delivers as its output the integrated system ready for system testing. The purpose of integration testing is to verify functional, performance and reliability requirements placed on major design items. These "design items", i.e. assemblages (or groups of units), are exercised through their interfaces using black box testing, success and error cases being simulated via appropriate parameter and data inputs. Simulated usage of shared data areas and inter-process communication is tested and individual subsystems are exercised through their input interface. Test cases are constructed to test that all components within assemblages interact correctly, for example across procedure calls or process activations, and this is done after testing individual modules, i.e. unit testing

TESTCASES AND BUG REPORT

Test Id : 1001

Test date :

Purpose : Testing of unit LoginManager responsible for Login of User Identifier


P001 P002 P003 P004 P005 P006 P007 P008 P009 P023 P024 P025 P026 P027

Function/Procedure Parameter Values


ValidateUser ValidateUser ValidateUser ValidateUser ValidateUser ValidateUser ValidateUser ValidateUser ValidateUser DeleteLoginInfo DeleteLoginInfo DeleteLoginInfo DeleteLoginInfo DeleteLoginInfo Userid=SPI Passwd=lko Userid=SPi Passwd=lko Userid=sahara Passwd=lko Userid= Passwd= Userid= Passwd=lko Userid=SPi Passwd= Userid=spi Passwd=lko Userid=sahara Passwd=lkO Userid=123 Passwd=shr Userid=SPI Userid=sPi Userid=spi Userid=sahara Userid=

Expected Result
L L L True True True False False

Actual Result
L L L True True True False False

Remark (correct/bug)
Correct Correct Correct Correct Correct Correct Correct Correct Correct Correct Correct Correct Correct Correct

IMPLEMENTATION

Implementation Technologies:
The objective of this project is to develop a web based portal which will provide common platform for learners and trainers to share information and knowledge in an effective and efficient manner. When the user types in the URL of the website in the address field of the browser, a Web Server is contacted to get the requested information. In the .NET Framework, IIS (Internet Information Service) acts as the Web Server. The sole task of a Web Server is to accept incoming HTTP requests and to return the requested resource in an HTTP response. The first thing IIS does when a request comes in is to decide how to handle the request. Its decision is based upon the requested file's extension. For example, if the requested file has the .asp extension, IIS will route the request to be handled by asp.dll. If it has the extension of .aspx, .ascx, etc, it will route the request to be handled by ASP.NET Engine.

Relation between IIS and ASP.NET

The ASP.NET Engine then gets the requested file, and if necessary contacts the database through ADO.NET for the required file and then the information is sent back to the Clients browser. Above figure shows how a client browser interacts with the Web server and how the Web server handles the request from client.

Implementation requirement:
A registered domain name is required for our website. Web space on webserver to host the website. So we need a webhosting service also. The hosting server must have .NET framework and MS SQL SERVER 2005 installed.

Uploading of website:
The website must be uploaded to a web server connected to the Internet in order to be accessed on the Web. We use any FTP client program to connect to your host in order to upload (transfer) your web site (files and other documents) to the server. And we restore the backup of our database on the remote server.

Future Scope Of the Project


This project has great scope in future because in todays world scenario people are moving towards internet for fulfilling there small needs. And we all know that learning is the process which never ends. So this application gives users a very good opportunity to share information and knowledge in a systematic way by using this website. This project has been developed keeping in mind that user may use the system to a long period of time with equal efficiency. In ever changing world this might not be possible. But all these problems have been kept in mind and the system is developed accordingly.

Future Scopes
The points discussed above and the system formed assuming these to happen , future scope of the system is fair : This project was prepared keeping in mind that this system will be used by many users and very effective communication system is used in this project. But is no of users will increased in future then with a very few enhancement it will be able to work properly. Database sql server 2005 gives facility to add new fields , delete old fields , update , increase width and size . So whenever required these operations and changes can be easily applied. New contents and new learning area and expertization area can be added by applying little work or whenever it will be required in future. New features and functions can be added easily by understanding the system.

How to use the software?


This software can be easily used by understanding its features and functions properly This software will be use by 3 very important entities they are :

How Learners will use this software ?


Registration :- Learners will use this software by opening this website . As soon as they will open the website they will find link in menubar New User which will act as a registration page for all users who want to use this website. Learner will fulfill all the details required in that page and will fill his category whether want to use this website as learner or trainer. Login :- After giving all the details he will submit that form. If he will got permission for authentication then he will login into the website and will be able to use all the features of the website. Then he will reach to his homepage where his basic profile details will be visible to him. Advance Profile :- Then he will click on the advance profile where he will enter the learning area by choosing from the dropdownlist. This learning area will be any language subjects in which learner want the study material. Related trainer list :- list of related trainer will be shown to the learner. And learner will send request to a particular trainer to attach with him. Give Query :- Learner will fire the query my requesting for the study material through give query linkbutton. That query will be redirect to the attached trainers profile. Download Material :- According to the learner query trainer will send the study material in learners profile from there he will download the material.

How Trainers will use this software ?


Registration :- Trainers will use this software by opening this website . As soon as they will open the website they will find link in menubar New User which will act as a registration page for all users who want to use this website. Trainer will fulfill all the details required in that page and will fill his category whether want to use this website as learner or trainer. Login :- After giving all the details he will submit that form. If he will got permission for authentication then he will login into the website and will be able to use all the

features of the website. Then he will reach to his homepage where his basic profile details will be visible to him. Advance Profile :- Then he will click on the advance profile where he will enter the expertization area by choosing from the dropdownlist. This expertization area will be any language subjects in which trainer want to give the study material to the attached learner. Related learner list :- list of related learner will be shown to the trainer. And trainer will access the request of a particular learner . Answer Query :- trainer will answer the query by sending the study material from his archive which is like a library of trainer where he stores all the materials . That material will be send to the learner profile from there he will download the material.

How Administrator will use this software ?


Administrator have a full control over the website. He will be provided with his homepage from there he can view all the users whether he is learner or trainer and their queries and suggestions. And have power to delete the particular user. He will be provided various link buttons to view all records.

References
[1] ASP.NET and Web Development Overview, http://msdn.microsoft.com/en-us/library/4w3ex9c2.aspx [2] Microsoft Visual Studio Overview, http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Visual_Studio_2005 [3] Microsoft SQL Server 2005, http://en.wikipedia.org/wiki/Microsoft_SQL_Server [4] 3-Tier System Architecture, http://en.wikipedia.org/wiki/Multitier_architecture [5] Introduction to ADO.NET, http://en.wikipedia.org/wiki/ADO.NET [6] Load Testing using Apache JMeter Testing Tool, http://jakarta.apache.org/jmeter/ [7] Introduction to .NET Architecture, http://www.devtopics.com/what-is-net/ [8] Common Language Infrastructure Definition, http://en.wikipedia.org/wiki/Common_Language_Infrastructure [9] AJAX Bridging the Thin-Client Performance Gap, http://www.ironspeed.com/articles/ajax-bridging%20the%20thinclient% 20performance %20gap/article.aspx [10] 3-Tier Architecture http://www.c-sharpcorner.com/

GANTT CHART
A Gantt chart uses a calendar-oriented chart to represent the project schedule. Each activity is represented as a bar in the calendar, starting from the start date of the activity and ending at the ending date for that activity. The start and end of each activity becomes milestones for the project. A Gantt chart can be developed for the entire project or a separate chart can be developed for each function. A tabular form is maintained where rows indicate the tasks with milestones and columns indicate duration (week/months). The horizontal bars indicate that span and columns indicate duration of the task We have to estimate the number of days required for each of the seven tasks as follows

Task Activity No. 1 2 3 4 5 6 7 Requirement Analysis Design Coding Testing and

Expected

time

of

completion 15 days(1 Jan-15 Jan) 19 days (16 Jan-3 Feb.) 15 days (4 Feb-18 feb-10 mar-20 mar-27 mar-29

Feb.) Quality 20 days(19 mar) 10days(11 mar) 6days(21 mar) 2days mar) (27

Assurance Write Manual Implementation Final Review

The Gantt chart for this project is:


Task No. Task Description Time Line 116- 4Jan Requirement 1 2 3 Analysis Design Coding Testing Quality 4 5 6 7 Assurance Write Manual Implementatio n final review Jan 1910Mar 21Mar 27Mar

Feb Feb

&

Implementation of Security Mechanism


As technology keeps advancing, it is equally important to ensure that the data of the organization is protected and reports/queries provide appropriate control information to tell the user that the data integrity is assured. Security and controls are required not only for preventing inadvertent mistakes made by users, but also to prevent misuse of the system and ensure data integrity.

Let us look at some basic aspects of security and control in an automated system. 1. Risk Analysis. It is easy to state that all systems must have the best possible security to ensure that there is no misuse of the system. Since in this project, data is very confidential, all measure have been taken to ensure the best security.

2. Password Control Password is the most commonly used and one of the most effective methods of control. The administrator and the

students are given the password. This is important and critical to this software. It prevents from illegal access of the various options. 3. Access Control It has been ensured that no a single user without a valid login and password should access the Internet Based Testing. There is mechanism of access control by issuing the login and password to each and every student. Moreover the

administrator is involved into various activities such as add

students,

generating

reports

and

issuing

certificates.

So

access control is given to the administrator 4. Validations Various validation checks have been made to ensure the security of the software. For say every student is validated before appearing in the exam. The administrator is too validated. 5. Data Integrity It is very necessary that the data should be well integrated with each other to obtain the fast response from the system. Databases are designed keeping normalization in the mind. As the application progresses, by different means it has been made sure that data are going into respective places. The system security problem can be divided into four related issuessecurity, integrity, privacy, confidentiality.

System security: Refers to the technical innovations and procedures applied to the hardware and operating system to protect against deliberate or accidental damage from a defined threat. In contrast data security is the protections against data from loss disclosure, modification and destruction. System integrity:

Refers

to

the

proper

functioning

of

hardware

and

programs,

appropriate physical security, and safe against external threats such as eavesdropping and wire-tapping. In contrast data integrity makes sure that data do not differ from their original form and have not been accidentally or intentionally disclosed, altered or destroyed.

Privacy: Defines the right of the users or organization to determine what information they are willing to share with or accept from others and how the other organizations can be protected against unwelcome, unfair or excessive dissemination of information about it. Confidentiality: Is a special status given to sensitive information in a database to minimize possible invasion of privacy. It is an attribute of information that characterizes its need for protection.

COST ESTIMATION OF PROJECT For any given set of requirement it is desirable to know how much it will cost to develop the software to satisfy the given requirement and how much time development will take. These estimates are needed before development is initiated. The primary reason for cost and schedule estimation is to be enable the client or developer to perform a cost benefit analysis and for project monitoring. And control. a more practical use of these estimates is in bidding for software project.

Cost in a project is due to the requirement for software, hardware and human resource .Hardware resource are such thing as the computer time terminal time and memory required for the project whereas software resource include the tool and compiler needed during development .The bulk of cost of software development is due to the human resources needed and most cost estimation procedure focus on this aspect most cost estimates are determine in terms of personmonth. by properly including the overhead in rupee cost of a personmonth ,beside including the direct cost of the person month, most costs for a project can be incorporated by using PM as the basic measure .Estimate can be based on subjective opinion of some person or determine through the use of model. There are many ways of estimating cost of project I have use COCOMO(Constructive Cost Model) .the model has following hierarchy: Model 1 The basic COCOMO model computed software development efforts land cost as a fuction of a program size expressed in estimated lines of code. Model 2: The intermediated COCOMO model computer software development effort as a program size and a set ofcost driver that include subjective assessment of vehicle, hardware personnel and project attributes. Model 3: The advance COCOMO model incorporates all characteristics of the intermediate version with an assessment of the cost drivers impact on each step of software engineering. The basic COCOMO equation takes the form E=abKLOCbb

D=CbEdb Where E is the effort applied in person month, D is the development time in the chronological month , and KLOC is the estimated number of delivered lines of code for the project . The coefficient ab and cb and the exponent bb and db were taken as: This project is organic so ab=4 bb=1.05 cb=2.5 db=0.38
LOC=1555 KLOC =3000/1000 = 3.0 2.5 E=2.4(KLOC) =7.6 =7 PERSON PER MONTH

New calculated the D the development time in chronological months D=2.5 E0.35 =5.2 months approximately

CODE EFFICIENCY After they have been implemented and tested, software systems can very seldom be used over a long time without modifications. In fact, usually the opposite is true as the requirements are updated or extended after completion of the product and during its operation, undetected errors or shortcomings arise. The implementation must constantly be modified or extended necessitating repeated reading and understanding of the source code. In the ideal case the function of

a program component should be comprehensible without knowledge of the design documents. The source code is the only document that always reflects the current state of the implementation. The readability of a program depends on the programming language used and on the programming style of the implementer. Writing readable programs is a creative process. The programming style of the implementer influences the readability of a program much more than the programming language used. Most important elements of good programming style: Structured ness Expressiveness Outward form Efficiency

It has been recognized that good coding style can overcome many of the deficiencies of primitive programming language. While poor

style can defeat the intent of an excellent language. The goal of a good coding style is to provide easily understandable, straightforward and elegant code. The guidelines of coding include: Use of a few standard control constants. Use of unconditional branching (go to) in a disciplined manner.

Introduction of user defined data types to model entities in the problem domain.

Hiding of a data structure behind access functions. Providing standard documentation prologues for each subprograms and compilation unit.

Use of indentation, parenthesis, and blank spaces, blank lines, borders and comments to enhance readability

OPTIMIZATION OF CODE
The software designer should be concerned with developing a

presentation of software that will meet all functional and performance requirement and merit acceptance based on design quality measures. Refinement of program structure during the early stage of design should be encouraged. Alternative presentation may be desired, refined and evaluated for the best approach. This approach to optimization is one of the true benefits desired from developing a presentation of software architecture. It is important to note that structural simplicity often reflects both elegance and efficiency. Design optimization should strive for the smallest number of modules that is consistent with effective modularity and the least complex data structure. For performance-critical applications it may be necessary to optimize during later design iteration and possibly during coding. It is not

unreasonable to propose the following approach for performancecritical software:1. Develop and refine program structure without

concern for performance-critical optimization. 2. Use tools that simulate runtime performance to

isolate area of inefficiency. 3. During later design iterations, select modules that

are suspect time hogs and carefully develop procedures, algorithms for time efficiency. 4. 5. Code in an appropriate programming language. Instrument the software to isolate modules that

accelerate for heavy processor utilization. 6. If necessary, redesign or record in machine

dependent language to improve efficiency. This web application has been optimized. To make it attractive and concise all the optimization points are kept in mind before making the application.

DATA INTEGRITY AND CONSTRAINT

Data Integrity

The relational model includes two general integrity rules. These integrity rules implicitly or explicitly defines the set of consistence database states, or change of state, or both. These are following types of integrity rules:

Primary Keys
TABLE NAME USER INFORMATION EXAMINEE INFORMATION QUESTION INFORMATION PRIMARY KEY USER ID ENROLLMENT NO. QUES ID USED AS FOREIGN KEY IN RESULT TABLE FOEIGN KEY

Entity Integrity
It states that If the attribute A of relation R is a prime attribute of R then A cannot accept null value. In my project I have maintained the entity integrity by making it sure that no primary key have null value. Above relation all have primary key. Referential Integrity This rule is concerned with the foreign keys with the attributes of relation having domain that are those of primary key of another relation .Referential integrity can be stated asGiven two relation R and S suppose R refers to the relation S via a set of attribute that forms the primary keys of S and this set of attribute form a foreign key in R. Then the value of the foreign key in a tuple R must either be equal to the primary key of a tuple of S or be entirely null.

SYSTEM CONSTRAINTS:PERFORMANCE CONSTRAINTS: Should maintain the information of student table properly. Should carry out auto-solution for the Internet Based Testing properly Should perform periodical reviews and observations of various aspects of the examination management system. The final report concerned to various concepts will be produced and printed with accuracy. Error Handling In this web application, I have used Try-Catch Block for Error Handling. Errors are catch through Exception handling and all the possible errors are catch in exception block. public bool ValidateUser(int Enrollment, string Passwd) { OleDbCommand Enrollment,Passwd Passwd=?", cn); cmd.Parameters.AddWithValue("1", Enrollment); cmd.Parameters.AddWithValue("2", Passwd); OleDbDataReader dr; try { if (cn.State == ConnectionState.Closed) from cmd = new OleDbCommand("select Enrollment=? and Examinee where

cn.Open();

dr = cmd.ExecuteReader(); if (dr.Read())

return true; else

return false; cn.Close(); } catch (Exception) { return false; } }

Parameters Passing:
In this Web Application, Parameter Passing is applied because Object Oriented Paradigm is used in our Website. Classes have used functions in which parameters are called, later these function are called on a web form on their Click events by passing parameters. public bool ValidateUser(string strUserId, string strPassword)

public bool SaveNewUser(string strUserId, string strPassword) public bool SaveNewUser(string strUserId, string strPassword,string strQues,string strAnswer ) public bool UpdatePasswd(string strUserId, string strPassword) public bool DeleteUser(string strUserId) public string GetHintQuestion(string strUserId) public bool VerifyHintAnswer(string strUserId, string strHintAnswer)

Function Calling:
protected void Button1_Click(object sender, EventArgs e) { LoginManager a = new LoginManager(); string user,passwd; user = TextBox1.Text; passwd = TextBox2.Text; if (a.ValidateUser(user, passwd)) { Session["uid"] = user; Label1.Text = "Valid user"; } else { Label1.Text = "Invalid user"; } }

Validation Checks
ASP.NET introduced smart validation server controls to implement page level validations. They are capable of performing both server side and client side validations. So, Validation server controls offer the

combined power of both approaches such that the security of application is never compromised. ASP.NET 2.0 Validation server controls Presently, ASP.NET 2.0 offers six validation controls. It also added new features like Validation groups and new JavaScript capabilities.
o o o o o o

RequiredFieldValidator CompareValidator RangeValidator RegularExpressionValidator CustomValidator ValidationSummary

Validation Properties
Usually, Validation is invoked in response to user actions like clicking submit button or entering data. Suppose, you wish to perform validation on page when user clicks submit button. To make this happen, simply set the CauseValidation property to True for submit button as shown below <asp:Button ID="Button1" runat="server" Text="Submit" CausesValidation=true />

RequiredFieldValidator
The RequiredFieldValidator control is simple validation control which checks to see if the data is entered for the attached control. You can have a RequiredFieldValidator control for each form element on which you wish to enforce Mandatory Field rule. <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Required!" ControlToValidate="TextBox1">

</asp:RequiredFieldValidator> <asp:Button ID="Button1" runat="server" Text="Submit" CausesValidation="true"/> </div> </form>

CompareValidator Server Control

The CompareValidator control allows you to make comparisons between two form elements as well as to compare values contained with in form element to constants that you specify. For instance, you can specify that a form's element value must be an integer and greater than a specified number. <td> <asp:TextBox ID="TextBox2" TextMode="Password" runat="server"></asp:TextBox> </td> </tr> <tr> <td> <asp:Label ID="Label2" runat="server" Text="Confirm Password"></asp:Label> </td> <td> <asp:TextBox ID="TextBox3" TextMode="password" runat="server"></asp:TextBox> </td> <td> <asp:Button ID="Button2" runat="server" Text="Login"/> </td> </tr> </table> <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="Passwords don't match!" ControlToValidate="TextBox3" ControlToCompare="textbox2" ></asp:CompareValidator>

CompareFieldValidator
As shown in above output, you can see that ComparisonValidator makes comparisons between two form elements. You can see that Enter password textbox value is matched against Confirm Password

textbox values to make sure that they match. If they don't match in their values, you can display error message by setting ErrorMessage property as shown above. In above example, we need only a single CompareValidator control on the page because a single comparison is made. Therefore, you use the ControlToCompare property. This specifies what value is compared to Textbox2. In this case, the value is Textbox3.

También podría gustarte