Anda di halaman 1dari 58



Attendance Management System is software developed for daily student attendance in schools, colleges and institutes. If facilitates to access the attendance information of a particular student in a particular class. The information is sorted by the operators, which will be provided by the teacher for a particular class. This system will also help in evaluating attendance eligibility criteria of a student. The purpose of developing attendance management system is to computerized the tradition way of taking attendance. Another purpose for developing this software is to generate the report automatically at the end of the session or in the between of the session. The administrator can even maintain the record of the user in the organization in allocating the unique id. This intranet-based application provides the user of the system a centralized view of the things maintained in the software depending on the privileges assigned by the administrator accordingly.


Attendance Management System is software developed for daily student attendance in schools, colleges and institutes. If facilitates to access the attendance information of a particular student in a particular class. The information is sorted by the operators, which will be provided by the teacher for a particular class. This system will also help in evaluating attendance eligibility criteria of a student.

The purpose of developing attendance management system is to computerized the tradition way of taking attendance. Another purpose for developing this software is to generate the report automatically at the end of the session or in the between of the session.

The scope of the project is the system on which the software is installed, i.e. the project is developed as a desktop application, and it will work for a particular institute. But later on the project can be modified to operate it online.

In the present system all work is done on paper. The whole session attendance is stored in register and at the end of the session the reports are generated. We are not interested in generating report in the middle of the session or as per the requirement because it takes more time in calculation. At the end of session the students who dont have 75% attendance get a notice.


Not User Friendly: The existing system is not user friendly because the retrieval of data is very slow and data is not maintained efficiently.

Difficulty in report generating: We require more calculations to generate the report so it is generated at the end of the session and the student not get a single chance to improve their attendance.

Manual control: All calculations to generate report is done manually so there is greater chance of errors.

Lots of paperwork: Existing system requires lot of paper work. Loss of even single record/register led to difficult situation because all the papers are needed to generate the reports.

Time consuming: Every work is done manually so we cannot generate report in the middle of the session or as per the requirement because it is very time consuming.


User Friendly: The proposed system is user friendly because the retrieval and storing of data is fast and data is maintained efficiently. Moreover the graphical user interface is provided in the proposed system, which provides user to deal with the system very easily. Reports are easily generated: Reports can be easily generated in the proposed system so user can generate the report as per the requirement (monthly) or in the middle of the session. User can give the notice to the students so he/she become regular. Very less paper work: The proposed system requires very less paper work. All the data is feted into the computer immediately and reports can be generated through computers. Moreover work becomes very easy because there is no need to keep data on papers.

Computer operator control: Computer operator control will be there so no chance of errors. Moreover storing and retrieving of information is easy. So work can be done speedily in the time.


The requirement phase basically consists of three activities:

1. Requirement Analysis 2. Requirement Specification 3. Requirement Validation


Requirement Analysis is a software engineering task that bridges the gap between system level software allocation and software design. It provides the system engineer to specify software function and performance indicate softwares interface with the other system elements and establish constraints that software must meet.

The basic aim of this stage is to obtain a clear picture of the needs and requirements of the end-user and also the organization. Analysis involves interaction between the clients and the analysis. Usually analysts research a problem from any questions asked and reading existing documents. The analysts have to uncover the real needs of the user even if they dont know them clearly. During analysis it is essential that a complete and consistent set of specifications emerge for the system. Here it is essential to resolve the contradictions that could emerge from information got from various parties.

This is essential to ensure that the final specifications are consistent.

It may be divided into 5 areas of effort. 1. Problem recognition 2. Evaluation and synthesis 3. Modelling 4. Specification

4.1.1 REVIEW
Each Requirement analysis method has a unique point of view. However all analysis methods are related by a set of operational principles. They are: 1. The information domain of the problem must be represented and understood.

2. The functions that the software is to perform must be defined.

3. The behaviour of the software as a consequence of external events must be defined.

4. The models that depict information function and behaviour must be partitioned in a hierarchical or layered fashion.

5. The analysis Attendance Monitoring System process must move from essential information to implementation detail.


Specification Principles Software Requirements Specification plays an important role in creating quality software solutions. Specification is basically a representation process. Requirements are represented in a manner that ultimately leads to successful software implementation.

Requirements may be specified in a variety of ways. However there are some guidelines worth following: Representation format and content should be relevant to the problem Information contained within the specification should be nested Diagrams and other notational forms should be restricted in number and consistent in use. Representations should be revisable.

The software requirements specification Online Attendance Monitoring System produced at the culmination of the analysis task. The function and performance allocated to the software as a part of system engineering are refined by establishing a complete information description, a detailed functional and behavioural description, and indication of performance requirements and design constraints, appropriate validation criteria and other data pertinent to requirements.


Processor: Intel I3 Core Processor Processor Speed: 250 MHz to 833MHz RAM: 64MB to 256MB Hard Disk: 128GB to 500 GB Key Board: 104 keys


Language: ASP.NET, C# Database: SQL Server Management Studio 2008 Integrated development Environment(IDE): Microsoft Visual Studio 2008 Operating System: Windows XP, Window 7 Home Basic. RAM: 1024 MB

4.4 .1 ABOUT THE IDE USED Microsoft Visual It Studio is is an integrated to development environment (IDE) user

from Microsoft.


develop console and graphical

interface, applications along

with Windows

Forms or WPF applications, web

sites, web applications, and web services in both code together with managed code for all platforms supported by Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework and Microsoft Silverlight. Visual Studio includes a code editor supporting IntelliSense as well as code refactoring. The integrated debugger works both as a source-level debugger and a machine-level debugger. Other built-in tools include a forms designer for building GUI applications, web levelincluding designer,class designer, and database

schema designer. It accepts plug-ins that enhance the functionality at almost every adding support for source-control systems

(like Subversion and Visual SourceSafe) and adding new toolsets like editors and visual designers for domain-specific languages or toolsets for other aspects of

the software development lifecycle (like the Team Foundation Server client: Team Explorer). Visual Studio supports different programming languages by means of language services, which allow the code editor and debugger to support (to varying degrees) nearly any programming language, provided a language-specific service exists. Builtin languages include C/C++ (via Visual C++), VB.NET (via Visual Basic

.NET), C# (via Visual C#), and F# (as of Visual Studio 2010). Support for other languages such as M, Python, and Ruby among others is available via language services installed separately. It also supports XML/XSLT,

HTML/XHTML, JavaScript and CSS. Individual language-specific versions of Visual Studio also exist which provide more limited language services to the user: Microsoft Visual Basic, Visual J#, Visual C#, and Visual C++. Microsoft provides "Express" editions of its Visual Studio 2010 components Visual Basic, Visual C#, Visual C++, and Visual Web Developer at no cost. Visual Studio 2012, 2010, 2008 and 2005 Professional Editions, along with language-specific versions (Visual Basic, C++, C#, J#) of Visual Studio Express 2010 are available for free to students as downloads via Microsoft's DreamSpark program.

FEATURES Code editor Like any other IDE, it includes a code editor that supports syntax highlighting and code completion using IntelliSense for not only variables, functions and methods but also language constructs like loops and queries. IntelliSense is supported for the included languages, as well as for XML and for Cascading Style Sheets and JavaScript when developing web sites and web applications.Autocomplete suggestions are popped up in a modeless list box, overlaid on top of the code editor. In Visual Studio 2008 onwards, it can be made temporarily semi-transparent to see the code obstructed by it. The code editor is used for all supported languages. The Visual Studio code editor also supports setting bookmarks in code for quick navigation. Other navigational aids include collapsing code blocks and incremental

search, in addition to normal text search and rage search. The code editor also includes a multi-item clipboard and a task list. The code editor supports code snippets, which are saved templates for repetitive code and can be inserted into code and customized for the project being worked on. A management tool for code snippets is built in as well. These tools are surfaced as floating windows which can be set to automatically hide when unused or docked to the side of the screen. The Visual Studio code editor also supports code refactoring including parameter reordering, variable and method renaming, interface extraction and encapsulation of class members inside properties, among others. Visual Studio features background compilation (also called incremental compilation). As code is being written, Visual Studio compiles it in the background in order to provide feedback about syntax and compilation errors, which are flagged with a red wavy underline. Warnings are marked with a green underline. Background compilation does not generate executable code, since it requires a different compiler than the one used to generate executable code. Background compilation was initially introduced with Microsoft Visual Basic but has now been expanded for all included languages. Debugger Visual Studio includes a debugger that works both as a source-level debugger and as a machine-level debugger. It works with both managed code as well as native code and can be used for debugging applications written in any language supported by Visual Studio. In addition, it can also attach to running processes and monitor and debug those processes. If source code for the running process is available, it displays the code as it is being run. If source code is not available, it can show the disassembly. The Visual Studio debugger can also create memory dumps as well as load them later for debugging. Multi-threaded programs are also supported. The debugger can be configured to be launched when an application running outside the Visual Studio environment crashes. The debugger allows setting breakpoints (which allow execution to be stopped temporarily at a certain position) and watches (which monitor the values of variables as the execution progresses). Breakpoints can be conditional, meaning they get triggered when the condition is met. Code can be stepped over, i.e., run one line (of

source code) at a time. It can either step into functions to debug inside it, or step over it, i.e., the execution of the function body isn't available for manual inspection. The debugger supports Edit and Continue, i.e., it allows code to be edited as it is being debugged (32 bit only; not supported in 64 bit). When debugging, if the mouse pointer hovers over any variable, its current value is displayed in a tooltip ("data tooltips"), where it can also be modified if desired. During coding, the Visual Studio debugger lets certain functions be invoked manually from the Immediate tool window. The parameters to the method are supplied at the Immediate window.

Designer This section needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (May 2008) Visual Studio includes a host of visual designers to aid in the development of applications. These tools include: Windows Forms Designer The Windows Forms designer is used to build GUI applications using Windows Forms. Layout can be controlled by housing the controls inside other containers or locking them to the side of the form. Controls that display data (like textbox, list box, grid view, etc.) can be bound to data sources like databases or queries. Data-bound controls can be created by dragging items from the Data Sources window onto a design surface.[30] The UI is linked with code using an event-driven programming model. The designer generates either C# or VB.NET code for the application. WPF Designer The WPF designer, codenamed Cider, was introduced with Visual Studio 2008. Like the Windows Forms designer it supports the drag and drop metaphor. It is used to author user interfaces targeting Windows Presentation Foundation. It supports all WPF functionality including data binding and automatic layout management. It generates XAML code for the UI. The generated XAML file is compatible with


Microsoft Expression Design, the designer-oriented product. The XAML code is linked with code using a code-behind model. Web designer/development Visual Studio also includes a web-site editor and designer that allows web pages to be authored by dragging and dropping widgets. It is used for developing ASP.NET applications and supports HTML, CSS and JavaScript. It uses a code-behind model to link with ASP.NET code. From Visual Studio 2008 onwards, the layout engine used by the web designer is shared with Microsoft Expression Web. There is also ASP.NET MVC support for MVC technology as a separate download[32] and ASP.NET Dynamic Data project available from Microsoft[33] Class designer The Class Designer is used to author and edit the classes (including its members and their access) using UML modeling. The Class Designer can generate C# and VB.NET code outlines for the classes and methods. It can also generate class diagrams from hand-written classes. Data designer The data designer can be used to graphically edit database schemas, including typed tables, primary and foreign keys and constraints. It can also be used to design queries from the graphical view. Mapping designer From Visual Studio 2008 onwards, the mapping designer is used by LINQ to SQL to design the mapping between database schemas and the classes that encapsulate the data. The new solution from ORM approach, ADO.NET Entity Framework, replaces and improves the old technology.



SQL Server 2008 (formerly codenamed "Katmai") was released on August 6, 2008 and aims to make data management self-tuning, self organizing, and self maintaining with the development of SQL Server Always On technologies, to provide near-zero downtime. SQL Server 2008 also includes support for structured and semi-structured data, including digital media formats for pictures, audio, video and other multimedia data. In current versions, such multimedia data can be stored as BLOBs (binary large objects), but they are generic bitstreams. Intrinsic awareness of multimedia data will allow specialized functions to be performed on them. According to Paul Flessner, senior Vice President, Server Applications, Microsoft Corp., SQL Server 2008 can be a data storage backend for different varieties of data: XML, email, time/calendar, file, document, spatial, etc as well as perform search, query, analysis, sharing, and synchronization across all data types. Other new data types include specialized date and time types and a spatial data type for location-dependent data. Better support for unstructured and semi-structured data is provided using the new FILESTREAM data type, which can be used to reference any file stored on the file system. Structured data and metadata about the file is stored in SQL Server database, whereas the unstructured component is stored in the file system. Such files can be accessed both via Win32 file handling APIs as well as via SQL Server using T-SQL; doing the latter accesses the file data as a BLOB. Backing up and restoring the database backs up or restores the referenced files as well. SQL Server 2008 also natively supports hierarchical data, and includes T-SQL constructs to directly deal with them, without using recursive queries. The Full-text search functionality has been integrated with the database engine. According to a Microsoft technical article, this simplifies management and improves performance. Spatial data will be stored in two types. A "Flat Earth" (GEOMETRY or planar) data type represents geospatial data which has been projected from its native, spherical, coordinate system into a plane. A "Round Earth" data type (GEOGRAPHY) uses an ellipsoidal model in which the Earth is defined as a single continuous entity which does not suffer from the singularities such as the international dateline, poles, or map

projection zone "edges". Approximately 70 methods are available to represent spatial operations for the Open Geospatial Consortium Simple Features for SQL, Version 1.1. SQL Server includes better compression features, which also helps in improving scalability. It enhanced the indexing algorithms and introduced the notion of filtered indexes. It also includes Resource Governor that allows reserving resources for certain users or workflows. It also includes capabilities for transparent encryption of data (TDE) as well as compression of backups. SQL Server 2008 supports the ADO.NET Entity Framework and the reporting tools, replication, and data definition will be built around the Entity Data Model. SQL Server Reporting Services will gain charting capabilities from the integration of the data visualization products from Dundas Data Visualization, Inc., which was acquired by Microsoft. On the management side, SQL Server 2008 includes the Declarative Management Framework which allows configuring policies and constraints, on the entire database or certain tables, declaratively. The version of SQL Server Management Studio included with SQL Server 2008 supports IntelliSense for SQL queries against a SQL Server 2008 Database Engine. SQL Server 2008 also makes the databases available via Windows PowerShell providers and management functionality available as Cmdlets, so that the server and all the running instances can be managed from Windows PowerShell.



All projects are feasible, given unlimited resources and infinite time.

But the

development of software Online Placement System plagued by the scarcity of resources and difficult delivery rates. It is both necessary and prudent to evaluate the feasibility of a project at the earliest possible time.

Three key considerations are involved in the feasibility analysis.

Economic Feasibility: The Online Placement System procedure is to determine the benefits and savings that are expected from a candidate system and compare them with costs. If benefits outweigh costs, then the decision is made to design and implement the system. Otherwise, further justification or alterations in proposed system will have to be made if it is to have a chance of being approved. This is an ongoing effort that improves in accuracy at each phase of the system life cycle.

Technical Feasibility: Technical feasibility centers on the existing computer system (hardware, software, etc.,) and to what extent it can support the proposed addition. If the budget is a serious constraint, then the project is judged not feasible.

Operational Feasibility: People are inherently resistant to change, and computers have been known to facilitate change. It is understandable that the introduction of a candidate system


requires special effort to educate, sell, and train the staff on new ways of conducting business.



The most creative and challenging phase of the life cycle is system design. The term design describes a final system and the process by which it is developed. It refers to the technical specifications that will be applied in implementations of the candidate system. The design may be defined as the process of applying various techniques and principles for the purpose of defining a device, a process or a system with sufficient details to permit its physical realization.

The designers goal is how the output is to be produced and in what format. Samples of the output and input are also presented. Second input data and database files have to be designed to meet the requirements of the proposed output. The processing phases are handled through the program Construction and Testing. Finally, details related to justification of the system and an estimate of the impact of the candidate system on the user and the organization are documented and evaluated by management as a step toward implementation.

The importance of software design can be stated in a single word Quality. Design provides us with representations of software that can be assessed for quality. Design is the only way where we can accurately translate a customers requirements into a complete software product or system. Without design we risk building an unstable system that might fail if small changes are made. It may as well be difficult to test, or could be one whos quality cant be tested. development of a software product. So it is an essential phase in the



Different Modules in Computerized System

Module 1: Password Module In this module, Faculty enters a password and the software checks its validity. If the password is valid then he is allowed to enter, otherwise Invalid User/Password message is displayed. Different data access rights are assigned to different users. A new member can also be registered in this module.

Module 2: New Faculty Registration Module In this module new Faculty can submit his personal details regarding the faculties, faculty ID, password etc.

Module 3 Dashboard Module In this module Faculty will enter the lecture no., subject name, and semester ID etc

Module 4: Attendance Module In this module, Admin/Faculty member can view the student list according to the entries in the dashboard. It is the details of Student Roll No, Student Name, Father Name, and Attendance which include present, absent & leave category. Plus the mention details in the dashboard

Module 5: Change Password Module In this module, user can change password. But user has to login to first of all login into their account.

Module 6: Student Criteria Module In this module, Faculty/admin can view the list of student whose has fulfilled the criteria which was submitted by the faculty members.



The data flow diagram is used for classifying system requirements to major transformation that will become programs in system design. This is starting point of the design phase that functionally decomposes the required specifications down to the lower level of details. It consists of a series of bubbles joined together by lines.

Bubbles: Represent the data transformations. Lines: Represents the logic flow of data.

Data can trigger events and can be processed to useful information. System analysis recognizes the central goal of data in organizations. This dataflow analysis tells a great deal about organization objectives are accomplished.

Dataflow analysis studies the use of data in each activity. It documents this finding in DFDs. Dataflow analysis give the activities of a system from the viewpoint of data where it originates how they are used or hanged or where they go, including the stops along the way from their destination. The components of dataflow strategy span both requirements determination and systems design. The first part is called dataflow analysis. As the name suggests, we didnt use the dataflow analysis tools exclusively for the analysis stage but also in the designing phase with documentation.



The logic dataflow diagrams can be drawn using only four simple notations i.e., special symbols or icons and the annotation that associates them with a specific system. Since the choice of notation we follow, does not affect impede or catalyze the system process; we used three symbols from YOURDON notation and one from Gain and Samson notation as specified below.

Element References


Data Flow Process


Data Store Source or Sink


5.2.2 DESCRIPTION Process: describes how input data is converted to output data

Data Store: Describes the repositories of data in a system

Data Flow: Describes the data flowing between process, Data stores and external entities. Sources: An external entity causing the origin of data.

Sink: An external entity, which consumes the data.



The top-level diagram is often called a context diagram. It contains a single process, but it plays a very important role in studying the current system. The context diagram defines the system that will be studied in the sense that it determines the boundaries. Anything that is not inside the process identified in the context diagram will not be part of the system study. It represents the entire software element as a single bubble with input and output data indicated by incoming and outgoing arrows respectively. Types of data flow diagrams DFDs are two types

1. Physical DFD Structured analysis states that the current system should be first understand correctly. The physical DFD is the model of the current system and is used to ensure that the current system has been clearly understood. Physical DFDs shows actual devices, departments, people etc., involved in the current system

2. Logical DFD Logical DFDs are the model of the proposed system. They clearly should show the Requirements on which the new system should be built. Later during design activity this is taken as basis for drawing the system structure chart.


Faculty /Administrator

Fig. 5.1 0-level DFD


Login Process
Report Generation


Teacher Entry

Fig. 5.2 1-level DFD


Fig. 5.3 2-level DFD


5.2.4 E-R DIAGRAM An ER model is an abstract way of describing a database. In the case of a relational database, which stores data in tables, some of the data in these tables point to data in other tables - for instance, your entry in the database could point to several entries for each of the phone numbers that are yours. The ER model would say that you are an entity, and each phone number is an entity, and the relationship between you and the phone numbers is 'has a phone number'. Diagrams created to design these entities and relationships are called entityrelationship diagrams or ER diagrams. Using the three schema approach to software engineering, there are three levels of ER models that may be developed. Conceptual data model This is the highest level ER model in that it contains the least granular detail but establishes the overall scope of what is to be included within the model set. The conceptual ER model normally defines master reference data entities that are commonly used by the organization. Developing an enterprise-wide conceptual ER model is useful to support documenting the data architecture for an organization. A conceptual ER model may be used as the foundation for one or more logical data models (see below). The purpose of the conceptual ER model is then to establish structural metadata commonality for the master data entities between the set of logical ER models. The conceptual data model may be used to form commonality relationships between ER models as a basis for data model integration. Logical data model A logical ER model does not require a conceptual ER model, especially if the scope of the logical ER model is to develop a single disparate information system. The logical ER model contains more detail than the conceptual ER model. In addition to master data entities, operational and transactional data entities are now defined. The details of each data entity are developed and the entity relationships between these data entities are established. The logical ER model is however developed independent of technology into which it will be implemented.


Physical model One or more physical ER models may be developed from each logical ER model. The physical ER model is normally developed to be instantiated as a database. Therefore, each physical ER model must contain enough detail to produce a database and each physical ER model is technology dependent since each database management system is somewhat different. The physical model is normally forward engineered to instantiate the structural metadata into a database management system as relational database objects such as database tables, database indexes such as unique key indexes, and database constraints such as a foreign key constraint or a commonality constraint. The ER model is also normally used to design modifications to the relational database objects and to maintain the structural metadata of the database.

Diagramming Conventions



Various methods of representing the same one to many relationship. In each case, the diagram shows the relationship between a person and a place of birth: each person must have been born at one, and only one, location, but each location may have had zero or more people born at it. Two related entities shown using Crow's Foot notation. In this example, an optional relationship is shown between Artist and Song; the symbols closest to the song entity represents "zero, one, or many", whereas a song has "one and only one" Artist. The former is therefore read as, an Artist (can) perform(s) "zero, one, or many" song(s). Chen's notation for entityrelationship modeling uses rectangles to represent entity sets, and diamonds to represent relationships appropriate for first-class objects: they can have attributes and relationships of their own. If an entity set participates in a relationship set, they are connected with a line. Attributes are drawn as ovals and are connected with a line to exactly one entity or relationship set. Cardinality constraints are expressed as follows: a double line indicates a participation constraint, totality or surjectivity: all entities in the entity set must participate in at least one relationship in the relationship set; an arrow from entity set to relationship set indicates a key constraint, i.e. injectivity: each entity of the entity set can participate in at most one relationship in the relationship set; a thick line indicates both, i.e. bijectivity: each entity in the entity set is involved in exactly one relationship. an underlined name of an attribute indicates that it is a key: two different entities or relationships with this attribute always have different values for this attribute. Attributes are often omitted as they can clutter up a diagram; other diagram techniques often list entity attributes within the rectangles drawn for entity sets.


Fig. 5.5 E R DIAGRAM


5.2.5 USECASE DIAGRAM A use case diagram at its simplest is a representation of a user's interaction with the system and depicting the specifications of a use case. A use case diagram can portray the different types of users of a system and the various ways that they interact with the system. This type of diagram is typically used in conjunction with the textual use case and will often be accompanied by other types of diagrams as well.



Attendance Hr Faculty






The stage of planning and development process involves defining, developing, testing, delivering, operating, and maintaining a software product. Different lifecycle models emphasize different aspects and no single lifecycle model is suitable for all software products. A lifecycle model that is understood and accepted improves project communication and enhances project manageability, resource allocation, cost control, and product quality.

The Phased Life Cycle Model

The phased lifecycle model represents software lifecycle as a series of successive activities. The Attendance Monitoring System has requires well-defined input

information, processes and results in well-defined products. The phased lifecycle model consists of following phases. Analysis, Design, Implementation, System Testing and Maintenance

This model is sometimes called the Waterfall Model, the products cascade from one level to another in smooth progression.





System Testing


Planning, User needs Definition Design Details Code, debug and Test Integration & Acceptance Enhance, Fix Adapt

The Analysis Stage consists of Planning and Requirements definition. A feasibility study, developing a recommended solution strategy, determining the acceptance criteria and planning development process. The products of planning are a System definition and a project plan.

The Software Design follows analysis. Design is concerned with its software components, specifying relationships among components specifying some structure, maintaining a record of design decisions and providing blueprint implementation phase. Design consists of detailed design and Architectural design.


The implementation phase of software development involves translation of design specification into source code, and debugging, documenting and unit testing the source code. To enhance the quality of the software the methods are structured control constructs, built in and user defined data types, secure type checking, flexible scope rules exception handling mechanism, concurrency constructs and separates compilation modules.

System Testing involves two kinds of testing integration testing and acceptance testing. Developing a strategy for integrating the components of a software system into a functioning requires careful planning so that modules are available for integration when needed. Acceptance testing involves planning and execution of various tests in order to demonstrate that the implemented system satisfies the requirement document.

The Maintenance phase comes after the acceptance of the product by the customer and release of the system for production work. Maintenance activities include

enhancements of capabilities, adaptation of software to new processing environments, and correction of software bugs. The Online Attendance Monitoring System project follows the Phased Life Cycle Model or the Water Fall model to a large extent.

The analysis stage consisted of listening to the needs and requirements of the examination department obtaining the required format of the system as desired by them, taking the required data to be stored for future use etc., In the design stage the structure of the system was designed and all the required

Screens were formatted. This was then shown to the officers approval and the system was built. Implementation phase was done at PRITHVI INFORMATICS as they provided a computer with all the required software and with required configuration. The coding and debugging was done. Even after this stage certain changes were made as requested by the guide.

The testing was done to check for any errors or bugs or unwanted behaviour in the system. Individual modules as well as the whole system were tested separately.














8.1 BACKEND QUERIES Store procedure for Login

CREATE procedure [dbo].[LoginCheck] (@FacultyName varchar(100),@Password varchar(10),@returnvalue int=0 out) as begin select * from FacultyMaster where FacultyName=@FacultyName and Password=@Password select @returnvalue = @@rowcount end

Store procedure for dashboard

CREATE procedure [dbo].[getdropdown] as begin Select distinct subjectname from SubjectMaster Select distinct semesterid from SubjectMaster end

Store procedure for dashboard

CREATE procedure [dbo].[getStudentDetail] @SemesterId varchar(15) as begin select StudentRollNo,StudentName,FathersName from StudentMaster where SemesterId=@SemesterId order by StudentRollNo end



CONNECTION CLASS using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; using System.Xml; namespace ConnectionClass { public class Class1 { public DataSet getdropdata() { SqlConnection sConn = new SqlConnection(@"server=Sushant-HP; Database=OnlineAttendence;Trusted_connection=TRUE"); SqlCommand sCommand = new SqlCommand(); sConn.Open(); sCommand.CommandText = "getdropdown"; sCommand.CommandType = CommandType.StoredProcedure; sCommand.Connection = sConn; SqlDataAdapter sDataAdapter = new SqlDataAdapter(sCommand); DataSet ds = new DataSet(); sDataAdapter.Fill(ds); return (ds); } public DataSet Authenticate(string strFacultyName, string strPassword) { SqlConnection sConn = new SqlConnection(@"server=Sushant-HP; Database=OnlineAttendence;Trusted_connection=TRUE"); SqlCommand sCommand = new SqlCommand(); sConn.Open(); sCommand.CommandText = "LoginCheck"; sCommand.CommandType = CommandType.StoredProcedure; sCommand.Parameters.Add("@FacultyName", SqlDbType.VarChar, 100); sCommand.Parameters["@FacultyName"].Value = strFacultyName; sCommand.Parameters.Add("@Password", SqlDbType.VarChar, 10); sCommand.Parameters["@Password"].Value = strPassword; sCommand.Parameters.Add("@returnvalue", SqlDbType.Int); sCommand.Parameters["@returnvalue"].Direction = ParameterDirection.Output; sCommand.Parameters["@returnvalue"].Value = 0; sCommand.Connection = sConn; SqlDataAdapter sDataAdapter = new SqlDataAdapter(sCommand);

DataSet ds = new DataSet(); sDataAdapter.Fill(ds); return (ds); } public DataSet getStudentList(string SemesterId) { SqlConnection sConn = new SqlConnection(@"server=Sushant-HP; Database=OnlineAttendence;Trusted_connection=TRUE"); SqlCommand sCommand = new SqlCommand(); sConn.Open(); sCommand.CommandText = "getStudentDetail"; sCommand.CommandType = CommandType.StoredProcedure; sCommand.Parameters.Add("@SemesterId", SqlDbType.VarChar,15); sCommand.Parameters["@SemesterId"].Value = SemesterId; sCommand.Connection = sConn; SqlDataAdapter sDataAdapter = new SqlDataAdapter(sCommand); DataSet ds = new DataSet(); sDataAdapter.Fill(ds); return (ds); }

} }



<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> <h2> Welcome To Online Attendence Monitoring System </h2> <p> Please enter your username and password. <asp:HyperLink ID="RegisterHyperLink" runat="server" EnableViewState="false" NavigateUrl="~/Register.aspx">Register</asp:HyperLink> if you don't have an account. </p> <fieldset class="login"> <legend>Account Information</legend> <p> <asp:Label ID="lblErrMsg" Style="color: Red" runat="server"></asp:Label> </p> <p> <asp:Label ID="FacultyNameLabel" runat="server" AssociatedControlID="FacultyName">Faculty Name:</asp:Label> <asp:TextBox ID="FacultyName" runat="server" CssClass="textEntry"></asp:TextBox> <asp:RequiredFieldValidator ID="FacultyNameRequired" runat="server" ControlToValidate="FacultyName" CssClass="failureNotification" ErrorMessage="Faculty Name is required." ToolTip="Faculty Name is required." ValidationGroup="LoginUserValidationGroup">* Faculty Name is required</asp:RequiredFieldValidator> </p> <p> <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label> <asp:TextBox ID="Password" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox> <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" CssClass="failureNotification" ErrorMessage="Password is required." ToolTip="Password is required." ValidationGroup="LoginUserValidationGroup">* Password is required</asp:RequiredFieldValidator>

</p> <p> <asp:CheckBox ID="RememberMe" runat="server" /> <asp:Label ID="RememberMeLabel" runat="server" AssociatedControlID="RememberMe" CssClass="inline">Keep me logged in</asp:Label> </p> </fieldset> <p class="submitButton"> <asp:Button ID="LoginButton" runat="server" Text="Log In" OnClick="GetData" ValidationGroup="LoginUserValidationGroup" /> </p> </asp:Content>

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; public partial class Login : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { } } protected void GetData(object sender, EventArgs e) { DataSet ds = new DataSet(); ConnectionClass.Class1 oClass1 = new ConnectionClass.Class1(); ds = oClass1.Authenticate(FacultyName.Text, Password.Text); if (ds.Tables[0].Rows.Count > 0) { Session["Facultyname"] = FacultyName.Text; Response.Redirect("DashBoard.aspx"); } else { lblErrMsg.Text = "* The username or password you entered is incorrect."; } } }


<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="DashBoard.aspx.cs" Inherits="DashBoard" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> <h2> Dashboard welcomes you </h2> <div style="text-align: right;"> <p> <strong>Welcome </strong> <asp:Label ID="lblFacultyName" runat="server"></asp:Label> </p> </div> <p> Please enter the following information </p> <fieldset class="login"> <legend>Information to be filled</legend> <p> <asp:Label ID="SubjectNameLabel" runat="server" AssociatedControlID="SubjectName">Subject Name:</asp:Label> <asp:DropDownList ID="SubjectName" runat="server" Width="220" CssClass="textEntry"> </asp:DropDownList> <asp:RequiredFieldValidator ID="SubjectNameRequired" runat="server" ControlToValidate="SubjectName" CssClass="failureNotification" ErrorMessage="Subject Name is required." ToolTip="Subject Name is required." ValidationGroup="SubmitValidationGroup">*</asp:RequiredFieldValidator> </p> <p> <asp:Label ID="SemesterNoLabel" runat="server" AssociatedControlID="SemesterName">Semester Name:</asp:Label> <asp:DropDownList ID="SemesterName" runat="server" Width="70" CssClass="textEntry"> </asp:DropDownList> <asp:RequiredFieldValidator ID="SemesterNameRequired" runat="server" ControlToValidate="SemesterName" CssClass="failureNotification" ErrorMessage="Subject Name is required." ToolTip="Semester Name is required." ValidationGroup="SubmitValidationGroup">*</asp:RequiredFieldValidator>

</p> <p> <asp:Label ID="LectureNoLabel" runat="server" AssociatedControlID="LectureNo">Lecture No:</asp:Label> <asp:DropDownList ID="LectureNo" runat="server" Width="70" CssClass="textEntry"> <asp:ListItem Text="1" Value="1" /> </asp:DropDownList> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="LectureNo" CssClass="failureNotification" ErrorMessage="Lecture No. is required." ToolTip="Lecture No. is required." ValidationGroup="SubmitValidationGroup">*</asp:RequiredFieldValidator> </p> </fieldset> <p class="submitButton"> <asp:Button ID="SubmitButton" runat="server" Text="Submit" ValidationGroup="SubmitValidationGroup" OnClick="SubmitButton_Click" /> </p> </asp:Content>

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Xml; public partial class DashBoard : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { lblFacultyName.Text = Session["FacultyName"].ToString(); if (!IsPostBack) { ConnectionClass.Class1 oClass1 = new ConnectionClass.Class1(); DataSet dsOut = new DataSet(); dsOut = oClass1.getdropdata(); SubjectName.DataSource = dsOut.Tables[0]; SubjectName.DataTextField = "subjectname"; SubjectName.DataBind(); SemesterName.DataSource = dsOut.Tables[1]; SemesterName.DataTextField = "semesterid";

SemesterName.DataBind(); } } protected void SubmitButton_Click(object sender, EventArgs e) { Session["DashboardData"] = SubjectName.SelectedValue + "|" + GetDropDownSelectedText(ref SubjectName) + "|" + SemesterName.SelectedValue + "|" + GetDropDownSelectedText(ref SemesterName) + "|" + LectureNo.SelectedValue + "|" + GetDropDownSelectedText(ref LectureNo); Response.Redirect("~/Attendance.aspx"); } protected String GetDropDownSelectedText(ref DropDownList drpList) { string strResult = string.Empty; ListItem li = new ListItem(); li = drpList.Items.FindByValue(drpList.SelectedValue); if (li != null) { strResult = li.Text; } return strResult; } }


<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Attendance.aspx.cs" Inherits="Attendance" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> <div> <asp:Menu ID="NavigationMenu" runat="server" CssClass="Menu" EnableViewState="TRUE" IncludeStyleBlock="TRUE" Orientation="Horizontal"> <Items> </Items> </asp:Menu> </div> <h2> Attendance </h2> <div style="text-align: right;"> <p> <strong>Welcome </strong> <asp:Label ID="lblFacultyName" runat="server"></asp:Label> </p> </div> <asp:Panel ID="Panel1" runat="server" GroupingText="Attendance Header" Width="100%"> Today : <asp:Label ID="lblToday" runat="server" Style="color: Black"></asp:Label> &nbsp; &nbsp; Lecture No : <asp:Label ID="lblLectureNo" runat="server" Style="color: Black"></asp:Label> &nbsp; &nbsp; Semester : <asp:Label ID="lblSemester" runat="server" Style="color: Black"></asp:Label> &nbsp; &nbsp; Subject : <asp:Label ID="lblSubject" runat="server" Style="color: Black"></asp:Label> </asp:Panel> <br /> <asp:GridView ID="grdView" runat="server" AutoGenerateColumns="False" Width="100%" OnRowCommand="grdview_Rowcommand" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"> <Columns> <asp:BoundField DataField="StudentRollNo" HeaderText="Roll No." ReadOnly="True" SortExpression="StudentRollNo"> <ItemStyle HorizontalAlign="Center" /> </asp:BoundField>


<asp:BoundField DataField="StudentName" HeaderText="Student Name" SortExpression="StudentName"> <ItemStyle HorizontalAlign="Center" /> </asp:BoundField> <asp:BoundField DataField="FathersName" HeaderText="Fathers Name" ReadOnly="True" SortExpression="FathersName"> <ItemStyle HorizontalAlign="Center" /> </asp:BoundField> <asp:TemplateField HeaderText="Attendance"> <ItemTemplate> <asp:RadioButton ID="rbPresent" runat="server" Checked="True" GroupName="g1" Text="Present" /> <asp:RadioButton ID="rbAbsent" runat="server" GroupName="g1" Text="Absent" /> <asp:RadioButton ID="rbLeave" runat="server" GroupName="g1" Text="Leave" /> </ItemTemplate> <ItemStyle HorizontalAlign="Center" /> </asp:TemplateField> <asp:TemplateField HeaderText="Remarks"> <ItemTemplate> <asp:TextBox ID="txtRemarks" runat="server"></asp:TextBox> </ItemTemplate> <ItemStyle HorizontalAlign="Center" /> </asp:TemplateField> </Columns> </asp:GridView> <br /> <div style="text-align: right;"> <asp:Button ID="btnSubmit" runat="server" Text="Submit" Width="131px" OnClick="btnSubmit_Click" /><br /> <asp:Label ID="lblMsg" runat="server"></asp:Label> </div> <br /> </asp:Content>

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Text; using System.Data.SqlClient;

using System.Xml; public partial class Attendance : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { lblFacultyName.Text = Session["FacultyName"].ToString(); if (!IsPostBack) { MenuItem ChangePassword = new MenuItem(); ChangePassword.Text = "Change Password"; ChangePassword.NavigateUrl = "~/ChangePassword.aspx"; NavigationMenu.Items.Add(ChangePassword); MenuItem OldAttendance = new MenuItem(); OldAttendance.Text = "Old Attendance"; OldAttendance.NavigateUrl = "~/OldAttendance"; NavigationMenu.Items.Add(OldAttendance);

MenuItem FacultyList = new MenuItem(); FacultyList.Text = "Faculty List"; FacultyList.NavigateUrl = "~/FacultyList"; NavigationMenu.Items.Add(FacultyList);

lblToday.Text = System.DateTime.Now.ToShortDateString(); if (Session["DashboardData"] != null) { string[] strData = Session["DashboardData"].ToString().Split("|".ToCharArray()); lblSubject.Text = strData[1]; lblSemester.Text = strData[3]; lblLectureNo.Text = strData[5]; getStudentList(strData[2]); } } } protected void getStudentList(string SemesterId) { DataSet ds = new DataSet(); ConnectionClass.Class1 oClass1 = new ConnectionClass.Class1(); ds = oClass1.getStudentList(SemesterId); grdView.DataSource = ds; grdView.DataBind(); }

protected void grdview_Rowcommand(object sender, GridViewCommandEventArgs e) { }

protected void btnSubmit_Click(object sender, EventArgs e) { // get details from Gridview string Status, Remarks; SqlConnection con = new SqlConnection(@"server=SushantHP;Database=OnlineAttendence;Trusted_Connection=TRUE"); SqlTransaction trans = null; try { con.Open(); trans = con.BeginTransaction(); SqlCommand cmd = new SqlCommand("insert into Masters values(@FacultyName,@Date,@LectureNo,@Semester,@Subject,@RollNo,@Stude ntName,@Attendance,@Remarks)", con); cmd.Transaction = trans; cmd.Parameters.Add("@FacultyName", SqlDbType.VarChar, 100).Value = Session["FacultyName"].ToString(); cmd.Parameters.Add("@Date", SqlDbType.DateTime).Value = lblToday.Text; cmd.Parameters.Add("@LectureNo", SqlDbType.Int).Value = Int32.Parse(lblLectureNo.Text); cmd.Parameters.Add("@Semester", SqlDbType.VarChar, 15).Value = lblSemester.Text; cmd.Parameters.Add("@Subject", SqlDbType.VarChar,30).Value=lblSubject.Text; cmd.Parameters.Add("@RollNo", SqlDbType.BigInt); cmd.Parameters.Add("@StudentName", SqlDbType.VarChar, 100); cmd.Parameters.Add("@Attendance", SqlDbType.Char, 1); cmd.Parameters.Add("@Remarks", SqlDbType.VarChar, 100); RadioButton rb; foreach (GridViewRow r in grdView.Rows) { Remarks = ""; Status = "L"; rb = (RadioButton)r.FindControl("rbPresent"); if (rb.Checked) Status = "P"; else { rb = (RadioButton)r.FindControl("rbAbsent"); if (rb.Checked) Status = "A";

else { TextBox t = (TextBox)r.FindControl("txtRemarks"); Remarks = t.Text; } } cmd.Parameters["@RollNo"].Value = r.Cells[0].Text; cmd.Parameters["@StudentName"].Value = r.Cells[1].Text; cmd.Parameters["@Attendance"].Value = Status; cmd.Parameters["@Remarks"].Value = Remarks; cmd.ExecuteNonQuery(); } trans.Commit(); lblMsg.Text = "Attendance stored successfully!"; } catch (Exception ex) { trans.Rollback(); lblMsg.Text = "Error ->" + ex.Message; } finally { con.Close(); } }
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { }


<%@ Page Title="Change Password" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="ChangePassword.aspx.cs" Inherits="ChangePassword" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> <h2> Change Password </h2> <p> Please enter your old and new password. </p> <fieldset class="login"> <legend>Account Information</legend> <p> <asp:Label ID="OldPasswordLabel" runat="server" AssociatedControlID="OldPassword">Old Password:</asp:Label> <asp:TextBox ID="OldPassword" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="OldPassword" CssClass="failureNotification" ErrorMessage="Old Password is required." ToolTip="Old Password is required." ValidationGroup="PasswordUserValidationGroup">*</asp:RequiredFieldValidator> </p> <p> <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">New Password:</asp:Label> <asp:TextBox ID="Password" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox> <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" CssClass="failureNotification" ErrorMessage="New Password is required." ToolTip="New Password is required." ValidationGroup="PasswordUserValidationGroup">*</asp:RequiredFieldValidator> </p> <p> <asp:Label ID="ConfirmPasswordLabel" runat="server" AssociatedControlID="ConfirmPassword">Confirm Password:</asp:Label> <asp:TextBox ID="ConfirmPassword" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="ConfirmPassword"

CssClass="failureNotification" ErrorMessage="Confirm Password is required." ToolTip="Confirm Password is required." ValidationGroup="PasswordUserValidationGroup">*</asp:RequiredFieldValidator> </p> </fieldset> <p class="submitButton"> <asp:Button ID="ChangeButton" runat="server" Text="Change" ValidationGroup="PasswordUserValidationGroup" /> </p> </asp:Content>



Software Testing is a critical element of software quality assurance and represents the ultimate review of specification, design and coding, Testing presents an interesting anomaly for the software engineer.

Testing Objectives include:

1. Testing is a process of executing a program with the intent of finding an error 2. A good test case is one that has a probability of finding an as yet undiscovered error 3. A successful test is one that uncovers an undiscovered error

Testing Principles:

All tests should be traceable to end user requirements Tests should be planned long before testing begins Testing should begin on a small scale and progress towards testing in large Exhaustive testing is not possible To be most effective testing should be conducted by a independent third party



A Strategy for software testing integrates software test cases into a series of well planned steps that result in the successful construction of software. Software testing is a broader topic for what is referred to as Verification and Validation. Verification refers to the set of activities that ensure that the software correctly implements a specific function. Validation refers he set of activities that ensure that the software that has been built is traceable to customers requirements

Unit Testing:

Unit testing focuses verification effort on the smallest unit of software design that is the module. Using procedural design description as a guide, important control paths are tested to uncover errors within the boundaries of the module. The unit test is normally white box testing oriented and the step can be conducted in parallel for multiple modules.

Integration Testing:

Integration testing is a systematic technique for constructing the program structure, while conducting test to uncover errors associated with the interface. The objective is to take unit tested methods and build a program structure that has been dictated by design.

Top-down Integration:

Top down integrations is an incremental approach for construction of program structure. Modules are integrated by moving downward through the control

hierarchy, beginning with the main control program. Modules subordinate to the main program are incorporated in the structure either in the breath-first or depth-first manner.


Bottom-up Integration:

This method as the name suggests, begins construction and testing with atomic modules i.e., modules at the lowest level. Because the modules are integrated in the bottom up manner the processing required for the modules subordinate to a given level is always available and the need for stubs is eliminated.

Validation Testing:

At the end of integration testing software is completely assembled as a package. Validation testing is the next stage, which can be defined as successful when the software functions in the manner reasonably expected by the customer. Reasonable expectations are those defined in the software requirements specifications. Information contained in those sections form a basis for validation testing approach.

System Testing: System testing is actually a series of different tests whose primary purpose is to fully exercise the computer-based system. Although each test has a different purpose, all work to verify that all system elements have been properly integrated to perform allocated functions.

Security Testing: Attempts to verify the protection mechanisms built into the system.

Performance Testing: This method is designed to test runtime performance of software within the context of an integrated system.



The Attendance Monitoring System is developed using Visual Basic.NET fully meets the objectives of the system which it has been developed. The system has reached a steady state where all bugs have been eliminated. The system is operated at a high level of efficiency and all the teachers and user associated with the system understands its advantage. The system solves the problem. It was intended to solve as requirement specification.


1. The complete Reference Visual Basic.NET

2. Beginning VB.NET (Wrox Publication) 3. System Analysis and Design Alias M. Awad 4. Software Engineering Roger Pressman