Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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).
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.
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.
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
Training Services Consulting Corporate Telework Training Telecom Training Software and Hardware Training
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
System Analysis
Business needs Objective Scope Problem faced with existing system Proposed System Challenges Benefits Feasibility study
System Design
ER-Diagram
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.
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.
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.
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.
Priority of Requirements C R O SM EF
Conditionally Required Required Optional System Maintained External Feature
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
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
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.
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.
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.
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
Study materials
1 Login Request Confirmation or rejection New User Request Confirm 2 Login Request
Library Management
Search Contents
Contents
Learner
Profile Processing
Trainer
Confirm
confirm
Query Processing
ER-DIAGRAM
1 M
1 M M M M 1
Size 20 20 30 10
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
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 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)
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
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
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;;
Request Module
Database Design : Table Name : learnerrequest
S No 1 2 3 Fields Name
Size 20 20 50
Description
Class Design:
Public Properties:
public string query; public string status; public string learnerid; public string trainerid;
Public Methods:
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
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;
Size 20 20 50
Description
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
20 50 20 10 20
Primary Key Not Not Not Not Null Null Null Null
Automatic generation
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;
SuggestionBox Module
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;
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
//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()
Administrator Module
Database Design : Table Name: Administrator S NO. TABLE NAME
1 2 3 4 5
Public Methods: //It will fetch the List of all Users With Category
public DataSet getUserDetail()
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.
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.
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.
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.
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.
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
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.
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.
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 .
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.
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.
First method is that it will fetch the details of specific materials. So trainer can search specific material.
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 } }
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() { } }
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;
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;
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; } }
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();
} }
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)
{ }
} 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(); } }
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
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 : Administrator
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
Test Id : 1001
Test date :
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.
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 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.
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.
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
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
Feb Feb
&
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
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
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
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())
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
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">
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.