Professional Documents
Culture Documents
OMR_Optical_Mark_Recognition_Based_Atten
OMR_Optical_Mark_Recognition_Based_Atten
OMR_Optical_Mark_Recognition_Based_Atten
Project Report On
Submitted By
SAYYED DAUD
KHAN ABDUL KADIR
KHAN MAINUDDEEN
MULLA MOIN
Under the guidance of
Affiliated to
University of Mumbai
CERTIFICATE
This is certify that the project report entitled
“OMR BASED ATTENDANCE SYSTEM”
Submitted By
SAYYED DAUD
KHAN ABDUL KADIR
KHAN MAINUDDEEN
MULLA MOIN
of Rizvi College of Engineering,Computer Department has been approved in partial fulfillment of re-
quirement for the degree of Bachelor of Engineering.
Prof. Prof.
Internal Examiner External Examiner
Date:
Acknowledgement
I am profoundly grateful to Prof.Shiburaj Pappu for his expert guidance and continuous encourage-
ment throughout to see that this project rights its target since its commencement to its completion.
I would like to express deepest appreciation towards Dr. Varsha Shah, Principal RCOE, Mumbai and
Prof. Dinesh B. Deore, HoD (Computer Department)whose invaluable guidance supported me in com-
pleting this project.
At last I must express my sincere heartfelt gratitude to all the staff members of (Computer Department)
who helped me directly or indirectly during this course of work.
SAYYED DAUD
KHAN ABDUL KADIR
KHAN MAINUDDEEN
MULLA MOIN
ABSTRACT
This project is actually an application that we are developing which enables implementation of OMR
using an ordinary scanner.Our project is to implement attendance system for our college using OMR
technique.A sheet containing blank circles will be passed to mark attendance instead of signatures. The
counting of attendance and their storage in database will be done automatically using this software.
Defaulter list will also get prepared by clicking a single button.
1 Introduction 1
1.1 Motivation and Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Literature Survey 3
2.1 Paper1-A Low-Cost OMR Solution for Educational Applications . . . . . . . . . . . . . 3
2.1.1 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.2 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.3 Disadvantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Paper2-Implementation of OMR Technology with the Help Ordinary Scanner . . . . . . 4
2.2.1 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.2 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.3 Disadvantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Proposed Work 5
3.1 Module1:-Detection of Attendance marks using java. . . . . . . . . . . . . . . . . . . . 5
3.1.1 System Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.2 Image Acquisition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.3 Steps Involved . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.4 Design the form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.5 Create a template for the marked areas . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.6 Tilt correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.7 Use image processing to accentuate the marks . . . . . . . . . . . . . . . . . . . 7
3.1.8 Find the marks using the template . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.9 Mark recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.10 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 Module2:-Developing a User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.1 Creating a Structure of User interface using HTML and CSS3 (Bootstrap) . . . . 10
3.3 Module3:-Uploading the scanned image and utilizing it as an input to java code . . . . . 11
3.3.1 Uploading Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3.2 Running java code on web browser:- . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Project Design 13
4.1 Requirement Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1.1 Stakeholder Identifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.1.2 Investigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5 Implementation & Technologies Used 16
5.1 Softwares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.1.1 Eclipse(Kepler-v4.3.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.1.2 Xampp(v1.8.3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.1.3 Web Browser (Google chrome) . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.1.4 Notepad++(v6.5.5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.1.5 Windows 7-Ultimate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.2 Programming Languages used:- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2.1 Java Standard edition(j2se v1.7) . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2.2 SQL(Structured Query Language) . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2.3 HTML(HyperText Markup Language) . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.4 CSS(V 3.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.5 PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.2.6 AJAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.2.7 Jquery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.2.8 Bootstrap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.2.9 Javascript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.3 Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.3.1 ER Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.3.2 Sequence Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3.3 Data Flow Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.3.4 Database Structure diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.4 User Interface Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.4.1 Login Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.4.2 Home Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
References 37
APPENDICES 37
A Project Hosting 38
List of Figures
Chapter 1
Introduction
Optical Mark Recognition (OMR), also called mark sensing, is a technique to sense the presence or
absence of marks by recognizing their depth (darkness) on sheet [1,4]. A mark is a response position
on the questionnaire sheet that is filled with pencil or ballpoint pen. The way of marking is simple to
everyone and OMR device can process mark information on sheets rapidly. Thus, OMR has been widely
used as a direct input device for data of censuses and surveys and is fit for handling discrete data, whose
values fall into a limited number of values.
OMR is a technology that detects the absence or presence of a mark, but not the shape of the mark.
OMR software interprets the output from the scanner, and translates it into the desired ASCII output.
Forms are scanned through an scanner. The forms contain small circles, referred to as bubbles, or boxes
that are filled in by the respondent. Optical Mark Reader (OMR) reads marks written by pencil or ball-
point pen in the pre-defined positions on the attendance sheet. The OMR can judge the existence of
written marks by recognizing their darkness on the sheet.
In the field of education, OMR technique is often used to process objective questions in the examina-
tion, such as College Boards Scholastic Aptitude Test (SAT), the Graduate Record Examination (GRE)
in the United States, and the College English Test (CET) in China. However, there are a few distinct
drawbacks which limit the application of OMR technology.
In this process there are two fundamental forces that form the basis of evolutionary systems.
• First, the questionnaire sheets which can be processed by OMR devices must be 90110 gsm(grams
per square meter, unit of paper weight). Such high quality papers are much more expensive than
the common plain papers 6070 gsm and general schools can not afford to use them in common
exams.
• Second, the high precision layout of standard questionnaire sheet is required. The questionnaire
sheets must be precisely designed and printed. The printing and cutting slips need to be and 0.2
mm or even less which can only be obtained through professional printing house].Finally, OMR
machine is dedicated device that can only be used to process OMR sheets. This is a burden carried
by the colleges.
In this paper, attendance calculating using OMR technique is presented. Besides implementing all
the functions of the traditional OMR, our system will supports plain sheets (70 gsm or less) and low
printing quality attendance sheets and digitally storing of information is also done.
The implementation is done using Java. We are using Net beans IDE so as to easily manage the
graphical layout and all the resources. For the GUI,java was chosen mainly because of its platform
For making defaulter list, Each staff members need to count the no. of attendance of a particular
student. It takes time as well as energy if something went wrong. Then the calculated attendance is
given to a person for making defaulter list. All the data is manipulated according to cut off of defaulter.
Again it take Time as well as man power.
1.2 Objectives
• First, Our project aim is to implement the attendance system for our college using OMR tech-
nique.This application will help reduce the tedious work of staff members.
• Second, Since traditional way of making defaulter list requires lots of time as well as attendance
sheets,this problem can be solved by our application.
• Third, This application can be implemented at institutes level,which will bring a tremendous change
in the trend of Educational system record management.
• Fourth, Another main objective of this application is to make the process of making defaulter list
more speedy,more accurate and cost efficiency.
Chapter 2
Literature Survey
2.1.1 Summary
Mark Recognition (OMR) is a traditionaldata input technique and an important humancomputer inter-
action technique which is widely used ineducation testing. Aimed at the drawbacks of Optical cur-
rentOMR technique, a new image-based low cost OMRtechnique is presented in the paper. The new
techniqueis capable of processing thin papers and low-printingprecision answer sheets. The system key
techniquesand relevant implementations, which include the imagescan, tilt correction, scanning error
correction,regional deformation correction and mark recognition,are presented. This new technique is
proved robust andeffective by the processing results of large amount ofquestionnaires.
2.1.2 Advantages
LCOMR has following advantages:-
1. A Microsoft Word macro-based sheet designtechnique to simplify the design of questionnaire.
2. Low cost image-based OMR technique and theimages can be obtained from any kinds of scanner.
3. Global and regional area image deformationcorrections to improve the recognition precision.
As a complex procedure, LCOMR system consists of four main parts:-
• OMR sheet design
• Imageacquisition
• Deformation correction
• Markrecognition
2.1.3 Disadvantages
1.The distortion of the thin paper is critical to affectthe final recognition precision.
2.Ink infiltration is the main reason of recognitionerror. The plain paper (70 gsm or less) is easy to
beinfiltrated, so the writing on the rear side will infiltrateto the front side. This will cause the error of
OMRrecognition.
2.2.1 Summary
In this fast and furious time, people dont want to invest their time in processing. They just want to give
an input and take an output immediately. This project is actually an application that we are developing
which enables implementation of OMR using an ordinary scanner. It provides tools to the user to design
an OMR sheet based on the layout they want. The design of the sheet will be stored as image file
format (JPEG). The user can take as many print outs as required, distribute it among others from whom
information is desired, and get the filled sheets scanned. The scanned image files will then be provided
as input to the software, processing will be done, value of filled fields will be extracted and then the data
will be manipulated as instructed by the user. The implementation is done using Java. We are using
Net beans IDE so as to easily manage the graphical layout and all the resources. For the GUI java was
chosen mainly because of its platform independence and lightweight of the components in java swing.
2.2.2 Advantages
This System has following advantages:-
1. The program is also small and compact, easily fitting in a diskette.
2. No special equipment is needed thus retaining a very low cost. The forms themselves need no
special printing (IR dedicated OMR scanners need red ink forms), and they can be printed in every
printer and photocopied in large quantities.
3. Finally the algorithms can work and manage the pivot driving areas by themselves, freeing the
user from the tedious and error prone task of manually marking these points.
2.2.3 Disadvantages
1.The distortion of the thin paper is critical to affectthe final recognition precision.
2.It won’t work when the image is significantly damaged.
Chapter 3
Proposed Work
Problem Statement1:-
While making this system, our first aim was to detect marks (bubbles) which are the key concept in
our project. To Detect Bubbles, We used multiple basic image detection algorithms. While building the
entire system, we gone through three main stages which are explained below:-
The figure below shows the control flow of a typical image acquisition process.Once the image is
acquired from the source,it is passed to another process of application.
chart.png
1. Easy for software to quickly align, move and scale so that it can be read
2. Easy for software to remove uninteresting parts for easier processing.
The main thing to do in designing the form is to make it easy to process later. Once we scan the form,
we will have to make sure that it is properly aligned and scaled so that the template that we make will
match the scanned image.
To help with this, I have placed a half-inch two timing circle in the top-left and bottom right margin
in the fixed position. This will be easy to find later, and all of my coordinates in the template will be
based on the location of this circles.
With the scale and position of the center, we now call the locateConcentricCircles() function we
wrote earlier.
3.1.10 Algorithm
Finding corner points of bounding box: To find the corner points we need to design algorithm for those
cases when the sheet is not being kept straight during scanning, due to human error. In those cases
rotation up to 11 degree is acceptable. Now for finding the corner points we first need to know whether
our sheet was rotated towards the right, or towards left, or not rotated at all. For this a random point from
the top is taken, and traversed downwards till a black pixel is encountered. From that point traversal is
done towards the left. If there are maximum black pixels, it means that the sheet is rotated towards the
right; otherwise it is towards the left. Using the appropriate algorithm the corner points can be found.
The algorithm for finding the appropriate points in case the image is tilted towards the left is: img:
Image to be analyzed w: Width of image h: Height of image ratio: Minimum limit for number of black
pixels blackCount: Number of black pixels findPoints(): Finds the corner points. leftUp():Finds upper
left corner point. rightUp(): Finds upper right corner points. leftDown(): Finds down left corner point.
rightDown(): Finds down right corner point.
1 ratio= 0.8*w;
2 blackCount=0;
3 leftUp();
4 rightUp();
5 leftDown();
6 rightDown();
leftUp()
1 for i =2 to h/4 do
2. for j=2 to w/4 do
3. if( img[ j][i] is BLACK &&img[ j 1][i] is WHITE then
4. while j¡w do
5. if img[ j + 1][i]is BLACK then blackCount++
6. else if img[ j + 1][i]is WHITE then count number of consecutive white pixels and store in white-
Count
7. if( whiteCount¿ 5) then
8. i=i-1;
9. end while
10. end if
11. if( blackCount¿ ratio)
12. print i,j;
13. return;
14. else
15. continue;
16. end for
17. end for
Problem Statement2:-
Once we were able to detect the marks and store the values of each student attendance, our next was
to create a UI (User Interface).For providing a user interface to our stakeholders, we people made it in
web based technologies such as HTML,CSS3 and PHP. We utilizes database called MySQL which is
already come with xampp Software.
HTML is written in the form of HTML elements consisting of tags enclosed in angle brackets (like
¡html¿). HTML tags most commonly come in pairs like ¡h1¿ and ¡/h1¿, although some tags represent
empty elements and so are unpaired, for example ¡img¿. The first tag in a pair is the start tag, and the
second tag is the end tag (they are also called opening tags and closing tags).
The purpose of a web browser is to read HTML documents and compose them into visible or audible
web pages. The browser does not display the HTML tags, but uses the tags to interpret the content of the
page. HTML describes the structure of a website semantically along with cues for presentation, making
it a markup language rather than a programming language.
Web browsers can also refer to Cascading Style Sheets (CSS) to define the look and layout of text
and other material. The W3C, maintainer of both the HTML and the CSS standards, encourages the use
of CSS over explicit presentational HTML.
HTML elements form the building blocks of all websites and web applications. HTML allows im-
ages and objects to be embedded and can be used to create interactive. It provides a means to create
structured documents by denoting structural semantics for text such as headings, paragraphs, lists, links,
quotes and other items. It can embed scripts written in languages such as JavaScript which affect the
behavior of HTML web pages.
Web browsers can also refer to Cascading Style Sheets (CSS) to define the look and layout of text
and other material. The W3C, maintainer of both the HTML and the CSS standards, encourages the use
of CSS over explicit presentational HTML.
Once we people were able to completed the basic format for our User interface, next thing was to add
functionality to this static page, to make it a dynamic web application.
After successfully inserting the values in the database, the next task was to make queries for certain
things like displaying different subject attendance, Making defaulter list and etc. To achieve this task,
once again we used PHP to make queries. For this ,we need to make a database with several table.some
of them are given below:-
Chapter 4
Project Design
Requirements analysis is a team effort that demands a combination of hardware, software and human
factors engineering expertise as well as skills in dealing with people. Requirements analysis in systems
engineering and software engineering, encompasses those tasks that go into determining the needs or
conditions to meet for a new or altered product, taking account of the possibly conflicting requirements
of the various stakeholders, analyzing, documenting, validating and managing software or system re-
quirements.
Analysts can employ several techniques to elicit the requirements from the customer. Historically,
this has included such things as holding interviews, or holding focus groups (more aptly named in
this context as requirements workshops) and creating requirements lists. More modern techniques
include prototyping, and use cases. Where necessary, the analyst will employ a combination of
these methods to establish the exact requirements of the stakeholders, so that a system that meets
the business needs is produced.
1.Principal-
Able to check
• Staff info
• Student info
• Total attendance individual Student
2.Administrator-
can do
• Staff info and edit
• Student info and edit
• Make the defaulter list
• Edit the defaulter list
• Editing the criteria 25 ,50, 75 percent
3.Staff members
Have ability to
• Fill the form
• Scan the sheet
• staff profile and Edit
• check attendance table
4.1.2 Investigation
To study any system the analyst needs to do collect facts and all relevant information. The facts when
expressed in quantitative form are termed as data .accurate information can be collected with the help
of certain methods or techniques. These specific methods for finding information is called fact finding
techniques
The analyst may use more than one technique for investigation.
• Interview :
This method is used to collect the information from groups or individuals. Analyst selects the
people who are related with the system for an interview. In this method the analyst site face to face
with the people and records their responses.
During the initial stages of system development, our group member used to conduct a question
sessions with staff members so that we may come to know what really the stakeholders really want
• Questionnaires :
It is technique used to extract information from number of people. This is cheapest source of
fact finding. It consists of series of questions framed together in logical manner. The questions
are simple, clear and to the point. While developing this project, n numbers of questions were
asked to Teachers about current situations of counting the attendance and creating the defaulter
list. Questions where like:-
1. What problem teachers got while counting the attendance?
2. How they insert the hardcopy values?
3. How much time it take to count a single sheet attendance data?
4. IV. What happens if the system get crash or the file is affected by virus? and so on
Chapter 5
Technologies used:-
5.1 Softwares
5.1.1 Eclipse(Kepler-v4.3.2)
In computer programming, Eclipse is an integrated development environment (IDE). It contains a base
workspace and an extensible plug-in system for customizing the environment. Written mostly in Java,
Eclipse can be used to develop applications.
By means of various plug-ins, Eclipse may also be used to develop applications in other programming
languages: Ada, ABAP,C, C++, COBOL, Fortran, Haskell, JavaScript, Lasso, Perl, PHP, Python, R,
Ruby (including Ruby on Rails framework), Scala,Clojure, Groovy, Scheme, and Erlang.
It can also be used to develop packages for the software Mathematica. Development environments in-
clude the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++ and Eclipse
PDT for PHP, among others.
5.1.2 Xampp(v1.8.3)
XAMPP is an open-source web server package that works on various platforms. It is actually an acronym
with X meaning cross platform, A for Apache HTTP server, M for MySQL, P for PHP, and P for Perl.
XAMPP was designed to help webpage developers, programmers, and designers check and review their
work using their computers even without connection to the web or internet.
So, basically XAMPP may be used to stand as pages for the internet even without connection to it.
It can also be used to create and configure with databases written in MySQL and/or SQLite. And since
XAMPP is designed as a cross-platform server package, it is available for a variety of operating systems
and platforms like Microsoft Windows, Mac OS X, Linux, and Solaris.
To use XAMPP, only one zip, exe or tar file is needed. Users just need to download this file and run
the application. There is also not much configuration and tinkering to be done in terms of settings and
its components.
The XAMPP package is also updated on a regular basis to synchronize with the updates made on the
different platforms involved in the package like Apache, PHP, Perl, and MySQL.
XAMPP is a free and open source cross-platform web server solution stack package, consisting
mainly of the Apache HTTP Server, MySQL database, and interpreters for scripts written in the PHP
and Perlprogramming languages.
The primary function of a web browser is to renderHTML, the code used to design or ”mark up”webpages.
Each time a browser loads a web page, it processes the HTML, which may include text, links, and ref-
erences to images and other items, such ascascading style sheets and JavaScript functions. The browser
processes these items, then renders them in the browser window.
Early web browsers, such as Mosaic and Netscape Navigator, were simple applications that ren-
dered HTML, processed form input, and supported bookmarks. As websites have evolved, so have web
browser requirements. Today’s browsers are far more advanced, supporting multiple types of HTML
(such as XHTML and HTML 5), dynamic JavaScript, and encryption used by secure websites.
The capabilities of modern web browsers allow web developers to create highly interactive websites.
For example, Ajax enables a browser to dynamically update information on a webpage without the
need to reload the page. Advances in CSS allow browsers to display a (responsive website— respon-
sive web design) layouts and a wide array of visual effects. Cookies allow browsers to remember your
settings for specific websites.
The major web browsers are Google Chrome, Mozilla Firefox, Internet Explorer, Opera, and Safari.
5.1.4 Notepad++(v6.5.5)
Notepad++ is a text editor and source code editor for Windows.
It differs from the built-in Windows text editor Notepad, is that Notepad++ supports tabbed editing,
which allows working with multiple open files in a single window. Notepad++ opens large files signifi-
cantly faster than Windows Notepad.
Notepad++ is distributed as free software. The project was hosted on SourceForge.net, from where
it has been downloaded over 28 million times[3][4] and twice won the SourceForge Community Choice
Award for Best Developer Tool.[5] The project has been hosted on TuxFamily since June 2010. Notepad++
uses the Scintilla editor component.
The Java syntax is similar to C++, but is strictly anobject-oriented programming language. For ex-
ample, most Java programs contain classes, which are used to define objects, and methods, which are
assigned to individual classes. Java is also known for being more strict than C++, meaning variables and
functions must be explicitly defined.
This means Java source code may produce errors or ”exceptions” more easily than other languages,
but it also limits other types of errors that may be caused by undefined variables or unassigned types.
Unlike Windows executables (.EXE files) or Macintosh applications (.APP files), Java programs are
not run directly by the operating system. Instead, Java programs are interpreted by the Java Virtual Ma-
chine, or JVM, which runs on multiple platforms.
This means all Java programs aremultiplatform and can run on different platforms, including Macin-
tosh, Windows, and Unix computers. However, the JVM must be installed for Java applications or
applets to run at all. Fortunately, the JVM is included as part of the Java Runtime Environment (JRE),
which is available as a free download.
Today, SQL is commonly used for Web database development and management. Though SQL is
now considered to be a standard language, there are still a number of variations of it, such as mSQL and
mySQL. By using a scripting language like PHP, SQL commands can be executed when a Web page
loads. This makes it possible to create dynamic Web pages that can display different information each
time they load.
The Structured Query Language (SQL) is the set of instructions used to interact with a relational
database. In fact, SQL is the only language that most databases actually understand. Whenever you
interact with such a database, the software translates your commands (whether they are mouse clicks or
form entries) into SQL statement that the database knows how to interpret.
SQL has three major components: the Data Manipulation Language (DML), the Data Definition Lan-
guage (DDL), and the Data Control Language (DCL).
Fortunately, the HTML language is relatively easy to learn. Even more fortunately (so much for good
grammar), many Web development programs allow you to create Web pages using a graphical interface.
These programs allow you to place objects and text on the page and the HTML code is written for you.
HTML (Hypertext Markup Language) is the set of markup symbols or codes inserted in a file in-
tended for display on a World Wide Web browser page. The markup tells the Web browser how to
display a Web page’s words and images for the user. Each individual markup code is referred to as an
element (but many people also refer to it as a tag). Some elements come in pairs that indicate when
some display effect is to begin and when it is to end.
HTML elements form the building blocks of all websites and web applications. HTML allows im-
ages and objects to be embedded and can be used to create interactive. It provides a means to create
structured documents by denoting structural semantics for text such as headings, paragraphs, lists, links,
quotes and other items. It can embed scripts written in languages such as JavaScript which affect the
behavior of HTML web pages.
Web browsers can also refer to Cascading Style Sheets (CSS) to define the look and layout of text
and other material. The W3C, maintainer of both the HTML and the CSS standards, encourages the use
of CSS over explicit presentational HTML.
CSS is a cornerstone specication of the web and almost all web pages useCSS style sheets to de-
scribe their presentation. CSS can also allow the same markup page to be presented in different styles
for different renderingmethods, such as on-screen, in print, by voice (when read out by a speech-based
browser or screen reader) and on Braille-based, tactile devices.
It can also be used to allow the web page to display differently depending on the screen size or device
on which it is being viewed. Cascading style sheets are used to format the layout of Web pages. They
can be used to define text styles, table sizes, and other aspects of Web pages that previously could only
be defined in a page’s HTML.
CSS helps Web developers create a uniform look across several pages of a Web site. Instead of defin-
ing the style of each table and each block of text within a page’s HTML, commonly used styles need to
be defined only once in a CSS document. Once the style is defined in cascading style sheet, it can be
used by any page that references the CSS file.
Plus, CSS makes it easy to change styles across several pages at once. For example, a Web devel-
oper may want to increase the default text size from 10pt to 12pt for fifty pages of a Web site. If the
pages all reference the same style sheet, the text size only needs to be changed on the style sheet and all
the pages will show the larger text.
While CSS is great for creating text styles, it is helpful for formatting other aspects of Web page
layout as well. For example, CSS can be used to define the cell padding of table cells, the style, thickness,
and color of a table’s border, and the padding around images or other objects. CSS gives Web developers
more exact control over how Web pages will look than HTML does. This is why most Web pages today
incorporate cascading style sheets.
5.2.5 PHP
Stands for ”Hypertext Preprocessor.” (It is a recursive acronym, if you can understand what that means.)
PHP is an HTML-embedded Web scripting language. This means PHP code can be inserted into the
HTML of a Web page.
When a PHP page is accessed, the PHP code is read or ”parsed” by the server the page resides on.
The output from the PHP functions on the page are typically returned as HTML code, which can be
read by the browser. Because the PHP code is transformed into HTML before the page is loaded, users
cannot view the PHP code on a page.
This make PHP pages secure enough to access databases and other secure information.
In an HTML document, PHP script (similar syntax to that of Perl orC ) is enclosed within special
PHP tags. Because PHP is embedded within tags, the author can jump between HTML and PHP (similar
to ASP and Cold Fusion) instead of having to rely on heavy amounts of code to output HTML. And,
because PHP is executed on the server, the clientcannot view the PHP code.
PHP can perform any task that any CGI program can do, but its strength lies in its compatibility with
many types of databases. Also, PHP can talk across networks using IMAP, SNMP, NNTP, POP3, or
HTTP.
A lot of the syntax of PHP is borrowed from other languages such as C, Java and Perl. However,
PHP has a number of unique features and specific functions as well. The goal of the language is to allow
Web developers to write dynamically generated pages quickly and easily. PHP is also great for creating
database-driven Web sites. If you would like to learn more about PHP, the official site is PHP.net.
PHP can perform any task that any CGI program can do, but its strength lies in its compatibility with
many types of databases. Also, PHP can talk across networks using IMAP, SNMP, NNTP, POP3, or
HTTP.
5.2.6 AJAX
AJAX is Asynchronous JavaScript and XML. AJAX is not a new programming language, but a new
wayto use existing standards. AJAX is the art of exchanging data with a server, and updating parts of a
webpage - without reloading the whole page.
Ajax is not a single technology, but a group of technologies. HTML and CSS can be used in combi-
nationto mark up and style information.
Ajax is a combination of Web development technologies used for creating dynamic websites. While
the term ”Ajax” is not written in all caps like most tech acronyms, the letters stand for ”Asynchronous
JavaScript And XML.” Therefore, websites that use Ajax combine JavaScript and XML to display dy-
namic content.
The ”asynchronous” part of Ajax refers to the way requests are made to the Web server. When a
scriptsends a request to the Web server, it may receive data, which can then be displayed on the Web
page. Since these events happen at slightly different times, they are considered to be asynchronous.
Most Ajax implementations use the XMLHttpRequest API, which includes a list of server requests that
can be called within JavaScript code.
The data is usually sent back to the browser in an XML format, since it is easy to parse. However,
it is possible for the server to send data as unformatted plain text as well.
What makes Ajax so powerful is that scripts can run on the client side, rather than on the server. This
means a JavaScript function can make a request to a server after a webpage has already finished loading.
The data received from the server can then be displayed on the page without reloading the other content.
If a server-side scripting language like PHP or ASP was used, the entire page would need to be reloaded
in order for the new content to be displayed.
While you may not realize it, you have probably seen Ajax at work on several different websites.
For example, search engines that provide a list of search suggestions as you type are most likely using
Ajax to display the suggestions. Image searches that produce more thumbnails as you scroll through the
results typically use Ajax to retrieve the continual list of images. When you click ”Older Posts” at the
bottom of a Facebook page, Ajax is used to display additional postings.
Ajax has helped make the Web more dynamic by enabling webpages to retrieve and load new content
without needing to reload the rest of the page. By using Ajax, Web developers can create interactive
websites that use resources efficiently and provide visitors with a responsive interface.
The DOM is accessed with JavaScript to dynamically display, and allow the user to interact with, the
information presented. JavaScript and the XML Http Request object provide a method for exchanging
data asynchronously between browser and server to avoid full page reloads.
5.2.7 Jquery
jQuery is not a language, but it is a well written JavaScript code. As quoted on official jQuery website,
”it is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling,
animating, and Ajax interactions for rapid web development”.
jQuery is a JavaScript library that allows web developers to add extra functionality to their websites.
It is open source and provided for free under the MIT license. In recent years, jQuery has become the
most popular JavaScript library used inweb development. To implement jQuery, a web developer simply
needs to reference the jQuery JavaScript file within the HTMLof a webpage. Some websites host their
own local copy of jQuery, while others simply reference the library hosted by Google or the jQuery
server. For example, a webpage may load the jQuery library using the following line within the ¡head¿
section of the HTML:
Once the jQuery library is loaded, a webpage can call any jQuery function supported by the library.
Common examples include modifying text, processing form data, moving elements on a page, and per-
forming animations. jQuery can also work with Ajax code and scripting languages, such as PHP and
ASP to access data from a database. Since jQuery runs on the client side (rather than the web server), it
can update information on a webpage in realtime, without reloading the page.
A common example is ”autocomplete,” in which a search form automatically displays common searches
as you type your query. In fact, this is how TechTerms.com provides search suggestions when you type
in the search box.
Besides its free license, the other main reason jQuery has gained such popularity is its cross-browser
compatibility. Since each browser renders HTML, CSS, and JavaScript differently, it can be difficult
for a web developer to make a website appear the same across all browsers. Instead of having to write
custom functions for each browser, a web developer can use a single jQuery function that will work in
Chrome, Safari, Firefox, and Internet Explorer.
This multi-browser support has led many developers to switch from standard JavaScript to jQuery, since
it greatly simplifies the coding process.
5.2.8 Bootstrap
Bootstrap is a front-end framework from Twitter designed to kickstart the front-end development of we-
bapps and sites. Among other things, it includes base CSS and HTML for typography, icons, forms,
buttons, tables, layout grids, navigation along with custom-built jQuery plug-ins and support for respon-
sive layouts.
It is tested and supported in the major modern browsers, such as the latest versions of Safari, Google
Chrome, Firefox 5+, and Internet Explorer 8+.
At its core, Bootstrap is just CSS, but its built with Less, a flexible pre-processor that offers much
more power and flexibility than regular CSS. With Less, we gain a range of features like nested decla-
rations, variables, mixins, operations, and color functions. Additionally, since Bootstrap is purely CSS
when compiled via Less, we gain two important benefits:
First, Bootstrap remains very easy to implement; just drop it in your code and go. Compiling Less
can be accomplished via Javascript, an unofficial Mac application, or via Node.js (read more about this
at http://lesscss.org).
Second, once complied, Bootstrap contains nothing but CSS, meaning there are no superfluous im-
ages, Flash, or Javascript. All that remains is simple and powerful CSS for your web development
needs.
Bootstrap works by providing a clean and uniform solution to the most common, everyday interface
tasks developers come across. At Twitter, Bootstrap has quickly become one of our many go-to front-
end tools when starting new applications and sites.
This is because while it is very extensive, its flexible enough to work for many unique design needs.
5.2.9 Javascript
JavaScript (JS) is a dynamic computer programming language. It is most commonly used as part of web
browsers, whose implementations allow client-side scripts to interact with the user, control the browser,
communicate asynchronously, and alter the document content that is displayed. It is also being used in
server-side programming, game development and the creation of desktop and mobile applications.
JavaScript is a prototype-based scripting language with dynamic typing and has first-class functions.
Its syntax was influenced by C. JavaScript copies many names and naming conventions from Java, but
the two languages are otherwise unrelated and have very different semantics. The key design principles
within JavaScript are taken from the Self and Scheme programming languages.[6] It is a multi-paradigm
language, supporting object-oriented,imperative, and functional programming styles.
Like Java, this is a programming language designed by Sun Microsystems, in conjunction with
Netscape, that can be integrated into standard HTML pages. While JavaScript is based on the Java
syntax, it is a scripting language, and therefore cannot be used to create stand-alone programs. Instead,
it is used mainly to create dynamic, interactive Web pages.
For example, Web developers can use JavaScript to validate form input, create image rollovers, and
to open those annoying pop-up windows. Like so many other things, we have to take the good with the
bad.
5.3 Models
5.3.1 ER Diagram
Also called an entity-relationship (ER) diagram, a graphical representation of entities and their relation-
ships to each other, typically used in computing in regard to the organization of data within databases or
information systems. An entity is a piece of data-an object or concept about which data is stored.
Chapter 6
Chapter 7
For detection of image ,tiff images are used which are very memory consuming.but tiff images give
better image quality and its detections.so in future,we can make use of less memory images which help
to reduce memories wastage.
Although we are scanning the images with help of scanner devices but the hardware is much more
costlier . In future we can take the snapshots of sheets with help of our mobile phone,but for this we
need to scale the image in more appropriate way.
If in future all the restriction of this software is able to removed then it will be possible to implement
it to overall indian as well as world colleges.
7.2 Conclusion
This project is an application that perform OMR technique to extract students attendance using an ordi-
nary scanner. It provides tools to the user to design an OMR sheet based on the layout they want. The
design of the sheet will be stored as image le format (Tiff). The user can take as many print outs as
required, distribute it among others from whom information is desired, and get the lled sheets scanned.
The scanned image les will then be provided as input to the software, processing will be done, value
of lled elds will be extracted and then the data will be manipulated as instructed by the user and then
storage of data will be done in database.
OMR based Attendance system is a robust and low-cost OMR technique that can be adopted widely
in the developing countries. Partially resolves the drawbacks of traditional OMR technique and im-
proves its usability.If this system is implemented successfully, the teachers of colleges will be capable
of designing attendance sheets by themselves and the supervisor of colleges can adopt this technique to
investigate the students attendance as well as their attention towards studies easily and quickly.
References
[1] Optical mark reading;A. M. Smith, In Proceedings of the 9th annual ACM SIGUCCS conference
on User services, United States, 1981, pp: 257263.
[2] OCR and OMR Are Hotter Than Ever;; Moore B, http://www.idat.com/a-ocromr.html (DOV 16
Sep, 2003)
[3] Optical Mark Recognition;Bergeron B P , Postgraduate Medicine, 104(2): 23-24
[4] Optical Mark Recognition-FAQ,http://tev.itc.it/people/modena/kia-ocr-faq.html.
[5] ICR/OCR/OMR component for Win32 and .net,http://www.pegasustools.com
[6] http://en.wikipedia.org/wiki/Optical mark recognition
Appendix A
Project Hosting
The project is hosted at Google Code. The complete source code along with the manual to operate the
project and supplementary files are uploaded.
QR CODE: