Vous êtes sur la page 1sur 44

FINGER PRINT BASED STUDENTS ATTENDANCE SYSTEMS

ABSTRACT

This project uses a biometric concept to facilitate the attendance system in educational
institutes. It uses the most reliable way of uniquely identifying students through fingerprint
reading. Such type of application is very useful in school as well as in college for daily
attendance. Through this application we can keep a systematic track of student’s attendance.
This project enables the easy way of maintaining class attendance with fewer efforts.
It can be later implemented for the teaching staff. 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 project requires a fingerprint reader for finger
detection. Every student can login to the system through finger detection. The fingerprint of
the student is compared with the one stored in database and if it matches then attendance is
marked for that particular student. The system also generates a brief report of attendance
from the database according to subject-wise or date-wise as required. A defaulter list can be
generated through system. Admin has the option to take a print of the reports and defaulter
list thus generated.
CHAPTER 1
INTRODUCTION
1.1 Using fingerprint recognition system for attendance management
Student academic attendance is very important since it will affect the
students from gaining knowledge and skills as well as their grades. This project
has related about the student attendance system through the matching of their
fingerprint to confirm their attendance. The main purpose of carrying out this
project is to develop a hybrid student attendance system for which desktop-
based application is developed to obtain the attendance of student by fingerprint
and post/review the attendance results using web-based student attendance
system. As we know, there is one and only one fingerprint occurs in the world
for each person which will never has duplication. So, fingerprint attendance
system can be known as the best authentication to detect the individual student
attendance record. In addition, according to the technology nowadays, it is not
unusual anymore to take the attendance of students through their fingerprint.
Nowadays, most universities and colleges are still using the traditional
attendance system which requires student to sign on a piece of paper every time
they attend a class throughout the whole semester. Using the traditional
attendance system, we can obviously see that there are few problems such as it
will be no backup for the attendance records once the lecturer accidentally lost
the attendance sheet, course mate help those who did not attend the class sign
the attendance which also known as buddy-signing as well, hard in analyzing
and tracking student performances based on attendance factor, student lack of
knowledge and skills due to the poor attendance in attending classes, and etc. It
is important to overcome these problems since it will help in improving the
academic performance of students as well as the teaching environment of the
lecturers. Hence, the purpose of carrying out this project is to prevent unwanted
situation occur and to find out the problems that causes these problems as well
as find the solutions to overcome these problems. Thus, through the problems
analyzed, the objective of this project is to develop a desktop-based and web-
based fingerprint student attendance system in recording their attendance
effectively in every class in order to prevent student skip classes. Next, the
developed system will provide the report generation regarding to the student
attendance in order to assist the lecturer/staff in analyze and tracking the student
attendance. By implementing the developed system, lecturers will no more
facing the empty classroom every time while they are lecturing in front the
stage. Other than that, student will not be able to ask their buddy to sign for
them anymore since the system requires their fingerprint to prove their
attendance in the class. In addition, it will be easier to evaluate and analyze the
student performance based on their attendance since the system will record the
attendance more accurately and efficiently with minimum possible error.
CHAPTER 2
SYSTEM SPEDIFICATIONS

2.1 HARDWARE REQUIREMENTS


• Processor : INTEL PENTIUM IV 2.6 Ghz

• RAM : 4 GB

• Hard Disk Drive : 500 GB

• Key Board : Standard 128 Keys

• Monitor : 17” TFT MONITOR

• Mouse : Logitech Serial Mouse

• FINGERPRINT

2.2 SOFTWARE REQUIREMENTS

• Operating System : Windows 7 or XP

• Frond end : VISUAL BASIC 6.0

• Back end : SQL Server 2005


2.3 SOFTWARE SPECIFICATION

VISUAL BASIC .NET

(VB.NET) is an object oriented computer programming language implemented on the


.NET Framework. Although it is an evolution of classic Visual Basic language, it is not
backwards compatible with VB6, and any code written in the old version does not compile
under VB.NET. Like all other .NET languages, VB.NET has complete support for object -
oriented concepts. Everything in VB.NET is an object, including all of the primitive types
(Short, Integer, Long, String, Boolean, etc.) and user - defined types, events, and even
assemblies. All objects inherits from the base class Object.

VB.NET is implemented by Microsoft's .NET framework. Therefore, it has full access


to all the libraries in the .Net Framework. It's also possible to run VB.NET programs on
Mono, the open -source alternative to .NET, not only under Windows, but even Linux or Mac
OSX.

The following reasons make VB.Net a widely used professional language:

 Modern, general purpose.

 Object oriented.

 Component oriented.

 Easy to learn.

 Structured language.

 It produces efficient programs.

 It can be compiled on a variety of computer platforms.

 Part of .Net Framework.


.Net Framework

The .Net framework is a revolutionary platform that helps you to write the following
types of applications:

 Windows applications

 Web applications

 Web services

The .Net framework applications are multi – platform applications. The framework
has been designed in such a way that it can be used from any of the following languages:
Visual Basic, C#, C++, Jscript, and COBOL, etc.All these languages can access the
framework as well as communicate with each other.

The .Net framework consists of an enormous library of codes used by the client
languages like VB.Net. These languages use object - oriented methodology.

Following are some of the components of the .Net framework:

 Common Language Runtime (CLR)

 The .Net Framework Class Library

 Common Language Specification

 Common Type System

 Metadata and Assemblies

 Windows Forms

 ASP.Net and ASP.Net AJAX

 ADO.Net

Integrated Development Environment (IDE) For VB.Net

Microsoft provides the following development tools for VB.Net programming:


 Visual Studio 2010 (VS)

 Visual Basic 2010 Express (VBE)

 Visual Web Developer

The last two are free. Using these tools, you can write all kinds of VB.Net programs
from simple command - line applications to more complex applications. Visual Basic Express
and Visual Web Developer Express edition are trimmed down versions of Visual Studio and
has the same look and feel. They retain most features of Visual Studio. In this tutorial, we
have used Visual Basic 2010 Express and Visual Web Developer (for the web programming
chapter). You can download it from here. It gets automatically Istalled in your machine.
Please note that you need an active internet connection for installing the express edition.

Structured Query Language

Introduction to SQL

SQL is nonprocedural language that provides database access. It is nonprocedural in


that users describe in SQL what they want done, and the SQL language compiler
automatically generates a procedure to navigate the database and perform the desired task.

Oracle SQL includes many extensions to the ANSI/ISO standard SQL language, and
Oracle tools and applications provide additional statements. The Oracle tools SQL*Plus and
Oracle Enterprise Manager let you run any ANSI/ISO standard SQL statement against an
Oracle database, as well as additional statements or functions that are available for those
tools.

Although some Oracle tools and applications simplify or mask SQL use, all database
operations are performed using SQL. Any other data access method circumvents the security
built into Oracle Database and potentially compromises data security and integrity.

SQL Statements:

All operations performed on the information in Oracle Database are run using
SQL statements. A statement consists of identifiers, parameters, variables, names, datatypes,
and SQL reserved words. SQL reserved words have special meaning in SQL and cannot be
used for any other purpose. For example, SELECT and UPDATE are reserved words and
cannot be used as table names.

A SQL statement is a computer program or instruction. The statement must be the


equivalent of a complete SQL sentence, such as:

SELECT last_name, department_id FROM employees;

Only complete SQL statements can be run. A fragment such as the following
generates an error indicating that more text is required before a SQL statement can run:

SELECT last_name;

SQL statements are divided into the following categories:

 Data Manipulation Language Statements

 Data Definition Language Statements

 Transaction Control Statements

 Session Control Statements

 System Control Statements

 Embedded SQL Statements

Data Manipulation Language Statements

Data manipulation language (DML) statements query or manipulate data in existing schema
objects. They enable you to:

 Retrieve or fetch data from one or more tables or views (); fetches can be scrollable
(see "Scrollable Cursors").

 Add new rows of data into a table or view (INSERT).

 Change column values in existing rows of a table or view (UPDATE).

 Update or insert rows conditionally into a table or view (MERGE).

 Remove rows from tables or views (DELETE).


 View the execution plan for a SQL statement (EXPLAIN PLAN).

 Lock a table or view, temporarily limiting other users' access (LOCK TABLE).

DML statements are the most frequently used SQL statements. Some examples of DML
statements are:

SELECT last_name, manager_id, commission_pct + salary FROM employees;

INSERT INTO employees VALUES(1234, ‘DAVIS’, ‘SALESMAN’, 7698,

’14-FEB-1988’,1600,500,30);

DELETE FROM employees WHERE last_name IN (‘WARD’,’JONES’);

DML Error Logging

When a DML statement encounters an error, the statement can continue processing
while the error code and the associated error message text is logged to an error logging table.
This is particularly helpful to long-running, bulk DML statements. After the DML operation
completes, you can check the error logging table to correct rows with errors.

New syntax is added to the DML statements to provide the name of the error logging
table, a statement tag, and a reject limit. The reject limit determines whether the statement
should be aborted. For parallel DML operations, the reject limit is applied for each slave. The
only values for the reject limit that are precisely enforced on parallel operations are zero and
unlimited.

With data conversion errors, Oracle Database tries to provide a meaningful value to log for
the column. For example, it could log the value of the first operand to the conversion operator
that failed. If a value cannot be derived, then NULL is logged for the column.

Data Definition Language Statements

Data definition language (DDL) statements define, alter the structure of, and drop schema
objects. DDL statements enable you to:

 Create, alter, and drop schema objects and other database structures, including the
database itself and database users (CREATE, ALTER, DROP).

 Change the names of schema objects (RENAME).


 Delete all the data in schema objects without removing the objects' structure
(TRUNCATE).

 Grant and revoke privileges and roles (GRANT, REVOKE).

 Turn auditing options on and off (AUDIT, NOAUDIT).

 Add a comment to the data dictionary (COMMENT).

DDL statements implicitly commit the preceding commands and start new transactions. Some
examples of DDL statements are:

CREATE TABLE plants

(COMMON_NAME VARCHAR2 (15), LATIN_NAME VARCHAR2 (40));

DROP TABLE plants;

GRANT SELECT ON employees TO scott;

REVOKE DELETE ON employees FROM scott;

Transaction Control Statements

Transaction control statements manage the changes made by DML statements and group
DML statements into transactions. They enable you to:

 Make changes to a transaction permanent (COMMIT).

 Undo the changes in a transaction, since the transaction started or since a savepoint
(ROLLBACK).

 Set a point to which you can roll back (SAVEPOINT).

 Establish properties for a transaction (SET TRANSACTION).

Session Control Statements


Session control statements manage the properties of a particular user's session. For
example, they enable you to:

 Alter the current session by performing a specialized function, such as enabling and
disabling the SQL trace facility (ALTERSESSION).

 Enable and disable roles (groups of privileges) for the current session (SET ROLE).

System Control Statements

System control statements change the properties of the Oracle database instance. The
only system control statement is ALTERSYSTEM. It enables you to change settings (such as
the minimum number of shared servers), terminate a session, and perform other tasks.

Embedded SQL Statements

Embedded SQL statements incorporate DDL, DML, and transaction control statements
within a procedural language program. They are used with the Oracle precompilers.
Embedded SQL statements enable you to:

 Define, allocate, and release cursors (DECLARE CURSOR, OPEN, CLOSE).

 Specify a database and connect to Oracle Database (DECLARE


DATABASE, CONNECT).

 Assign variable names (DECLARE STATEMENT).

 Initialize descriptors (DESCRIBE).

 Specify how error and warning conditions are handled (WHENEVER).

 Parse and run SQL statements (PREPARE, EXECUTE, EXECUTE IMMEDIATE).

 Retrieve data from the database (FETCH).

Shared SQL Areas

Oracle Database automatically notices when applications send similar SQL statements
to the database. The SQL area used to process the first occurrence of the statement
is shared—that is, used for processing subsequent occurrences of that same statement.
Therefore, only one shared SQL area exists for a unique statement. Because shared SQL
areas are shared memory areas, any Oracle Database process can use a shared SQL area. The
sharing of SQL areas reduces memory use on the database server, thereby increasing system
throughput.

In evaluating whether statements are similar or identical, Oracle Database considers


SQL statements issued directly by users and applications as well as recursive SQL statements
issued internally by a DDL statement.

Parsing

Parsing is one stage in the processing of a SQL statement. When an application issues a
SQL statement, the application makes a parse call to Oracle Database. During the parse call,
Oracle Database:

 Checks the statement for syntactic and semantic validity.

 Determines whether the process issuing the statement has privileges to run it.

 Allocates a private SQL area for the statement.

Oracle Database also determines whether or not there is an existing shared SQL area
containing the parsed representation of the statement in the library cache. If so, the user
process uses this parsed representation and runs the statement immediately. If not, Oracle
Database generates the parsed representation of the statement, and the user process allocates a
shared SQL area for the statement in the library cache and stores its parsed representation
there.

Note the difference between an application making a parse call for a SQL statement and
Oracle Database actually parsing the statement.

 A parse call by the application associates a SQL statement with a private SQL area.
After a statement has been associated with a private SQL area, it can be run
repeatedly without your application making a parse call.

 A parse operation by Oracle Database allocates a shared SQL area for a SQL
statement. Once a shared SQL area has been allocated for a statement, it can be run
repeatedly without being reparsed.
Both parse calls and parsing can be expensive relative to execution, so perform them as
seldom as possible.

See Also:

"Overview of PL/SQL"

Although parsing a SQL statement validates that statement, parsing only identifies errors that
can be found before statement execution. Thus, some errors cannot be caught by parsing. For
example, errors in data conversion or errors in data (such as an attempt to enter duplicate
values in a primary key) and deadlocks are all errors or situations that can be encountered and
reported only during the execution stage.

Query Processing

Queries are different from other types of SQL statements because, if successful, they return
data as results. Whereas other statements simply return success or failure, a query can return
one row or thousands of rows. The results of a query are alwaysin tabular format, and the
rows of the result are fetched (retrieved), either a row at a time or in groups.

Several issues relate only to query processing. Queries include not only
explicit SELECT statements but also the implicit queries(subqueries) in other SQL
statements. For example, each of the following statements requires a query as a part of its
execution:

INSERT INTO table SELECT...

UPDATE table SET x = y WHERE...

DELETE FROM table WHERE...

CREATE table AS SELECT...

In particular, queries:

 Require read consistency

 Can use temporary segments for intermediate processing

 Can require the describe, define, and fetch stages of SQL statement processing.
SQL Processing

This section introduces the basics of SQL processing. It starts with a flowchart of
typical SQL statement execution which generally covers most types of SQL statements.
Followed by a general description of the stages of SQL statement processing, and then a
section indicating how the flowchart and description may differ for different types of SQL
statements.
CHAPTER 3
SYSTEM ANALYSIS
3.1 EXISTING SYSTEM
There is some strength that can be found in the desktop-based attendance system. First
of all, the system can be known as a computerized system that reduces the workload of the
users in managing the attendance records. Compared to the traditional attendance system, it
offered costeffectiveness since it reduces the paper needed to process the data of the student
attendance records. In addition, it will also help the lecturers save up a lot of time in
recording the attendance of the students throughout the whole semester.

3.2 DISADVANTAGE
 No backup for the attendance records once the lecturer accidentally lost the
attendance sheet.
 Throughout the whole semester, lecturer will only record and evaluate the student
attendance through a piece of attendance sheet.
 Almost last few weeks before the semester end, the student attendance will be key-in
to the current system by lecturer in order to generate the bar-list report.
 But if the lecturer lost the attendance sheet, which mean the record will be lost as well
and lecturer will end up unable to enter the correct attendance records to the system at
the last few weeks of the semester.

3.3 PROPOSED SYSTEM


Web-based student attendance system will be developed for purposes to display the
attendance status/condition of every student, generate reports related to the student
attendance, and etc. The student attendance management system will only developed for
managing the student attendance status and allow lecturers/faculty staffs to easily analyze the
information regarding the student attendance. In other words, it means that this attendance
system will only cover the functions related to student attendance but not any others function
related to another thing. So at the end of the project, a system will be developed which used
for record the attendance of students more efficiently and effectively through the fingerprint
scanning.
3.4 ADVANTAGE
 To develop a desktop-based application that obtains the student fingerprint every time
they attend the classes for attendance marking purpose.
 To develop a web-based student attendance system in displaying every student
attendance results effectively.
 To generate reports regarding to the student attendance in order to assist the
lecturer/staff in analyze and tracking the student attendance.
CHAPTER 4
PROJECT DESCRIPTION
4.1 MODULES
 Lecturer Module
 Student Module
 Fingerprint Module
 Attendance Module
 Report Module

4.2 MODULE DESCRIPTION


Lecturer Module
In the lecturer module, it allows the user to enter the information of all lecturers in a
school, college, or university. There is some functionality provided in the lecturer module
which includes add new lecturer, edit lecturer information, and delete lecturer information.
However, profile of the lecturer who works at the school before is unable to delete although
that lecturer have leave the school or being fired. If the lecturer have leave the school or
being fired, the system will allows user to set the status of that lecturer to “Fired” or
“Resigned”. Besides that, information of lecturer that will be stored are includes their staff
identification, first name, last name, date of birth, start work date, staff status, and etc.

Student Module
In the student module, it allows the user to enter the information of all students in a
school, college, and university. There is some functionality provided in the student module
which includes view student records, enter new student records, and update student records.

Fingerprint Module
In the fingerprint module, it is used to store the fingerprint of all the student into the
system for future matching while the student attend every class for the subjects they had
registered before. First of all, students will require to registers their fingerprint into the
system while first coming to the school, college or university after successfully applies as a
student in that school. Then, every time they attend a class, they will need to scan their
fingerprint through the hardware provided within a class in order to do fingerprint matching
with the fingerprint record that had been stored in the system. Attendance will be
automatically signed by the system once the student’s fingerprint match the fingerprint record
in the system. If the fingerprint of the student does not exist in the system while doing
matching, system will prompt out message showing “Invalid fingerprint” whereas once the
matching successful, system will also prompt out successful message showing “Attendance
taken” to let the student know.

Attendance Module
In the attendance module, it is used to take the attendance of the student who attends
the classes. First of all, for those students who late to class more than 15 minutes will be
automatically known as absent by the system. It is because due to the university’s policy,
students are considered late and attendance will not be taken after 15 minutes. So same to this
system if following the university’s policy, student’s attendance will not be taken for those
who late for more than 15 minutes. However, if the student coming late with a reason and it is
accepted by the lecturer, the lecturer will have the right to manually change the attendance
status of the student through the website provided.

Report Module
In the report module, it is used to let the users generate the report regarding to the
student attendance record. First of all, every time the class ended, the student attendance list
record for that class will be automatically sent to the system and stored. The report will be
student attendance for whole semester as well as auto calculated bar-list report at the end of
the semester. It is to ease the lecturer and user in analyzing the student attendance for the
whole semester. In addition, the system will automatically calculate each individual student
attendance percentage for that semester and come out with bar-list report that automatically
showing the name of student who had been barred. User will only need to generate the report
without do much calculation and customization.
CHAPTER 5

SYSTEM DESIGN

5.1 DATA FLOW DIAGRAM:

1. The DFD is also called as bubble chart. It is a simple graphical formalism


that can be used to represent a system in terms of input data to the system,
various processing carried out on this data, and the output data is
generated by this system.
2. The data flow diagram (DFD) is one of the most important modeling
tools. It is used to model the system components. These components are
the system process, the data used by the process, an external entity that
interacts with the system and the information flows in the system.
3. DFD shows how the information moves through the system and how it is
modified by a series of transformations. It is a graphical technique that
depicts information flow and the transformations that are applied as data
moves from input to output.
4. DFD is also known as bubble chart. A DFD may be used to represent a
system at any level of abstraction. DFD may be partitioned into levels
that represent increasing information flow and functional detail.
5.2 INPUT DESIGN

The input design is the link between the information system and the user. It comprises
the developing specification and procedures for data preparation and those steps are
necessary to put transaction data in to a usable form for processing can be achieved by
inspecting the computer to read data from a written or printed document or it can occur by
having people keying the data directly into the system. The design of input focuses on
controlling the amount of input required, controlling the errors, avoiding delay, avoiding
extra steps and keeping the process simple. The input is designed in such a way so that it
provides security and ease of use with retaining the privacy. Input Design considered the
following things:

 What data should be given as input?

 How the data should be arranged or coded?

 The dialog to guide the operating personnel in providing input.


 Methods for preparing input validations and steps to follow when error occur.

OBJECTIVES

1.Input Design is the process of converting a user-oriented description of the input into a
computer-based system. This design is important to avoid errors in the data input process and
show the correct direction to the management for getting correct information from the
computerized system.

2. It is achieved by creating user-friendly screens for the data entry to handle large volume of
data. The goal of designing input is to make data entry easier and to be free from errors. The
data entry screen is designed in such a way that all the data manipulates can be performed. It
also provides record viewing facilities.

3.When the data is entered it will check for its validity. Data can be entered with the help of
screens. Appropriate messages are provided as when needed so that the user will not be in
maize of instant. Thus the objective of input design is to create an input layout that is easy to
follow

5.3 OUTPUT DESIGN

A quality output is one, which meets the requirements of the end user and presents the
information clearly. In any system results of processing are communicated to the users and to
other system through outputs. In output design it is determined how the information is to be
displaced for immediate need and also the hard copy output. It is the most important and
direct source information to the user. Efficient and intelligent output design improves the
system’s relationship to help user decision-making.

1. Designing computer output should proceed in an organized, well thought out manner; the
right output must be developed while ensuring that each output element is designed so that
people will find the system can use easily and effectively. When analysis design computer
output, they should Identify the specific output that is needed to meet the requirements.

2.Select methods for presenting information.

3.Create document, report, or other formats that contain information produced by the system.
The output form of an information system should accomplish one or more of the following
objectives.

 Convey information about past activities, current status or projections of the

 Future.

 Signal important events, opportunities, problems, or warnings.

 Trigger an action.

 Confirm an action.
CHAPTER 6

SYSTEM TESTING

The purpose of testing is to discover errors. Testing is the process of trying to


discover every conceivable fault or weakness in a work product. It provides a way to check
the functionality of components, sub assemblies, assemblies and/or a finished product It is the
process of exercising software with the intent of ensuring that the Software system meets its
requirements and user expectations and does not fail in an unacceptable manner. There are
various types of test. Each test type addresses a specific testing requirement.

TYPES OF TESTS

6.1 Unit testing

Unit testing involves the design of test cases that validate that the internal program
logic is functioning properly, and that program inputs produce valid outputs. All decision
branches and internal code flow should be validated. It is the testing of individual software
units of the application .it is done after the completion of an individual unit before
integration. This is a structural testing, that relies on knowledge of its construction and is
invasive. Unit tests perform basic tests at component level and test a specific business
process, application, and/or system configuration. Unit tests ensure that each unique path of a
business process performs accurately to the documented specifications and contains clearly
defined inputs and expected results.

6.2 Integration testing

Integration tests are designed to test integrated software components to determine if


they actually run as one program. Testing is event driven and is more concerned with the
basic outcome of screens or fields. Integration tests demonstrate that although the
components were individually satisfaction, as shown by successfully unit testing, the
combination of components is correct and consistent. Integration testing is specifically aimed
at exposing the problems that arise from the combination of components.
6.3 Functional testing

Functional tests provide systematic demonstrations that functions tested are available
as specified by the business and technical requirements, system documentation, and user
manuals.

Functional testing is centered on the following items:

Valid Input : identified classes of valid input must be accepted.

Invalid Input : identified classes of invalid input must be rejected.

Functions : identified functions must be exercised.

Output : identified classes of application outputs must be exercised.

Systems/Procedures : interfacing systems or procedures must be invoked.

Organization and preparation of functional tests is focused on requirements, key


functions, or special test cases. In addition, systematic coverage pertaining to identify
Business process flows; data fields, predefined processes, and successive processes must be
considered for testing. Before functional testing is complete, additional tests are identified
and the effective value of current tests is determined.

6.4 System Testing

System testing ensures that the entire integrated software system meets requirements.
It tests a configuration to ensure known and predictable results. An example of system testing
is the configuration oriented system integration test. System testing is based on process
descriptions and flows, emphasizing pre-driven process links and integration points.

6.5 White Box Testing

White Box Testing is a testing in which in which the software tester has knowledge of
the inner workings, structure and language of the software, or at least its purpose. It is
purpose. It is used to test areas that cannot be reached from a black box level.
6.6 Black Box Testing

Black Box Testing is testing the software without any knowledge of the inner
workings, structure or language of the module being tested. Black box tests, as most other
kinds of tests, must be written from a definitive source document, such as specification or
requirements document, such as specification or requirements document. It is a testing in
which the software under test is treated, as a black box .you cannot “see” into it.

6.7 Unit Testing:

Unit testing is usually conducted as part of a combined code and unit test phase of the
software lifecycle, although it is not uncommon for coding and unit testing to be conducted as
two distinct phases.

Test strategy and approach

Field testing will be performed manually and functional tests will be written in detail.

Test objectives

All field entries must work properly.

Pages must be activated from the identified link.

The entry screen, messages and responses must not be delayed.

Features to be tested

Verify that the entries are of the correct format

No duplicate entries should be allowed

All links should take the user to the correct page.

6.8 Integration Testing

Software integration testing is the incremental integration testing of two or more


integrated software components on a single platform to produce failures caused by interface
defects. The task of the integration test is to check that components or software applications,
e.g. components in a software system or – one step up – software applications at the company
level – interact without error.

Test Results:

All the test cases mentioned above passed successfully. No defects encountered.

6.9 Acceptance Testing

User Acceptance Testing is a critical phase of any project and requires significant
participation by the end user. It also ensures that the system meets the functional
requirements.

Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
CHAPTER 7
CONCLUSION AND FUTUREWORK
Fingerprint recognition attendance system will be developed to replace the traditional
attendance system that are currently widely using by many colleges and universities. This
project will be considered succeed once hybrid student attendance is developed. This system
is designed to make the whole attendance taking process to become more reliable,
convenient, efficient, and accurate. Besides that, with the implementation of biometric
technology will help in reduce errors and attendance data will be able to compile in easier
way.
This project is designed to aim in eliminating spotted problems during the initial
analysis. The problems spotted are includes buddy-signing, loss of attendance sheet, skip
class issue, and hard in analyzing student attendance record from time-totime. These
problems are the major problems faced by most colleges and universities. If view from the
Pareto analysis side which also known as 80-20 rule, 80 percent of the problems are always
caused by the 20 percent problems. In short, it means that most of the problems faced are
mostly because of the usage of traditional student attendance system. Therefore, this project
is designed in effort to eliminate these problems. Some solution had been applied to eliminate
these problems which includes the use of biometric technology, change the current system to
fully-computerized system, provide easier way to generate report, and student lateness policy
to eliminate “lastminute come in take attendance” kind of student.
With the proposed solutions, obviously seen not only can eliminate these spotted
problems but at the same time also promote a very reliable ways in managing the student
attendance record. On the other hand, from the survey questionnaire data, most of the
participants are agree that student attendance in a class to increase their knowledge is very
important. Last but not least, college/university with good academy students is also very
important as it will affect that college/university reputation.
CHAPTER 8
REFERENCES
1. Information or article from a website with authors: Ivanilson, F. et al.
(2012). Developing an automatic attendance register system for CPUT.
Available at: [Accessed 10 July 2014].
2. Subramaniam, H. et al. (2013). Bar Code Scanner Based Student
Attendance System (SAS). Available at: [Accessed 11 July 2014].
Marvia, D. (2011, June 5). Review of Literature for Improving Attendance
in Secondary Schools. Available at: [Accessed 13 July 2014].
3. Hasnieza, M. (2005). Monitoring Attendance School through SMS.
Available at: [Accessed 16 July 2014].
4. Pallavi, V. et al. (2013, October 10). Fingerprint Based Student
Attendance System Using GSM. Available at: [Accessed 16 July 2014].
5. Rishabh, M. et al. (2011, May 9). Student Attendance System Based on 
Fingerprint Recognition and One-to-Many Matching. Available at:
[Accessed 17 July 2014].
6. Mohd Zamzury, A. (2008, April). Attendance Management System using
Fingerprint Scanner. Available at: [Accessed 21 July 2014].
7. Abhishek, Jha. (2011). Classroom Attendance System Using Facial
Recognition System. Available at: [Accessed 22 July 2014].
8. Mohammad, A. et al. (2013, December). Integrated System for
Monitoring and Recognizing Students during Class Session. Available at:
[Accessed 23 July 2014].
CHAPTER 9
APPENDICES
9.1 SOURCE CODE
Dim cou As Long
Private wincount As Integer

Private Sub CmdCancel_Click()


End
End Sub

Private Sub CmdOk_Click()


Dim mStream As New ADODB.Stream
TxtDB = ""
TxtU = ""
TxtP = ""
If Trim(TxtServer.Text) = "" Then
MsgBox "Enter Server Name", vbInformation
TxtServer.SetFocus
Exit Sub
End If
mservertext = TxtServer.Text
If Trim(TxtUserName.Text) = "" Then
MsgBox "Type User Name", vbInformation
TxtUserName.SetFocus
Exit Sub
End If
If Trim(TxtPassword.Text) = "" Then
MsgBox "Type Password", vbInformation
TxtPassword.SetFocus
Exit Sub
End If
If Len(Trim(TxtPassword.Text)) < 2 Then
MsgBox "Type atleast 2 Chrs for password", vbInformation
TxtPassword.SetFocus
Exit Sub
End If

' Checking For Server Authendication


If Trim(TxtServer.Text) = "SHAN-PC\SQLEXPRESS" Then DBname =
"Attendance"

Private Sub CmbCity_Click()


Set Trset = Ftcon.Execute("Select * from M_City where Cityid = '" &
Right(Trim(CmbCity.Text), 8) & "' and cancelled <> 'Y'")
If Trset.EOF = False Then
CmbState.ListIndex = CmbIndex(CmbState, "R", Trset("Stateid"), 8)
End If
End Sub

Private Sub CmbClassName_Click()


CmbSectionName.clear
sql = "Select Distinct SectionName, SectionID from M_Section ms,M_Class mc where
ms.Cancelled <> 'Y' and mc.Cancelled <> 'Y' and
Charindex(ms.SectionID,mc.SectionIDs,1)>0 and ClassID='" &
Right(Trim(CmbClassName.Text), 8) & "'"
sql = sql & " order by SectionID"
Call Cmbload(CmbSectionName, sql)
End Sub

Private Sub CmbSchoolName_Click()


CmbClassName.clear
CmbSectionName.clear
sql = "Select Distinct ClassName, ClassID from M_Class where Cancelled <> 'Y'
order by ClassName"
Call Cmbload(CmbClassName, sql)
End Sub
Private Sub CmbState_Click()
Set Trset = Ftcon.Execute("Select * from M_State where Stateid = '" &
Right(Trim(CmbState.Text), 8) & "' and cancelled <> 'Y'")
If Trset.EOF = False Then
CmbCountry.ListIndex = CmbIndex(CmbCountry, "R", Trset("CountryID"), 8)
End If
End Sub

Private Sub CmdDelete_Click()


If Screen.MousePointer = vbHourglass Then Exit Sub
mStudentId = ""
If CmbApplnNo.ListIndex <> -1 Then
mStudentId = Right(CmbApplnNo.Text, 8)
End If
If CmbApplnNo.ListIndex = -1 Then
MsgBox "Select Application Number", vbInformation
CmbApplnNo.SetFocus
Exit Sub
End If
answer = MsgBox("Delete", vbQuestion + vbYesNo)
If answer = vbNo Then
TxtStudentName.SetFocus
Exit Sub
End If
Ftcon.BeginTrans
afld = Array("Cancelled", "DelUserID", "DelUserDate")
vfld = Array("Y", mCurUserID, Format(GetServerDate(), "dd/MMM/YYYY
HH:MM"))
sql = GetSQLString("M_StudentDetails", "U", afld, vfld, " where studentid = '" &
mStudentId & "' and cancelled <> 'Y'")
Ftcon.Execute sql
Ftcon.CommitTrans
MsgBox "Record Deleted", vbInformation
Call CmdNew_Click
End Sub

Private Sub Form_Activate()


TxtSearch.SetFocus
End Sub

Private Sub Label3_Click()


FrmClass.Show 1
Call Cmbload(CmbClassName, "Select ClassName,ClassID from M_Class where
cancelled <> 'Y' order by ClassName")
End Sub

Private Sub Label37_Click()


FrmCity.Show 1
Call Cmbload(CmbCity, "Select distinct CityName, cityid from M_city where
cancelled<>'y' order by CityName")
End Sub

Private Sub Label4_Click()


FrmSchools.Show 1
sql = "select SchoolName,SchoolID from M_School where cancelled<>'y' order by
SchoolName"
Call Cmbload(CmbSchoolName, sql)
End Sub

Private Sub Label5_Click()


FrmSection.Show 1
sql = "Select Distinct SectionName, SectionID from M_Section ms,M_Class mc where
ms.Cancelled <> 'Y' and mc.Cancelled <> 'Y' and
Charindex(ms.SectionID,mc.SectionIDs,1)>0 and ClassID='" &
Right(Trim(CmbClassName.Text), 8) & "'"
sql = sql & " order by SectionID"
Call Cmbload(CmbSectionName, sql)
End Sub
Private Sub Label9_Click()
FrmYear.Show 1
Call Cmbload(CmbYear, "Select YearName,YearID from M_Year where cancelled
<> 'Y' order by YearName")
End Sub

Private Sub TxtStudentname_KeyPress(KeyAscii As Integer)


If InStr(1, "0123456789()-,`", Chr(KeyAscii)) > 0 Then
KeyAscii = 0
End If
End Sub

Private Sub TxtApplnNo_KeyPress(KeyAscii As Integer)


If KeyAscii <> 8 And KeyAscii <> 13 Then
If KeyAscii >= 65 And KeyAscii <= 90 Then
ElseIf InStr(1, "0123456789-", Chr(KeyAscii)) > 0 Then
ElseIf (KeyAscii >= 97 And KeyAscii <= 122) Then
ElseIf (KeyAscii < 48 Or KeyAscii > 57) Then
KeyAscii = 0
End If
End If
End Sub

Private Sub TxtResPhone_KeyPress(KeyAscii As Integer)


If KeyAscii <> 8 And KeyAscii <> 13 Then
If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> Asc("-") Then
KeyAscii = 0
End If
End If
End Sub

Private Sub TxtMobileNo_KeyPress(KeyAscii As Integer)


If KeyAscii <> 8 And KeyAscii <> 13 Then
If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> Asc("-") Then
KeyAscii = 0
End If
End If
End Sub

Private Sub CmdBrowse_Click()


CDLG1.FilterIndex = 1
CDLG1.FileName = ""
CDLG1.ShowOpen
On Error GoTo a
TxtPhotoPath.Text = CDLG1.FileName
Image1.Picture = LoadPicture(TxtPhotoPath.Text)
ImgBorder.Visible = True
DtPDOB.SetFocus
Exit Sub
a:
MsgBox "Cannot load picture : " & err.Description, vbCritical
Image1.Picture = LoadPicture("")
ImgBorder.Visible = True
End Sub

Private Sub CmdExit_Click()


Unload Me
End Sub

Private Sub CmdNew_Click()


Call Cmbload(CmbState, "Select Distinct StateName, Stateid from M_state where
cancelled<>'y' order by StateName")
Call Cmbload(CmbCity, "Select Distinct CityName, cityid from M_city where
cancelled<>'y' order by CityName")
sql = "Select Distinct CountryName,CountryID from M_Country where
cancelled<>'y' order by CountryName"
Call Cmbload(CmbCountry, sql)
sql = "select Distinct SchoolName,SchoolID from M_School where cancelled<>'y'
order by SchoolName"
Call Cmbload(CmbSchoolName, sql)
Call Cmbload(CmbClassName, "Select ClassName,ClassID from M_Class where
cancelled <> 'Y' order by ClassName")
Call Cmbload(CmbYear, "Select YearName,YearID from M_Year where cancelled
<> 'Y' order by YearName")
CmbApplnNo.clear
Call clear
TxtApplnno.Locked = False
End Sub

Private Sub clear()


Dim ctrls As Control
For Each Control In Me.Controls
If Control.Name <> "TxtSearch" Then
If (Left(Control.Name, 3) = "txt" Or Left(Control.Name, 3) = "Txt") And
Control.Name <> "txtSearch" Then
Control.Text = ""
ElseIf Left(Control.Name, 3) = "Cmb" And Control.Name <> "CmbApplnNo"
And Control.Name <> "CmbYear" Then
Control.ListIndex = -1
ElseIf Left(Control.Name, 3) = "Lbl" Then
Control.Caption = ""
ElseIf Left(Control.Name, 3) = "Chk" Then
Control.Value = 0
End If
End If
Next
MskDate.Text = " / / "
DtPDOB.Value = DateValue(Format(GetServerDate(), "dd/MMM/yyyy"))
mSchoolID = "'"
mStateID = ""
mSectionID = ""
mClassID = ""
mStudentId = ""
OptMale.Value = True
Image1.Picture = LoadPicture
End Sub

Private Sub CmdSave_Click()


Dim ImgStream As ADODB.Stream
Set ImgStream = New ADODB.Stream
If Screen.MousePointer = vbHourglass Then Exit Sub
If Trim(TxtApplnno.Text) = "" Then
MsgBox "Enter Application Number", vbInformation
TxtApplnno.SetFocus
Exit Sub
ElseIf CmbYear.ListIndex = -1 Then
MsgBox "Select Year", vbInformation
CmbYear.SetFocus
Exit Sub
ElseIf Trim(TxtStudentName.Text) = "" Then
MsgBox "Enter Student Name", vbInformation
TxtStudentName.SetFocus
Exit Sub
ElseIf CmbSchoolName.ListIndex = -1 Then
MsgBox "Select School Name", vbInformation
CmbSchoolName.SetFocus
Exit Sub
ElseIf CmbClassName.ListIndex = -1 Then
MsgBox "Select Class Name", vbInformation
CmbClassName.SetFocus
Exit Sub
End If

mStudentId = ""
If CmbApplnNo.ListIndex <> -1 Then
mStudentId = Right(CmbApplnNo.Text, 8)
End If

answer = MsgBox("Save", vbYesNo + vbQuestion)


If answer = vbNo Then
TxtStudentName.SetFocus
Exit Sub
End If
mSchoolID = "'"
mStateID = ""
mSectionID = ""
mClassID = ""
mLevelID = ""
mCategoryID = ""
mStudentId = ""
mCityID = ""
If CmbCity.ListIndex <> -1 Then mCityID = Right(Trim(CmbCity.Text), 8)
If CmbSchoolName.ListIndex <> -1 Then mSchoolID =
Right(Trim(CmbSchoolName.Text), 8)
If CmbClassName.ListIndex <> -1 Then mClassID =
Right(Trim(CmbClassName.Text), 8)
If CmbSectionName.ListIndex <> -1 Then mSectionID =
Right(Trim(CmbSectionName.Text), 8)

Ftcon.BeginTrans
'Checking duplicate
tNo = 0
mStudentId = ""
If CmbApplnNo.ListIndex <> -1 Then
mStudentId = Right(Trim(CmbApplnNo.Text), 8)
End If
If mStudentId = "" Then
mStudentId = GetTranNo("StudentID", "", "")
End If
sql = "Select count(*) as cnt from M_StudentDetails where cancelled <> 'Y' and
studentID <> '" & mStudentId & "' and Applnno = '" & Trim(TxtApplnno.Text) & "'"
tNo = GetVal(sql, "cnt", 0, Ftcon)
If tNo > 0 Then
Ftcon.RollbackTrans
MsgBox "Application No. already exists", vbInformation
TxtApplnno.SetFocus
Exit Sub
End If
mAdd = " "
mAdd = Padr(TxtAdd1.Text, 113, " ") & Padr(TxtAdd2.Text, 112, " ")
afld = Array("StudentID", "ApplnNo", "Applndate", "StudentName", "YearID",
"DOB", "SchoolID", "ClassID", "SectionID", "Sex", "Address", "Pincode",
"CityID", "StateID", "ResiPhone", "MobilePhone", "Cancelled", "ModUserId",
"ModUserdate")
vfld = Array(mStudentId, Trim(UCase(TxtApplnno.Text)), IIf(IsDate(MskDate) =
True, Format(MskDate.Text, "dd/MMM/yyyy"), Format(GetServerDate,
"dd/MMM/yyyy")), Trim(TxtStudentName.Text), Right(Trim(CmbYear.Text), 8),
Format(DtPDOB.Value, "dd/MMM/yyyy"), Right(Trim(CmbSchoolName.Text), 8),
Right(Trim(CmbClassName.Text), 8), Right(Trim(CmbSectionName.Text), 8),
IIf(OptMale.Value = True, "M", "F"), mAdd, Trim(TxtPincode.Text), mCityID,
mStateID, Trim(TxtResPhone.Text), Trim(TxtMobileNo.Text), "N", mCurUserID,
Format(GetServerDate(), "dd/MMM/yyyy HH:MM:SS"))

Ftcon.Execute ("Update M_StudentDetails set cancelled = 'Y' where studentid = '" &
mStudentId & "' and cancelled <> 'Y'")
sql = GetSQLString("M_StudentDetails", "I", afld, vfld)
Ftcon.Execute (sql)

Exit Sub

Public Function EmptyClr()


Dim ctrlss As Control
For Each Control In Me.Controls
If Control.Name <> "TxtSearch" Then
If Left(Control.Name, 3) = "Lbl" Then
Control.Caption = ""
End If
End If
Next
End Function
Dim mYearID As String

Private Sub CmbYear_Click()


If CmbYear.ListIndex <> -1 Then
End If
End Sub

Private Sub CmdDelete_Click()


If Screen.MousePointer = vbHourglass Then Exit Sub
If COMBOINDEXCHECK(CmbYear, CmbYear, "Select Year") Then Exit Sub
If DELETEREQUESTMESSAGE(TxtYear) Then Exit Sub
Ftcon.BeginTrans
'Checking Program Exits
tNo = GetVal("Select count(*) as cnt from M_StudentDetails where cancelled <> 'Y'
and YearID = '" & mYearID & "'", "cnt", 0, Ftcon)
If tNo > 0 Then
Ftcon.RollbackTrans
MsgBox "Students exist under this Year. Hence action cancelled", vbCritical,
"Error while Deleting"
CmbYearName.SetFocus
Exit Sub
End If
afld = Array("Cancelled", "DelUserID", "DelUserDate")
vfld = Array("Y", mCurUserID, Format(GetServerDate(), "dd/MMM/YYYY
HH:MM"))
sql = GetSQLString("M_Year", "U", afld, vfld, " where YearID = '" & mYearID &
"' and cancelled <> 'Y'")
Ftcon.Execute sql
Ftcon.CommitTrans
Call DELETEDMESSAGE
Call CmdNew_Click
End Sub

Private Sub CmdExit_Click()


Unload Me
End Sub

Private Sub CmdNew_Click()


mYearID = ""
TxtYear.Text = ""
Call Cmbload(CmbYear, "Select YearName,YearID from M_Year where cancelled
<> 'Y' order by YearName")
End Sub

Private Sub CmdSave_Click()


If Screen.MousePointer = vbHourglass Then Exit Sub

If TEXTEMPTYCHECK(TxtYear, TxtYear, "Enter Year Name") Then Exit Sub


If SAVEREQUESTMESSAGE(TxtYear) Then Exit Sub

Ftcon.BeginTrans

tNo = GetVal("Select count(*) as cnt from M_Year where YearName = '" &
Trim(TxtYear.Text) & "' and YearID <> '" & mYearID & "' and cancelled <> 'Y'",
"cnt", 0, Ftcon)
If tNo > 0 Then
Ftcon.RollbackTrans
MsgBox "Year Exist", vbCritical
TxtYear.SetFocus
Exit Sub
End If
If mYearID = "" Then
mYearID = GetTranNo("YearID", "", "")
End If

afld = Array("YearID", "YearName", "ModUserID", "ModUserDate",


"Cancelled")
vfld = Array(mYearID, Trim(TxtYear.Text), mCurUserID, Format(GetServerDate(),
"dd/MMM/yyyy HH:MM"), UserCancel)
Ftcon.Execute ("Update M_Year set cancelled = 'Y' where YearID = '" & mYearID
& "' and cancelled <> 'Y'")
sql = GetSQLString("M_Year", "I", afld, vfld)
Ftcon.Execute (sql)
Ftcon.CommitTrans
Call SAVEDMESSAGE
Call CmdNew_Click
End Sub

Private Sub Form_Activate()


TxtYear.SetFocus
End Sub

Private Sub Form_Load()


mYearID = ""
Call Cmbload(CmbYear, "Select YearName,YearID from M_Year where cancelled
<> 'Y' order by YearName")
End Sub
9.2 SCREENSHOTS

Vous aimerez peut-être aussi