Attendance Monitoring System Ams

Print   

02 Nov 2017

Disclaimer:
This essay has been written and submitted by students and is not an example of our work. Please click this link to view samples of our professional work witten by our professional essay writers. Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of EssayCompany.

Abstract

This report is about the college attendance system and how we changed it from the traditional way to a new way. We will explain our solution AMS (Attendance Monitoring System ) which is designed for making attendance processes easy and simple for each of student, teacher, and registration officers, by providing them with a smart web system.

AMS helps teachers in recording students attendance by making the processes more easily and accurate, helps students to find their attendance report easily, and helps registration officers to view students and courses attendance reports efficiently.

In this documentation we discuss:

AMS advantages (Chapter 1: Attendance Monitoring System Introduction) and displays the main ideas of the project.

AMS Background (Chapter 2 AMS Background) and descript the methodology, tools, standards, languages, algorithms, and techniques that are used in the project.

AMS Analysis and Design (Chapter 3: AMS Specification and Design) which display the current system problems and the analyses diagrams for the new system like DFD, ERD, and Use case Diagram. It also shows a screen shots of the system user interface pages, with explanation for each page to remove any ambiguity in using the system

AMS implementation (Chapter 4: AMS Implementation) to show the technologies we used in this project and explain the work of AJAX with ASP.Net pages using samples of our implementation codes with explanation.

AMS testing (Chapter 5: AMS Testing) Description of the testing strategy adopted and results.

Table of Contents

Table of Figures

Chapter 1:

ATTENDANCE MONITORING SYSTEM

Introduction

CHAPTER 1: AMS Introduction

1.1 Overview

The teachers and registration staff west a lot of time in recording and monitoring the attendance of students for the courses and cannot keep the attendance recording processes flow run easy and fast.

They face some problems related to time delay, human mistakes, and service quality, which affect negatively on MIT educational system.

1.1.1 Current Attendance System problems

The current attendance system runs manually. The teacher has sheets of papers includes students’ names for his class at different levels in the semester. This manual process causes a lot of problems like:

Time delay.

Huge effort to produce an attendance report for all the students and courses.

Papers storage size problem.

Human mistakes in recording and calculations.

Staffs need a way to can:

Monitor students’ attendance accurately.

Reduce human mistakes.

Eliminate paperwork time consuming.

Generate attendance reports easily.

Avoid conflicts.

1.1.2 The Solution

To solve and overcome the previous problems, we develop an Electronic system AMS which reduce the time, effort, and mistakes, increase attendance process efficiency, and improve the current paper work flow.

1.2 What is "Attendance Monitoring System (AMS)"?

AMS is a web based system provides teaching and Admin staffs with:

The Ability to display the semester timetable.

The Ability to display the students names in each class.

Produce an electronic Attendance sheet to record each student attendance status.

The Ability to print or export the attendance sheet.

Reporting tool to generate attendance reports for each student, course, or semester.

Alarming tool for the students whose attendance percentage in a course is less than the minimum requirements.

1.3 AMS Key Features

Security and Access Roles

Every user in AMS has its own scope. Security access hides the particular area of the application that the user does not have access rights to it. For example, the teacher can login to the system with his own account to see only his classes and record the students’ attendance. While the admin can see and edit all classes when he login with his account.

Fully graphical Interface

User can control the interface by using a theme he likes.

Data warehouse

Every student has a huge data in his file on the system with all details about his attendance status at lectures, tutorials and workshops in all semesters.

Reports .

Admin can generate many types of reports based on the data stored in the data warehouse.

1.4 Technological background

AMS is produced by one of latest web development technologies. We Used ASP.Net, C#, and AJAX technologies:

1.4.1 ASP.Net

ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites, web applications and web services.

1.4.2 C#

C# is a multi-paradigm programming language encompassing imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplinesMySQL is the most popular open-source database system.

1.4.3 AJAX

Asynchronous JavaScript and XML, is a group of interrelated web development techniques used to create interactive web applications or rich Internet applications. With Ajax, web applications can retrieve data from the server asynchronously in the background without interfering with the display and behaviour of the existing page. The use of Ajax has led to an increase in interactive animation on web pages.

Some larger scale examples of Ajax are Google Maps and Microsoft Virtual Earth.

1.5 Implementation Plan

To implement the system I followed the following development phases:

1.5.1 Requirements Analysis

Define the functional user requirements formally defined and delineate the requirements in terms of data, system performance, security, and maintainability requirements for the system. Define all requirements to a level of detail sufficient for systems design to proceed. All requirements need to be measurable and testable and relate to the business need.

1.5.2 Design

Design the physical characteristics of the system. Established the operating environment, design the database schema, define the major subsystems and their inputs and outputs, and allocate the processes to resources.

1.5.3 Implementation and Testing

Translate the detailed specifications produced during the design phase into hardware, communications, and executable software. Software shall be unit tested, integrated with other systems, and retested in a systematic manner.

See Appendix A: Implementation Chart

Chapter 2:

ATTENDANCE MONITORING SYSTEM

Background

CHAPTER 2: AMS Background

2.1 Software Development Methodologies:

Every software development methodology framework acts as a basis for applying specific approaches to develop and maintain software. Several software development approaches have been used since the origin of information technology. These are:

Waterfall: a linear framework

Prototyping: an iterative framework

Incremental: a combined linear-iterative framework

Spiral: a combined linear-iterative framework

2.1.1 Waterfall development

The Waterfall model is a sequential development approach, in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis, design, implementation, testing (validation), integration, and maintenance. The first formal description of the method is often cited as an article published by Winston W. Royce in 1970 although Royce did not use the term "waterfall" in this article.

The basic principles are:

Project is divided into sequential phases, with some overlap and splashback acceptable between phases.

Emphasis is on planning, time schedules, target dates, budgets and implementation of an entire system at one time.

Tight control is maintained over the life of the project via extensive written documentation, formal reviews, and approval/signoff by the user and information technology management occurring at the end of most phases before beginning the next phase.

2.1.2 Prototyping

Software prototyping, is the development approach of activities during software development, the creation of prototypes, i.e., incomplete versions of the software program being developed.

The basic principles are

Not a standalone, complete development methodology, but rather an approach to handling selected parts of a larger, more traditional development methodology (i.e. incremental, spiral, or rapid application development (RAD)).

Attempts to reduce inherent project risk by breaking a project into smaller segments and providing more ease-of-change during the development process.

User is involved throughout the development process, which increases the likelihood of user acceptance of the final implementation.

Small-scale mock-ups of the system are developed following an iterative modification process until the prototype evolves to meet the users’ requirements.

While most prototypes are developed with the expectation that they will be discarded, it is possible in some cases to evolve from prototype to working system.

A basic understanding of the fundamental business problem is necessary to avoid solving the wrong problem.

2.1.3 Incremental development

Various methods are acceptable for combining linear and iterative systems development methodologies, with the primary objective of each being to reduce inherent project risk by breaking a project into smaller segments and providing more ease-of-change during the development process.

The basic principles are:

A series of mini-Waterfalls are performed, where all phases of the Waterfall are completed for a small part of a system, before proceeding to the next increment, or

Overall requirements are defined before proceeding to evolutionary, mini-Waterfall development of individual increments of a system, or

The initial software concept, requirements analysis, and design of architecture and system core are defined via Waterfall, followed by iterative Prototyping, which culminates in installing the final prototype, a working system.

2.1.4 Spiral development

The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. It is a meta-model, a model that can be used by other models.

The basic principles are:

Focus is on risk assessment and on minimizing project risk by breaking a project into smaller segments and providing more ease-of-change during the development process, as well as providing the opportunity to evaluate risks and weigh consideration of project continuation throughout the life cycle.

"Each cycle involves a progression through the same sequence of steps, for each part of the product and for each of its levels of elaboration, from an overall concept-of-operation document down to the coding of each individual program."

Each trip around the spiral traverses four basic quadrants: (1) determine objectives, alternatives, and constraints of the iteration; (2) evaluate alternatives; Identify and resolve risks; (3) develop and verify deliverables from the iteration; and (4) plan the next iteration.

Begin each cycle with an identification of stakeholders and their win conditions, and end each cycle with review and commitment.

2.2 Selected Methodology

In this project I used the waterfall methodology and follow the software development life cycle phases. In other words, I collect the requirements from the users, analysed it and built the analysis diagrams, then designed the database schema and tables. After that, I design the user Interface for the application, then implement the classes and methods which represent the system main functionality. Lastly, I implement the validation features and tested the system functionality, performance and usability.

2.3 Tools & Technologies:

2.3.1 ASP.Net

Overview

ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites, web applications and web services. It was first released in January 2002 with version 1.0 of the .NET Framework, and is the successor to Microsoft's Active Server Pages (ASP) technology. ASP.NET is built on the Common Language Runtime (CLR), allowing programmers to write ASP.NET code using any supported .

When the ASP.NET code has been processed, the server returns the resultant HTML to the client. If the client supports JavaScript, then the server will use it to make the clients browser experience quicker and easier. Even with HTML being the limiting factor here, ASP.NET still manages to bring true OOP (Object Oriented Programming) to the Internet.

ASP.NET makes it simple to use XML for data storage, configuration and manipulation. The tools which are built into ASP.NET for working with XML are very easy to use. XML is excellent for storing information that rarely changes, because you can just cache that information in the computer’s memory after it has been initially extracted. ASP.NET includes an enormous class library which was built by Microsoft. Because this class library is so large, it encapsulates a huge number of common functions.

Advantages Using ASP.NET

ASP.NET drastically reduces the amount of code required to build large applications

ASP.NET makes development simpler and easier to maintain with an event-driven, server-side programming model

ASP.NET pages are easy to write and maintain because the source code and HTML are together

The source code is executed on the server. The pages have lots of power and flexibility by this approach

The source code is compiled the first time the page is requested. Execution is fast as the Web Server compiles the page the first time it is requested. The server saves the compiled version of the page for use next time the page is requested

The HTML produced by the ASP.NET page is sent back to the browser. The application source code you write is not sent and is not easily stolen

ASP.NET makes for easy deployment. There is no need to register components because the configuration information is built-in

The Web server continuously monitors the pages, components and applications running on it. If it notices memory leaks, infinite loops, other illegal software or activities, it seamlessly kills those activities and restarts itself

ASP.NET validates information (validation controls) entered by the user without writing a single line of code

ASP.NET easily works with ADO .NET using data-binding and page formatting features

ASP.NET applications run faster and counters large volumes of users without performance problems

Differences between ASP.NET and Client-Side Technologies

Client-side refers to the browser and the machine running the browser. Server-side on the other hand refers to a ASP hosting Web server.

Client-Side Scripting

JavaScript and VBScript and generally used for Client-side scripting. Client-side scripting executes in the browser after the page is loaded. Using client-side scripting you can add some cool features to your page. Both, HTML and the script are together in the same file and the script is download as part of the page which anyone can view. A client-side script runs only on a browser that supports scripting and specifically the scripting language that is used. Since the script is in the same file as the HTML and as it executes on the machine you use, the page may take longer time to download.

Server-Side Scripting

ASP.NET is purely server-side technology. ASP.NET code executes on the server before it is sent to the browser. The code that is sent back to the browser is pure HTML and not ASP.NET code. Like client-side scripting, ASP.NET code is similar in a way that it allows you to write your code alongside HTML. Unlike client-side scripting, ASP.NET code is executed on the server and not in the browser. The script that you write alongside your HTML is not sent back to the browser and that prevents others from stealing the code you developed.

2.3.2 ADO.Net

Overview

ADO.NET is a set of computer software components that programmers can use to access data and data services. It is a part of the base class library that is included with the Microsoft .NET Framework. It is commonly used by programmers to access and modify data stored in relational database systems, though it can also access data in non-relational sources. ADO.NET is sometimes considered an evolution of ActiveX Data Objects (ADO) technology, but was changed so extensively that it can be considered an entirely new product.

The ADO.NET Data Architecture

Data Access in ADO.NET relies on two components: DataSet and Data Provider.

DataSet

The dataset is a disconnected, in-memory representation of data. It can be considered as a local copy of the relevant portions of the database. The DataSet is persisted in memory and the data in it can be manipulated and updated independent of the database. When the use of this DataSet is finished, changes can be made back to the central database for updating. The data in DataSet can be loaded from any valid data source like Microsoft SQL server database, an Oracle database or from a Microsoft Access database.

Data Provider

The Data Provider is responsible for providing and maintaining the connection to the database. A DataProvider is a set of related components that work together to provide data in an efficient and performance driven manner. The .NET Framework currently comes with two DataProviders: the SQL Data Provider which is designed only to work with Microsoft's SQL Server 7.0 or later and the OleDb DataProvider which allows us to connect to other types of databases like Access and Oracle. Each DataProvider consists of the following component classes:

The Connection object which provides a connection to the database

The Command object which is used to execute a command

The DataReader object which provides a forward-only, read only, connected recordset

The DataAdapter object which populates a disconnected DataSet with data and performs update

2.3.3 AJAX

Overview:

Ajax shorthand for asynchronous JavaScript and XML is a group of interrelated web development methods used on the client-side to create interactive web applications. With Ajax, web applications can retrieve data from the server asynchronously in the background without interfering with the display and behavior of the existing page. Data is usually retrieved using the XMLHttpRequest object.

The Ajax engine works within the Web browser (through JavaScript and the DOM) to render the Web application and handle any requests that the customer might have of the Web server. The beauty of it is that because the Ajax engine is handling the requests, it can hold most information in the engine itself, while allowing the interaction with the application and the customer to happen asynchronously and independently of any interaction with the server.

With Ajax, the JavaScript that is loaded when the page loads handles most of the basic tasks such as data validation and manipulation, as well as display rendering the Ajax engine handles without a trip to the server. At the same time that it is making display changes for the customer, it is sending data back and forth to the server. But the data transfer is not dependent upon actions of the customer.

Advantages of AJAX

The advantages of AJAX over classical web-based applications include:

Asynchronous calls — AJAX allows for the ability to make asynchronous calls to a web server. This allows the client browser to avoid waiting for all data to arrive before allowing the user to act once more.

Minimal data transfer — By not performing a full postback and sending all form data to the server, network utilization is minimized and quicker operations occur. In sites and locations with restricted pipes for data transfer, this can greatly improve network performance.

Limited processing on the server — Along with the fact that only the necessary data is sent to the server, the server is not required to process all form elements. By sending only the necessary data, there is limited processing on the server. There is no need to process all form elements, process the ViewState, send images back to the client, or send a full page back to the client.

Responsiveness—Because AJAX applications are asynchronous on the client, they are perceived to be very responsive.

The Ajax Control Toolkit contains a rich set of controls that you can use to build highly responsive and interactive Ajax-enabled ASP.NET Web Forms applications. Follow the steps below to download and start using the Ajax Control Toolkit with Visual Studio.

2.3.4. C#

Overview:

C# is a multi-paradigm programming language encompassing imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines. C#, as part of the .NET framework, is compiled to Microsoft Intermediate Language (MSIL), which is a language similar to Java's bytecode. MSIL allows C# to be platform independent and runs using just in time compiling. Therefore programs running under .NET gain speed with repeated use. Furthermore, because the other languages that make up the .NET platform (including VB and Cobol) compile to MSIL, it is possible for classes to be inherited across languages. The MSIL, like bytecode, is what allows C# to be platform independent.

The potential for C# is great if the .NET platform succeeds. C# is designed to take advantage of the design of .NET.

Advantages of C#

It is compiled to an intermediate language (CIL) indepently of the language it was developed or the target architecture and operating system

Automatic garbage collection

Pointers no longer needed (but optional)

Reflection capabilities

Don't need to worry about header files ".h"

Definition of classes and functions can be done in any order

Declaration of functions and classes not needed

Unexisting circular dependencies

Classes can be defined within classes

There are no global functions or variables, everything belongs to a class

All the variables are initialized to their default values before being used (this is automatic by default but can be done manually using static constructors)

You can't use non-boolean variables (integers, floats...) as conditions. This is much more clean and less error prone

Apps can be executed within a restricted sandbox

Chapter 3:

ATTENDANCE MONITORING SYSTEM

Specification and Design

Chapter 3: Specification and Design

System analysis is the part of the system development life cycle in which determines how the current information system functions and assesses what users would like to see in a new system.

3.1 Current Attendance System Analysis

When we analyzed the old system we found that teachers see it difficult because there are a lot of steps that they have to do to finish students’ attendance process.

Generate Attendance sheets for his classes

Mark the attendees for each lecture.

At the end of the semester, or when required, he calculate the attendance percentage for each student.

Admin also calculate the attendance percentage for each student and course.

They also faced the following problems:

Mistakes in calculating attendance personage for both students and courses.

Time consuming.

3.2 Attendance Monitoring System Analysis

Our goal now is developing a smart system which used by registration and teachers to makes the attendance process flow very clear and easy. I will display the analysis by diagrams like DFD, ERD, and use case diagram as following.

3.2.1 Data Flow Diagram (DFD)

DFD is focus on representation of how the system will operates. It illustrates the processes and how moves among them. During the analysis phase we created context data flow diagram to show the flow of data and external entities in the system. Level 0 DFD is a data flow diagram that represents the system major processes at high level of details.

Figure : Admin DFD

Figure : Teacher DFD

3.2.2 Entity Relationship Diagram (ERD)

Relationships are the glue that holds together the various components of an E-R Model. A Relationship is an association between the instances of one or more entity types that is of interest to the organization. An association usually means that events has occurred or that there exits some natural linkage between entity instances.

ERD

Figure : ERD Diagram

Tables Definitions

Classes Table:

Store Classes information which the time table based on. This table consists of:

ClassNo(Number, Represents the Class Reference No)

Course No (Number, Represents the Course Reference No)

Teacher ID (Number, Represents the Teacher Reference No.)

Location No (Number, Represents the Course Location Reference No.)

StartDate(Date, Represents the Class Start Date)

NoOfWeeks (Number, Represents the number of weeks of the class)

WeekDay (Text, Represents the Class Week day)

StartTime (Date/Time, Represents the Class Start Time.)

NoOfHours(Number, Represent the number of class hours)

Status (Text, Represents the Class activation status.)

ClassType(Text, Represent the type of the class)

Students Table:

Store the information of the student who will register for semester classes. Consists of:

TeacherID (Number, Represents the teacher no)

TeacherName (Text, Represents the full Name)

Phone (Text, Represents the teacher phone)

E-Mail (Text, Represents the teacher E-Mail)

Teacher Table:

Store the information of Teachers who. Consists of:

StudentID (Number, Represents the student no)

StudentName (Text, Represents the full Name)

Phone (Text, Represents the student phone)

E-Mail (Text, Represents the student E-Mail)

Courses Table:

Store the information of all courses for all semesters and years to be used by the admin in creating the schedule. Consists of:

CourseNo ( Number, Represents the course no)

CourseName (Text, Represents the course name)

CourseType (Text, Represents the course type)

Level (Number, Represents the course level)

Semester (Text, Represents the course semester)

Locations Table:

Store the information of all halls and rooms. Consists of:

SN ( Number, Represents the location reference no)

Location (Text, Represents the location name)

Attendance Table:

Store the attendance status for students. Consists of:

Ref (Number, Represents attendance reference no)

ClassNo (Number, Represents the Class ID No)

WeekNo (Number, Represents the class week no)

WeekDate (Date/time, Represents the class date)

StudentID (Number, Represents the student ID)

Attend (Number, Represent the attend status)

Users Table:

Store system users account information. Consists of:

ID (Number, Represents the User ID)

FullName (Text, Represents the User name)

Password (Text, Represents the User login password)

Type (Text, Represents user role (Admin, Teacher))

3.2.3 Use Case Diagram

Use case diagram

Figure : Use Case Diagram

Use Case Scenario

Admin access the system with his/her account (User name & Password) and view all classes schedule for all levels, He also can add, edit remove, teachers, students, courses and classes to the system. Moreover, the admin view the attendance reports for students and classes

Teacher access the system with his/her account (User name & Password) and see his classes schedule. He also edit his classes’ students’ attendance status.

3.3 User Interface Design

AMS has a friendly graphical user interface, reach which many features. The system menu items differ according to the user role in the system.

3.3.1 AMS Login Page

Figure : Login Page

The Login page allows users to access their pages using their ID and password. If the login information is invalid, the page will display an error message, otherwise the user will login. According to the user account access role, the page will automatically redirect him to his suitable home page.

3.3.2 Admin Role

Figure : Admin Site Menu

The Admin Home page has Six menu items, TimeTable which navigate to TimeTable page that shows classes schedule for all levels and semesters, LogOut to logout from the system and return to login page, Teachers which displays Teachers list, Courses which displays courses list, Students which displays students list, and Users which displays system users information .

TimeTable Page

Figure : Admin TimeTable Page

The default home page for the Admin access role is the TimeTable Page. By the TimeTable page, the Admin can view the classes schedule for each level and semester by simples clicks. To change the level and semester the user can easily select from the compo boxes the wanted level and semester then click on "Show Time Table" button. Thanks to AJAX technology which directly update the information without the need for reload the entire page.

The TimeTable shows the classes according to the week day and time, the class information include Course name, class type, and teacher name. When Admin click on any class, it navigates to the Student Attendance Report for the selected class. See Figure 8: Student Attendance Report.

In-addition, Admin can add new class to the time table by clicking on "Add New Class" icon. Thanks to AJAX Toolkit which displays a modal dialog on the same page, instead of navigating to another page, to display "add new class" form. See Figure 9: Add New Class Form.

Figure : Student Attendance Report

.

Figure : Add New Class Form

Teachers Page

Figure : Teachers Page

The Admin can view teacher’s information, add new teacher, edit their information, or delete them through Teachers page. The Admin can edit this information and it updated directly into database by ADO.Net and AJAX.

Course Page

Figure : Course Page

The Admin can also view Courses information, add new course, edit their information, or delete them through Course page. The Admin can edit this information and it updated directly into database by ADO.Net and AJAX.

Students Page

Figure : Teachers Page

The Admin can view students’ information, add new student, edit their information, or delete them through Students page. The Admin can edit this information and it updated directly into database by ADO.Net and AJAX. Moreover, Admin can click on "Report" icon to display "Course Attendance Report" for the selected student. See Figure 13: Courses Attendance Report.

Figure : Courses Attendance Report

Users Page

Figure : Users Page

The Admin can view users’ information, add new user, edit their information, or delete them through Teachers page. The Admin can edit this information and it updated directly into database by ADO.Net and AJAX.

3.3.3 Teacher Role

Figure : Teacher Site Menu

The Admin Home page has two menu items, TimeTable which navigates to TimeTable page that shows classes schedule for all levels and semesters, LogOut to logout from the system and return to login page.

TimeTable Page

Figure : Teacher TimeTable Page

The default home page for the Teacher access role is the TimeTable Page. By the TimeTable page, the Teacher can view his classes schedule in each level and semester by simples clicks. To change the level and semester the user can easily select from the compo boxes the wanted level and semester then click on "Show Time Table" button. Thanks to AJAX technology which directly update the information without the need for reload the entire page.

The TimeTable shows only the logged in teacher classes according to the week day and time, the class information include Course name, class type, and teacher name. When Teacher click on any class, it navigates to the Attendance Sheet for the selected class. See Figure 17: Attendance Sheet. In Attendance Sheet, teacher can select the wanted week and mark the attended students then Click on "Save Changes" button.

Figure : Attendance Sheet

.

Chapter 4:

ATTENDANCE MONITORING SYSTEM

Implementation

Chapter 4: AMS Development and Implementation

System Implementation is made of many activities like coding, testing, installation and support.

4.1 AJAX

Coding is the process whereby the physical design specification created

4.1.1 AJAX as Technology

AJAX (Asynchronous JavaScript and XML) is not a new programming language, but a new technique for creating better, faster, and more interactive web applications.

With AJAX, a JavaScript can communicate directly with the server, with the XMLHttpRequest object. With this object, a JavaScript can trade data with a web server, without reloading the page.

AJAX uses asynchronous data transfer (HTTP requests) between the browser and the web server, allowing web pages to request small bits of information from the server instead of whole pages.

The AJAX technique makes Internet applications smaller, faster and more user-friendly. AJAX applications are browser and platform-independent. With AJAX, Internet applications can be made richer and more user-friendly.

AJAX is based on the following web standards:

JavaScript

XML

HTML

CSS

To get or send information from/to a database or a file on the server with traditional JavaScript, you will have to make an HTML form, and a user will have to click the "Submit" button to send/get the information, wait for the server to respond, then a new page will load with the results. Because the server returns a new page each time the user submits input, traditional web applications can run slowly and tend to be less user-friendly.

With AJAX, JavaScript communicates directly with the server, through the JavaScript XMLHttpRequest object.

Figure : Synchronous Communication

Figure : Asynchronous Communication

With the XMLHttpRequest object, a web page can make a request to, and get a response from a web server - without reloading the page. The user will stay on the same page, and he or she will not notice that scripts request pages, or send data to a server in the background.

4.1.2 Functions Implementation

ASP.Net & AJAX Functions

When some events happen, like(the drop-down box is selected, the table row Clicked, or textbox value changed) the AJAX function executes the following:

Calls the GetXmlHttpObject() function to create an XMLHTTP object

Defines an URL (filename) to send to the server

Adds parameters to the URL with the required data.

Adds a random number to prevent the server from using a cached file

Opens the XMLHTTP object with the given URL

Sends an HTTP request to the server

ASP opens a connection to the database

Select the required data from MYSQL database tables.

Return the HTML response to the browser

An HTML table is created, and filled with data, and sent back to the "contents" placeholder.

4.2 ADO.Net

4.2.1 ADO.Net Concept

ActiveX Data Object (ADO.NET) is the new evolution of ADO technology. In ADO.NET, new objects are introduced like DataSet, DataReader, DataAdapter. In ADO, you need to connect to the database as long as you manipulate the data and then you will close the connection to the database, this will create problem when number of user increases and performance of the database will decrease. To overcome this issues ADO.NET technology is introduced in .NET, which is a disconnected data access model. Once the database is connected and fetches the information and disconnect it. We can able to manipulate the data using many objects provided in ADO.NET. The ADO.NET is designed for the more usage of XML's also. The ADO.NET mainly contains three entities. DataSource, Dataset, DataAdapter.

DataSource - DataSource is the provider of the data, which is database. Using ADO.NET you can able to connect to different data base like MS SQL Server, MYSQL server, Excel etc., MS SQL server will have a separate class library for manipulation of data so the access will be more faster. Where as other database are connected using ODBC and OLEDB class libraries. This class library has a lot of collection of members, using these members you will be able to access the database for various purposes like inserting, retrieving, deleting and more operations can be performed.

DataSet - In simple way we can call DataSet as a mini database. DataSet resides in the memory with cached data, all the manipulation can be done with in the DataSet, Connection to the database or data source can be disconnected after the retrieval of information. DataSet is the collection of data tables which can be interlinked or relate to each other using DataRelation object. You can set the constraints for these DataTable like Unique Key, PrimaryKey. You can retrieve the date from various DataSource like MS SQL Server, XML files etc and fill it in the DataSet. DataSet will have the collection of DataTable's and each DataTable has the number of column in it, where constraint will be defined for each column if necessary. Each row in the DataTable is called as DataRow. So we can say collection of DataRow will represents as DataTable.

DataAdapter - DataAdapter is the intermediater between DataSet and DataSource. Using DataAdapter we can able to fetch the information from DataSource and load it in DataSet. DataAdapter is a separate object in ADO.NET technologies. It has Fill() method that will help to fill the data from DataSource to DataSet. DataAdapter holds four very important properties.

SelectCommand - This property will execute the select query or command text and retrieve the result set in the form of table. Using Fill method you will be able to fill the data in DataSet or DataTable.

InsertCommand - Execute the insert query or command text and insert a row in the table.

DeleteCommand - Execute the insert query or command text and delete single row or multiple rows.

UpdateCommand - Execute the insert query or command text and update single row or multiple rows.

Now we will see few objects in ADO.NET so that it will be more useful while accessing the data from the DataSource

Command Object - Command object will help to execute the command text or store procedures. For executing command object we need to pass the command text and connection string as the parameter. There is few overload method in this command object. The below example will show how to use command object.

Command object has four methods. Before executing the four methods we need to open the database connection and close it after execution.

ExecuteReader, the command object will execute the query and the returned row is loaded in to the DataReader object. The below example shows how to use the ExecuteReader() method.

ExecuteNonQuery, this method will simply execute the command text or query. Here you can do Insert, Update, Delete in the database. The Example show how to use ExecuteNonQuery() method.

ExecuteScalar this will execute the command text or query and return single value from the database. The Example show how to use ExecuteScalar () method

ExecuteXmlReader, this is just like the ExecuteReader, the only difference is the result will be in the form of XmlReader

4.2.2 DataSources Configuration

ADO.Net datasource configure as following:

Add AccessDataSource control from the Data tabe on Toolbox to the web form.

Click on the arrow on right top corner and select Configure Data Source.

Choose the Database from App_Data folder

Build the query

Define the parameters.

Test the query

4.2.3 Functions Implementation

View TimeTable Processes

When the user selects the wanted level and semester and click on "View Time Table", a function called "RunQuery()" is executed. The execution of the function is triggered by the "OnClick" event. The event sends level and semester as parameters to RunQuery function which retrieve the classes from the database and display it according to weekday and time on the table. See Figure 20: TimeTable Code Sample

public DataView RunQuery(string weeday, string hour)

{

AccessDataSource1.SelectParameters[0].DefaultValue = weeday;

AccessDataSource1.SelectParameters[1].DefaultValue= hour;

DataView dv = (DataView)AccessDataSource1.Select(DataSourceSelectArguments.Empty);

return dv;}

<table class="tbl" border=1 cellspacing="0" width="100%">

<%for (int i = 0; i <= 4; i++)

{ %>

<tr height="100">

<td class="lbl" >

<%= days[i].ToString()%></td>

for (int j = 0; j < 9; j++)

{dv = RunQuery(days[i].ToString(), hours[j].ToString());

string span;

if (dv != null && dv.Table.Rows.Count > 0)

span = dv.Table.Rows[0][6].ToString();

else

span = "1";

%>

<td class="data" colspan="<%=span%>" >

<%

if (dv != null && dv.Table.Rows.Count > 0)

if (Session["Role"].ToString() == "Admin")

Response.Write("<a href=Report2.aspx?CNo=" + dv.Table.Rows[0][4].ToString() + ">" + dv.Table.Rows[0][1].ToString() + "<BR><BR>" + dv.Table.Rows[0][2].ToString() + "<BR><BR>" + dv.Table.Rows[0][3].ToString() + "</a>");

else if (Session["Teacher"].ToString() == dv.Table.Rows[0][3].ToString())

Response.Write("<a href=Attendance.aspx?c=" + dv.Table.Rows[0][4].ToString() + ">" + dv.Table.Rows[0][1].ToString() + "<BR><BR>" + dv.Table.Rows[0][2].ToString() + "<BR><BR>" + dv.Table.Rows[0][3].ToString() + "</a>");

else

Response.Write(dv.Table.Rows[0][1].ToString() + "<BR><BR>" + dv.Table.Rows[0][2].ToString() + "<BR><BR>" + dv.Table.Rows[0][3].ToString());

else

Response.Write("-");

%></td><%

j += Convert.ToInt32(span) - 1;

}%></tr> <% } %>

</table>

Figure : TimeTable Code Sample

Reporting Process

When Admin Click on any class entry on the time table, it’s navigates to the attendance report and retrieve number of week for the selected class and the students who joined the class with their attendance to calculate the attendance percentage for each students like the following figure shows:

<table class="tbl" cellpadding="0" cellpadding="0" >

<caption >

<h3>

Student Attendance Report</h3>

<br />

</caption>

<tr><th class="style2">Student No</th><th class="style1">Name</th><th>Attend(%)</th></tr>

<% dv = (System.Data.DataView)CourseDataSource1.Select(DataSourceSelectArguments.Empty);

dv2 = (System.Data.DataView)CourseDataSource2.Select(DataSourceSelectArguments.Empty);

double percnt,att,all;

if (dv != null && dv.Table.Rows.Count > 0)

{

for (int i = 0; i < dv.Table.Rows.Count; i++)

{

att=Convert.ToDouble( dv.Table.Rows[i][2] );

all=Convert.ToDouble( dv2.Table.Rows[i][2] );

percnt = Math.Round((att /all)* 100,2);

%>

<tr><td class="style2"><%= dv2.Table.Rows[i][0].ToString() %></td><td class="style1"><%= dv2.Table.Rows[i][1].ToString() %></td><td><%= percnt %>%</td></tr>

<%} } %>

</table>

Figure : Attendance Report Code Sample

Chapter 5:

ATTENDANCE MONITORING SYSTEM

Testing

Chapter 5: AMS Testing

5.1 Testing Scope

A primary purpose of testing is to detect software failures so that defects may be discovered and corrected. This is a non-trivial pursuit. Testing cannot establish that a product functions properly under all conditions but can only establish that it does not function properly under specific conditions. The scope of software testing often includes examination of code as well as execution of that code in various environments and conditions as well as examining the aspects of code: does it do what it is supposed to do and do what it needs to do. In the current culture of software development, a testing organization may be separate from the development team. There are various roles for testing team members. Information derived from software testing may be used to correct the process by which software is developed.

5.2 Functional vs. non-functional testing

Functional testing refers to activities that verify a specific action or function of the code. These are usually found in the code requirements documentation, although some development methodologies work from use cases or user stories. Functional tests tend to answer the question of "can the user do this" or "does this particular feature work".

Non-functional testing refers to aspects of the software that may not be related to a specific function or user action, such as scalability or other performance, behaviour under certain constraints, or security. Non-functional requirements tend to be those that reflect the quality of the product, particularly in the context of the suitability perspective of its users.

Not all software defects are caused by coding errors. One common source of expensive defects is caused by requirement gaps, e.g., unrecognized requirements, that result in errors of omission by the program designer. A common source of requirements gaps is non-functional requirements such as testability, scalability, maintainability, usability, performance, and security.

Software faults occur through the following processes. A programmer makes an error (mistake), which results in a defect (fault, bug) in the software source code. If this defect is executed, in certain situations the system will produce wrong results, causing a failure Not all defects will necessarily result in failures. For example, defects in dead code will never result in failures. A defect can turn into a failure when the environment is changed. Examples of these changes in environment include the software being run on a new hardware platform, alterations in source data or interacting with different software. A single defect may result in a wide range of failure symptoms.

A common cause of software failure (real or perceived) is a lack of compatibility with other application software, operating systems (or operating system versions, old or new), or target environments that differ greatly from the original (such as a terminal or GUI application intended to be run on the desktop now being required to become a web application, which must render in a web browser). For example, in the case of a lack of backward compatibility, this can occur because the programmers develop and test software only on the latest version of the target environment, which not all users may be running. This results in the unintended consequence that the latest work may not function on earlier versions of the target environment, or on older hardware that earlier versions of the target environment was capable of using. Sometimes such issues can be fixed by proactively abstracting operating system functionality into a separate program module or library.

5.3 Input combinations and preconditions

A very fundamental problem with software testing is that testing under all combinations of inputs and preconditions (initial state) is not feasible, even with a simple product. This means that the number of defects in a software product can be very large and defects that occur infrequently are difficult to find in testing. More significantly, non-functional dimensions of quality (how it is supposed to be versus what it is supposed to do)—usability, scalability, performance, compatibility, reliability—can be highly subjective; something that constitutes sufficient value to one person may be intolerable to another.

There are many approaches to software testing. Reviews, walkthroughs, or inspections are considered as static testing, whereas actually executing programmed code with a given set of test cases is referred to as dynamic testing. Static testing can be (and unfortunately in practice often is) omitted. Dynamic testing takes place when the program itself is used for the first time (which is generally considered the beginning of the testing stage). Dynamic testing may begin before the program is 100% complete in order to test particular sections of code (modules or discrete functions). Typical techniques for this are either using stubs/drivers or execution from a debugger environment. For example, spreadsheet programs are, by their very nature, tested to a large extent interactively ("on the fly"), with results displayed immediately after each calculation or text manipulation.

5.4 ASM Input Validation

In ASM project I create validation for the input form to sure the only correct data can enter to the system. The application displays notification and warning to the user if he tried to enter invalid data.

5.5 HTML and CSS Validation

All AMS pages are valid under W3C standards. I used W3C Validators to validate the asp.net pages and css styles. See figure

Figure : Validation Results

References



rev

Our Service Portfolio

jb

Want To Place An Order Quickly?

Then shoot us a message on Whatsapp, WeChat or Gmail. We are available 24/7 to assist you.

whatsapp

Do not panic, you are at the right place

jb

Visit Our essay writting help page to get all the details and guidence on availing our assiatance service.

Get 20% Discount, Now
£19 £14/ Per Page
14 days delivery time

Our writting assistance service is undoubtedly one of the most affordable writting assistance services and we have highly qualified professionls to help you with your work. So what are you waiting for, click below to order now.

Get An Instant Quote

ORDER TODAY!

Our experts are ready to assist you, call us to get a free quote or order now to get succeed in your academics writing.

Get a Free Quote Order Now