Project Report on WinDroid Application for e-Attendance 4GH10CS029 POOJA B.S 4GH10CS046 SHRAVYA KUMARI M 4GH09CS001 AKSHAY B.M 4GH08CS037 PRATHAP C.P Under the Guidance of Dr. K.C. Ravishankar B.E.,M.Tech.,Ph.D. Professor and Head Dept. Of Computer Science & Engineering Government Engineering College, Hassan Department Of Computer Science & Engineering Government Engineering College Hassan June, 2014 Government Engineering College, Hassan 573 201 Visvesvaraya Technological University, Belgaum Certicate This is to certify that the project work entitled WinDroid Application for e- Attendance is a bonade work carried out by POOJA B.S (4GH10CS029), SHRAVYA KUMARI M (4GH10CS046), AKSHAY B.M (4GH09CS001) and PRATHAP C.P (4GH08CS037) in partial fulllment of the award of the degree of Bachelor of Engineering in Computer Science Engineering of Visvesvaraya Technological University, Belgaum, during the year 2013 - 2014. It is certied that all corrections / suggestions indicated during internal evaluation have been incorporated in the report. The project report has been approved as it satises the academic requirements in respect of the project work prescribed for the Bachelor of Engineering Degree. Guide and Head of the Department Dr.K.C.Ravishankar B.E.,M.Tech.,Ph.D. Professor and Head ,Dept.of CS&E GEC, Hassan Principal Dr.Karisiddappa B.E.M.Tech.,Ph.D. Principal GEC, Hassan 573 201 Date : Place : Hassan Examiners : 1. 2. Acknowledgement At the outset we express our most sincere grateful thanks to our Guide, Dr. K. C. Ravishankar, Professor and Head, Department of CS & E, for his continous support and advice not only during the course of our project but also during the period of our stay in GECH. We wish to express thanks to our beloved Principal, Dr. Karisiddappa, for encouragement throughout our studies. Finally we express our gratitude to all teaching and non-teaching sta of Deptartment of CSE, our fellow classmates and our parents for their timely support and suggestions. POOJA B.S[4GH10CS029] SHRAVYA KUMARI M[4GH10CS046] AKSHAY B.M[4GH09CS0001] PRATHAP C.P[4GH08CS037] i Table of Contents Table of Contents ii List of Tables iii List of Figures iii Abstract iv 1 Introduction 1 1.1 Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.5 Organization of the report . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Introduction to Android and Biometric Device 4 2.1 Android Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Application Building Blocks . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 Requirements 21 3.1 Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2 Hardware Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4 Design and Implementation 27 4.1 Architectural Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5 Result and Analysis 40 6 Conclusions and Future Enhancement 44 6.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.2 Future Enhancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 ii References 45 Appendices 46 A Conguring Android Development Environment 46 A.1 Installing Android SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 A.2 Creating an Android Application . . . . . . . . . . . . . . . . . . . . . . 47 List of Tables List of Figures 2.1 Architecture of Andriod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2 Biometric Device for Fingerprint . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3 Biometric Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4 Fingerprint Scanner work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.5 Biometric Fingerprint Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.6 Blue-tooth device used for connection . . . . . . . . . . . . . . . . . . . . . . 17 4.1 Architectural Diagram for window application . . . . . . . . . . . . . . . . . 27 4.2 Architectural Diagram for window application . . . . . . . . . . . . . . . . . 29 4.3 Flowchart for User Operation Flow . . . . . . . . . . . . . . . . . . . . . . . 30 4.4 Database Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.1 Server Admin Login Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.2 Server Home Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.3 Client home page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.4 Edit or Delete Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.5 View Attendance Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 iii Abstract Android is a Linux-based operating system which works very ne with touchscreen devices such as smartphones and tablets. It has more sophisti- cated functionalities. Because of its salient features, android became very friendly to the mobile users everywhere. Most of the mobile used nowadays work based on Android operating system. In the beginning, it has been developed a window application for storing student information into the database. Next, is about developing an android application for taking the ngerprint of each student in class room. The win- dow application which contains the basic information about each student who takes admission in the institution like name, USN, branch, date of admission, address of student and contact number has been stored in the database. It also includes a device that takes ngerprint information of each student. Later both, student basic information and ngerprint information will be stored in the college database. The android device consists of an application that sense and takes the n- gerprint of each student present in the class. The collected ngerprints are stored in that application database. Later the stored information is updated to the college database using LAN or Wi-Fi. The collected ngerprint is com- pared with the college database, and corresponding student is made present or absent. iv Chapter 1 Introduction Android is a Linux-based operating system designed primarily for touchscreen mo- bile devices such as smartphones and tablets computers. Because of its salient attracting features, android became very friendly to the mobile users everywhere. Most of the mo- biles used nowadays work based on android operating system. Android gives a well and good experience to the users as well as developers by pro- viding the latest applications built using latest technology. Applications developers are allowed even to access Androids core functionalities so that developers are addicted to- wards the Android application developement. WinDroid is an Android application for taking attendance by biometric methodology with ngerprint scanner. It creates a platform for taking attendance with multiple mod- ules. 1.1 Problem Statement There are many problems with regarding to manual attendance system. There may be chances of mistakes for particular issues. Since the manual attendance system is a lenghty process time can be saved by using other technologies. To overcome this problem regarding attendance, need to minimize the manual attendance system. 1.2 Objectives The objective is important to achieve the goal. The main objective of this project are: 1 WinDroid Application for e-Attendance Chapter 1 To develop the Student Attendance System using Fingerprint Technology. The rst objective is to develop the Student Attendance System (SAS). This sys- tem will integrate with the ngerprint technology, this also record the attendance of students in a class. Provides facilities to the faculty to acccess the information of the student easily. To Compare the eciency between the Proposed system and the Manual system. The second objective is to comapare the Proposed system and the Manual system. This is important to ensure that the proposed system will provide more eciency than the manual system. 1.3 Applications We can get information about the Student time attendance report. Quick attendance set-up. Fingerprint biometric attendance. We can track the absentees and late comers as well. It is more about making student responsible in their punctuality and consistency in time management. All student can view their attendance record using authentication. Avoiding of Proxy attendance. Secured attendance maintenance. Easy tabulated attendance system. 1.4 Motivation Nowadays there are problems regarding manual attendance system. This project mainly intended to reduce the misuse of manual attendance system. Manual attendance system requires more time as it is to be done for each time. Hence to rescue this, this application will provide the e-Attendance system where the manual attendance can be reduced. Dept of CS & E, GEC, Hassan 2 WinDroid Application for e-Attendance Chapter 1 The motivation of this project are existed Android application such a attendance man- ager. Attendance manager is an application which will help to maintain the attendance for each period and each each subject. 1.5 Organization of the report The report is divided into six chapters. The First chapter is the introduction and covers the objectives and scope of the project. Second chapter consists of the area in which the project is designed and imple- mented. Third chapter consists of requirements specication of the project and includes both software and hardware requirements. Fourth chapter describes the architectural design and conceptual design of this project and also the implementation of this project. Fifth Chapter gives about the output, result and analysis and various other aspects such as test cases. The nal chapter is dedicated to the conclusion and further work of the project. Dept of CS & E, GEC, Hassan 3 Chapter 2 Introduction to Android and Biometric Device ANDROID To study and analyze more about the Android programming technique, the following introduction has been done and discussed in this chapter. Android is a software platform and operating system for mobile device based on the Linux operating system and devel- oped by google and the Open Handset Alliance. The unveiling of the Android platform in 5 November 2007 was annnounced with the founding of the Open Handset Alliance,a consortium of 34 hardware,software and tele- com companies devoted to advancing open standards for mobile devices. When released in 2008, most of the Android platform will be made available under the Apache free software and open-source license. 2.1 Android Framework Android is a software stack for mobile devices that includes an operating system, middleware and key applications. It allows developers to write managed code in Java- like language that utilizes Google-developed java libraries,but does not support programs developed in native code. 2.1.1 The Birth of Android Google acquires Android Inc in July 2005, Google acquired Android Inc., a small startup company based in Palo Alto,CA. Androids co-founders who went to work at Google included Andy Rubin(co-founder of Danger),Rich Miner(co-founder of wildfaire 4 WinDroid Application for e-Attendance Chapter 2 communcation,Int),Nick Sears(once VP at T-Mobile) and Chris White(one of the rst enginees at WwbTV).At the time,little was unknown about the functions of Android Inc. Other than they made software for mobile phones. At Google, the team led by Rubin, developed a Linux-based mobile device of which they marketed to handset markets and carries on the premise of providing a exible, upgrad- able systems. It was reported that Google had already lined up a series of hardware component and software partners and signaled to carriers that it was open to various degrees of cooperation on their part. Open handset Alliance Founded on 5 November 2007, the Open Handset Alliance (OHA) a consortium of several companies which include GOOGLE, HTC, Intel, Mototrola, Qual- comm, T-Mobile, Sprint Nextel and NVIDIA,was unveiled with the goal to develop open standards for mobile devices. Along with the formation of the Open Handset Alliance, the OHA also unveiled their rst product, Android an open source mobile device platform based on the linux operating system. Hardware Google has unveiled at least three prototypes for Android, the Mobile Congress on Febru- ary 12,2008. One prototype at the ARM both displayed several basic Google applications. A d-Padcontrol zooming of items in the dock with a relatively quick applications. A pro- totype at the Google IO conference on May 28th,2008 had a 528 MHz qualcomm processor and a synaptic capacitives touch screen and used the UMTS cellular standard. It had 128 MB of RAM and 256 MB of ash,showing that Androids memory requirements are reasonable. The Demo was carried out using a 3.6 Mbits HSDPA connection. 2.1.2 Features Android include many usefull features,some of them are listed below Application Framework It is used to write applications for Android. Unlike other embedded mobile environments, Android applications are equal, for instance which come with the phone are no dirent than those that any developer writes. The framework is supported by numerous open source libraries such as openssl, SQLite and Llibc. It is also supported by the Android core libraries. From the point of security, the framework is based on UNIX le system permissions that assure applications have only those abilities. That mobile phones owner gave them at install time. Dept of CS & E, GEC, Hassan 5 WinDroid Application for e-Attendance Chapter 2 Dalvik Virtual Machine It is extremely low-memory based virtual machine, which was designed especially for An- driod to run on embedded system and work well in low power situations. It also tunes to the CPU attributes. The Dalvik VM creates a special le format(.DEX) that is created through build time post processing. Conversion between Java classes and .DEX format is done by included dex tool. Integrated Browser Google made a right choice on choosing WebKit as open source web browser. They added a two pass layout and frame attering. Two pass layout loads a page without waiting for blocking elements, such as external CSS or external javascript and after a while renders again with all resources downloaded to the device. Frame attering converts founded frames into single one and loads into the browser. These features increase speed and usability browsing the internet via mobile phones. Optimized Graphics An Android has 2D graphics libraries and 3D graphics based in OpenGL ES 1.0,possibly we will see great applications like Google Earth and spectacular like Second Life which come on Linux version. At this moment, the shooting legendry 3D game Doom was pre- sented using Android on the mobile phones. SQLite Extremely small (500KB) relationable database management system, which is integrated in Andriod. Is based on function calls and single le, where all denitions, tables and data are stored. This simple design is more than suitable for a platform such as Andriod. SQLite provides a good database storage for Android applications. Handset Layouts The platform is adaptable for both larger VGA, 2D graphics library, 3D graphics library based on OpenGL Es 1.0 specications, traditional smartphones layouts. An underlying 2D graphics engine is also included. Surface Manager manages access to the display sub- system and seamlessly composites 2D and 3D graphics layers from multiple applications. Data Storage SQLite is used for structured data storage, SQLite is a powerful and lightweight relational database engine available to all applications. Connectivity Dept of CS & E, GEC, Hassan 6 WinDroid Application for e-Attendance Chapter 2 Android supports a wide variety of connectivity technologies including GSM, CDMA, Bluetooth, EDGE, EVDO, 3G and Wi-Fi. Messaging SMS, MMS and XAMPP are available forms of messaging including threaded text mes- saging. Web Browser The web browser available in Andriod is based on the open-source WebKit applications framework. It includes LibWebCore which is a modern web browser engine which powers both the Android web browser and an embeddedable web view. Java Virtual Machine Software written in Java can be compiled into Dalvik bytecodes and executed in the Dalvik virtual machine, which is a specialized VM implementation designed for mobile device use, although not technically a standard Java Virtual Machine. Media Support Android will support advanced audio/video/still media formats such as MPEG-4, h.264, MP, AAC, AMR, JPEG, GIF, PNG. Additional Hardware Support Android is fully capable of utilizing video/still cameras, touchscreens, GPS, compasses, accelorometer and accelarator 3D graphics. Development Environment Includes a device emulator, tools for debugging, memory and performing proling, a plu- gin for the Eclipse IDE. There are a number of hardware dependent features, for instance a huge media and connections support, GPS, imporoved support for camera and simply GSM telephony. A great work was done for the developers to start work with Android using device emulator, tools for debugging and plugin for Eclipse IDE. 2.2 Architecture The following diagram shows the major components of the Android operating sys- tem. Each section is described in more detail below. Dept of CS & E, GEC, Hassan 7 WinDroid Application for e-Attendance Chapter 2 Figure 2.1: Architecture of Andriod 2.2.1 Linux Kernel Android Architecture is based on Linux 2.6 kernel. It helps to manage security, memory management, process management, network stack and other important issues. Therefore, the user should bring Linux in his mobile as the main operating system and install all the drivers required in order to run it. Android provides the support for the Qualcomm MSM7K chipset quality. For instance, the current kernel tree supports Qualcomm MSM7200A chipsets, but in the second half of 2008, we should see mobile devices with stable version Qualcomm MSM 7200, which includes major features. WCDMA/HSUPA and EGPRS network supports, Bluetooth 1.2 and Wi-Fi support, Digital audio support for mp3 and other formats, Support for Linux and other third-party operating systems, Java Hardware acceleration and support for Java applications, Qcamera upto 6.0 megapixels, Dept of CS & E, GEC, Hassan 8 WinDroid Application for e-Attendance Chapter 2 gpsOne solution for GPS, and lots of other. 2.2.2 Libraries In the next level there are a set of native libraries written in C/C++, which are re- sponsible for stable performance no various components. For example, Surface Manager is responsible for composing dierent drawing surfaces on the mobile screen. It manages the access for dierent processes to compose 2D and 3D graphics layers. OpenGL ES and SGL make a core of graphics libraries and are used accordingly for 3D and 2D hardware acceleration. Moreover, it is possible to use 2D and 3D graphics in the same application in Android. The media framework was provided by pocketVideo, one of the members of OHA. It gives libraries for a playback and recording support for all the bitmap and vector fonts. For data storage, Android uses SQLite. As mentioned before, it is extra light rational management system,which locates a single le for all operations related to database. WebKit, the same browser used by Apples Safari, was modied by Android in order to t better in a small size screens. Android includes a set of C/C++ libraries used by variour companies of the Android system. These capabilities are exposed to developers through the Android application framework. Some of the core libraries are listed below. System C library-a BSD-deriverd implementation of the standards C system li- brary(libc),tuned for embedded Linux-based devices. Media Libraries-based on PacketVideos OpenCORE, the libraries supports playback and recording of many popular audio and video formats. As well as static image les, including MPEG4, H.264, MP3, AAC, AMR, JPG and PNG. Surface Manager - manages access to the display subsystem and seamlessly com- posite 2D and 3D graphics layers from multiple applications. LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view. SGL - the underlying 2D graphics engine. 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration or the included, highly optimized 3D software tasterizer. FreeType - bitmap and vector font rendering Dept of CS & E, GEC, Hassan 9 WinDroid Application for e-Attendance Chapter 2 SQLite - a powerful and lightweight relational database engine available to all ap- plications. 2.2.3 Android Runtime At the same level their is Android runtime, where the main component Dalvik Virtual machine is located. It was designed specially for Android running in limited environment, where the limited battery, CPU, memory and data storage are the main issues, Android gives an integrated tool, which converts generated byte from .jar to .dex le, after this byte code becomes much more ecient to run on the small processors. As the result, it is possible to have multiple instances of Dalvik Virtual Machine runnnig on the single device at the same time. The Core libraries are written in Java language and contains of the collection classes, the utilities, IO and other tools. 2.2.4 Application Framework After that, there is Application Framework, written in Java language. It is a toolkit that all applications use, ones which come with mobile devices like contacts or SMS box, or applications written by Google and any Android developer. It has several components. The Activity Manager manages the life cycle of the applications and provide a com- mon navigation back stack for applications, which are running in dierent processes. The Package Manager keeps track of the applications, which are installed in the device. The Windows Manager is Java programming language abstraction on the top of lower level services that are provided by the Surface Manager. The Telephony Manager contains of a set of API necessary for calling applications. Content Providers was built for Android to share a data with other applications, for instance, the contacts of people in the address books can be used in other applications tool The Resources Manager is used to store localized strings, bitmaps, layout le de- scription and other external parts of the applications. The View systems generates a set of buttons and lists used in UI. Other components like Notication manager is used to customize display alerts and other functions. Dept of CS & E, GEC, Hassan 10 WinDroid Application for e-Attendance Chapter 2 2.2.5 Application Layer At the top of Android Architecture it has all the applications, which are used by the nal user. By installing dierent applications, the user can turn his mobile phone into the unique, optimized and smart mobile phones. All applications are written using the Java Programming language. 2.3 Application Building Blocks The major building blocks are these: Activity Intent Receiver Service Content Provider 2.3.1 Activity User interface component, which corresponding to one screen at time. It means that for the simple applications like Address Book, the developer should have one activity for displaying contacts, another activity component for displaying more detailed information of choosen name and etc. 2.3.2 Intent Receiver Wakes up a predened action through the external event. For example, for the appli- cation like e-mail, inbox, the developer should have intent receiver and register his code through XML to wake up an alarm notication, when the user receives email. 2.3.3 Services A task, which is done in the backgroud. It means that the user can start an ap- plication from the activity window and keep the service work , while browsing other applications. For instance, he can browse Google Maps applciation while holding a call or listening music while browsing other applications. Dept of CS & E, GEC, Hassan 11 WinDroid Application for e-Attendance Chapter 2 2.3.4 Content Provider A component, which allows sharing some of the data with other processes and appli- cations. Is is the best way to communicate the application between each other Android will ship with a set of core application including an email client, SMS program, calendar, maps, browser,contacts and others. All applications are written using the Java Program- ming language. 2.3.5 AndroidMainfest.xml The AndroidMainfest.xml le is the control le that tells the system what with all the top-level components (specically activities,service, intent receivers and content providers described above)that are created. A developer should predene and list all components to be use in the specic Android- Mainfest.xml le. It is a required le for all the applications and is located in the root folder. It is possible to specify all global values for the package, all the components and its classes used, intent lters, which describes where and when the certain activity should start, permissions and instruments like security control and testing. BIOMETRIC DEVICE Biometrics refers to the quantiable data (or metrics) related to human characteristics and traits. Biometrics identication (or biometric authentication)is used in computer sci- ence as a form of identication and access control. It is also used to identify individuals in groups that are under survelliance. 2.3.6 Biometric Funtionality Many dierent aspects of human physiology, chemistry or behavior can be used for biometric authentication. The selection of a particular biometric for use in a specic application involves a weighting of several factors. Jain et al. (1999) identied seven such factors to be used when accessing the suitability of any trait for use in biometric authentication. Universality means that every person using a system should possess the trait. Uniqueness means the trait should be suciently dierent for individuals in the relevant population such that they can be distinguished from one another. Permanence relates to the manner in which a trait varies over time. More specically, a trait with good permanence will be reasonably invariant over time with respect to the Dept of CS & E, GEC, Hassan 12 WinDroid Application for e-Attendance Chapter 2 Figure 2.2: Biometric Device for Fingerprint specic matching algorithm. Measurability (collectability) relates to the ease of acquisi- tion or measurement of the trait. In addition, acquired data should be in a form that permits subsequent processing and extraction of the relevant feature sets. Performance relates to the accuracy, speed, and robustness of technology used. Accept- ability relates to how well individuals in the relevant population accept the technology such that they are willing to have their biometric trait captured and assessed. Circumven- tion relates to the ease with which a trait might be imitated using an artifact or substitute. The block diagram illustrates the two basic modes of a biometric system. First, in verication (or authentication) mode the system performs a one-to-one compar- ison of a captured biometric with a specic template stored in a biometric database in order to verify the individual is the person they claim to be. Three steps are involved in the verication of a person. In the rst step, reference models for all the users are generated and stored in the model database. In the second step, some samples are matched with reference models to generate the genuine and impostor scores and calculate the threshold. Dept of CS & E, GEC, Hassan 13 WinDroid Application for e-Attendance Chapter 2 Figure 2.3: Biometric Functionality Third step is, the testing step. This process may use a smart card, username or ID number (e.g. PIN) to indicate which template should be used for comparison. Second, in identication mode the system performs a one-to-many comparison against a biometric database in attempt to establish the identity of an unknown individual. The system will succeed in identifying the individual if the comparison of the biometric sample to a template in the database falls within a previously set threshold. Identication mode can be used either for positive recognition (so that the user does not have to provide any information about the template to be used) or for negative recognition of the person where the system establishes whether the person is who she (implicitly or explicitly) denies to be. 2.3.7 Biometric Fingerprint Scanner Basically biometric device is used to scan the ngerprint of particular eld specied by the user. Here we make use of ngerprint scanner for scanning the nger for atten- dance purpose. A ngerprint scanner system has two basic jobs - It needs to get an image of your nger, Dept of CS & E, GEC, Hassan 14 WinDroid Application for e-Attendance Chapter 2 Figure 2.4: Fingerprint Scanner work and it needs to determine whether the pattern of ridges and valleys in this image matches the pattern of ridges and valleys in pre-scanned images. Only specic characteristics, which are unique to every ngerprint, are ltered and saved as an encrypted biometric key or mathematical representation. No image of a ngerprint is ever saved, only a series of numbers (a binary code), which is used for verication. The algorithm cannot be reconverted to an image, so no one can duplicate the ngerprints. Figure 2.5: Biometric Fingerprint Scanner IC CHIPS The MAX232 IC is used to convert the TTL/CMOS logic levels to RS232 logic levels during serial communication of microcontrollers with PC. The controller operates at TTL logic level (0-5V) whereas the serial communication in PC works on RS232 standards (-25 Dept of CS & E, GEC, Hassan 15 WinDroid Application for e-Attendance Chapter 2 V to + 25V). This makes it dicult to establish a direct link between them to commu- nicate with each other. The intermediate link is provided through MAX232. It is a dual driver/receiver that includes a capacitive voltage generator to supply RS232 voltage levels from a single 5V supply. Each receiver converts RS232 inputs to 5V TTL/CMOS levels. These receivers (R1 R2) can accept 30V inputs. The drivers (T1 T2), also called transmitters, convert the TTL/CMOS input level into RS232 level. The transmitters take input from controllers serial transmission pin and send the output to RS232s receiver. The receivers, on the other hand, take input from transmission pin of RS232 serial port and give serial output to microcontrollers receiver pin. MAX232 needs four external capacitors whose value ranges from 1F to 22F. Microcontroller A microcontroller (sometimes abbreviated C, uC or MCU) is a small computer on a single integrated circuit containing a processor core, memory, and programmable in- put/output peripherals. A microcontroller can be considered a self-contained system with a processor, memory and peripherals and can be used as an embedded system. The majority of microcon- trollers in use today are embedded in other machinery, such as automobiles, telephones, appliances, and peripherals for computer systems. Microcontrollers were originally programmed only in assembly language, but various high-level programming languages are now also in common use to target microcontrollers. These languages are either designed specially for the purpose, or versions of general pur- pose languages such as the C programming language. Bluetooth Bluetooth is a wireless technology standard for exchanging data over short distances (using short-wavelength UHF radio waves in the ISM band from 2.4 to 2.485 GHz[2]) from xed and mobile devices, and building personal area networks (PANs). Bluetooth operates in the range of 24002483.5 MHz (including guard bands). This is in the globally unlicensed (but not unregulated) Industrial, Scientic and Medical (ISM) 2.4 GHz short- range radio frequency band. Bluetooth uses a radio technology called frequency-hopping spread spectrum. Bluetooth operates in the range of 24002483.5 MHz (including guard bands). This is in Dept of CS & E, GEC, Hassan 16 WinDroid Application for e-Attendance Chapter 2 Figure 2.6: Blue-tooth device used for connection the globally unlicensed (but not unregulated) Industrial, Scientic and Medical (ISM) 2.4 GHz short-range radio frequency band. Bluetooth uses a radio technology called frequency-hopping spread spectrum. The transmitted data are divided into packets and each packet is transmitted on one of the 79 designated Bluetooth channels. A master Bluetooth device can communicate with a maximum of seven devices in a pi- conet (an ad-hoc computer network using Bluetooth technology), though not all devices reach this maximum. The devices can switch roles, by agreement, and the slave can become the master (for example, a headset initiating a connection to a phone will neces- sarily begin as master, as initiator of the connection; but may subsequently prefer to be slave). Bluetooth is a device which is used to link between the ngerprint and Android device. Fingerprint Scanner Fingerprint scanner is a device which is used to scan the ngerprint. The scanned ngerprint will be accessed by Microcontroller1 and it will send that to another Micro- controller2 for storing purpose. 2.3.8 Performance of Biometrics The following are used as performance metrics for biometric systems: Dept of CS & E, GEC, Hassan 17 WinDroid Application for e-Attendance Chapter 2 False acceptance rate or false match rate (FAR or FMR)-The probability that the system incorrectly matches the input pattern to a non-matching template in the database. It measures the percent of invalid inputs which are incorrectly accepted. In case of similarity scale, if the person is an imposter in reality, but the matching score is higher than the threshold, then he is treated as genuine. This increases the FAR, which thus also depends upon the threshold value False rejection rate or false non-match rate (FRR or FNMR)-The prob- ability that the system fails to detect a match between the input pattern and a matching template in the database. It measures the percent of valid inputs which are incorrectly rejected. Receiver operating characteristic or relative operating characteristic (ROC)- The ROC plot is a visual characterization of the trade-o between the FAR and the FRR. In general, the matching algorithm performs a decision based on a threshold which determines how close to a template the input needs to be for it to be consid- ered a match. If the threshold is reduced, there will be fewer false non-matches but more false accepts. Conversely, a higher threshold will reduce the FAR but increase the FRR. Equal error rate or crossover error rate (EER or CER)-The rate at which both acceptance and rejection errors are equal. The value of the EER can be easily obtained from the ROC curve. The EER is a quick way to compare the accuracy of devices with dierent ROC curves. In general, the device with the lowest EER is the most accurate. Failure to enroll rate (FTE or FER)-The rate at which attempts to create a template from an input is unsuccessful. This is most commonly caused by low quality inputs. Failure to capture rate (FTC)-Within automatic systems, the probability that the system fails to detect a biometric input when presented correctly. Template capacity-The maximum number of sets of data which can be stored in the system. 2.3.9 Types of Biometric DNA Matching-Chemical Biometric The identication of an individual using the analysis of segments from DNA Ear-Visual Biometric The identication of an individual using the shape of the ear. Dept of CS & E, GEC, Hassan 18 WinDroid Application for e-Attendance Chapter 2 Eyes - Iris Recognition-Visual Biometric The use of the features found in the iris to identify an individual. Eyes - Retina Recognition-Visual Biometric The use of patterns of veins in the back of the eye to accomplish recognition Face Recognition-Visual Biometric The analysis of facial features or patterns for the authentication or recognition of an individuals identity. Most face recognition systems either use eigenfaces or local feature analysis Fingerprint Recognition-Visual Biometric The use of the ridges and valleys (minutiae) found on the surface tips of a human nger to identify an individual. Finger Geometry Recognition-Visual/Spatial Biometric The use of 3D geome- try of the nger to determine identity Gait-Behavioural Biometric The use of an individuals walking style or gait to determine identity Hand Geometry Recognition-Visual/Spatial Biometric The use of the geometric features of the hand such as the lengths of ngers and the width of the hand to identify an individual Odour-Olfactory Biometric The use of an individuals odor to determine identity. Signature Recognition-Visual/Behavioural Biometric The authentication of an individual by the analysis of handwriting style, in particular the signature. There are two key types of digital handwritten signature authentication, Static and Dy- namic. Static is most often a visual comparison between one scanned signature and another scanned signature, or a scanned signature against an ink signature. Technology is available to check two scanned signatures using advances algorithms. Dynamic is becoming more popular as ceremony data is captured along with the X,Y,T and P Coordinates of the signor from the signing device. This data can be utilised in a court of law using digital forensic examination tools, and to create a biometric template from which dynamic signatures can be authenticated either at time of signing or post signing, and as triggers in workow processes Typing Recognition-Behavioural Biometric The use of the unique characteristics of a persons typing for establishing identity. Vein Recognition-Vein recognition is a type of biometrics that can be used to identify individuals based on the vein patterns in the human nger or palm. Voice / Speaker Recognition-There are two major applications of speaker recog- nition Dept of CS & E, GEC, Hassan 19 WinDroid Application for e-Attendance Chapter 2 Voice - Speaker Verication / Authentication-Auditory Biometric The use of the voice as a method of determining the identity of a speaker for access control. If the speaker claims to be of a certain identity and the voice is used to verify this claim. Speaker verication is a 1:1 match where one speakers voice is matched to one template (also called a voice print or voice model). Speaker verication is usually employed as a gatekeeper in order to provide access to a secure system (e.g.: telephone banking). These systems operate with the users knowledge and typically require their cooperation. For example, presenting a persons passport at border control is a verication process - the agent compares the persons face to the picture in the document. Voice - Speaker Identication-Auditory Biometric Identication is the task of determining an unknown speakers identity. Speaker identication is a 1:N (many) match where the voice is compared against N templates. Speaker iden- tication systems can also be implemented covertly without the users knowl- edge to identify talkers in a discussion, alert automated systems of speaker changes, check if a user is already enrolled in a system, etc. For example, a police ocer compares a sketch of an assailant against a database of previously documented criminals to nd the closest match(es). In forensic applications, it is common to rst perform a speaker identication process to create a list of best matches and then perform a series of verication processes to determine a conclusive match. Dept of CS & E, GEC, Hassan 20 Chapter 3 Requirements 3.1 Software Requirements The software that are necessary for this project 3.1.1 Operating system Windows XP(32-bit),Vista(32 or 64-bit), or Windows 7(32 or 64-bit), Linux. 3.1.2 Java Development Kit The Java Development Kit(JDK) is an Oracle corporation product aimed at Java de- velopers. Since the introduction of Java,it has been by far the most widely used Java Software Development Kit(SDK). On 17 November 2006 Sun announce that it would be released under the GNU Generic Public License(GPL),thus making it free software. This happened in large part on 8 May 2007.Sun contributed the source code to the Open JDK. The JDK has its primary components a collection of programming tools, including: Java-The leader for Java Applications. This tool is an interpreter and can interpret the class les generated by the javac compiler. Now a single launcher is used for both development and deployment. The old deployment launcher, jre, no longer comes with Sun JDK, and instead it has been replaced by this new java loader. Javac-This compiler which converts source code into Java bytecode. Applet Viewer-The tool which can be used to run and debug Java applets without a web browser. Jar-The archiver, which packages released class libraries into a single JAR le. This tool also helps manage JAR les. 21 WinDroid Application for e-Attendance Chapter 3 The JDK also comes with a complete Java Runtime Environment, usually called a private runtime, due to the fact that it is separated from the regular JRE and has extra contents. It consists of a Java Virtual Machine and all of the class libraries present in the production environment, as well as additional libraries only usefull to developers, such as the internationalization libraries and the IDL libraries. 3.1.3 Android SDK The Android Software Developement Kit includes a comprehensive set of develope- ment tools. These includes a debugger, libraries, a handset emulator based on QEMU documentation, sample code, and tutorials. Currently supported development platforms include computers running Linux, Mac OS X 10.4.9 or later, Windows XP or later. The Ocially supported Integrated Development Environment(IDE) is Eclipse using the An- droid Development Tools(ADT) Plugin, though developers may use any text editor to edit Java and XML les then use command line tools(Java DevelopmentKit and Apache ants) and required to create, build and debug Android applications as well as control at- tached Android devices(e.g.,triggering a reboot, installing software package(s)remotely). Enchancement to Androids SDK go hand in half with the overall Android platform devel- opment. The SDK also supports older versions of the Android platform in case developers which to target their applications at older devices, developement tools are downloadable components, so after one has downloadedthe latest versions and platform, other plat- forms and tools can also be downloaded for compatability testing. Andoird applications are packaged in apk format and stored under /data/app/ folder on the Andoird OS(the folder is accessible only to root user for security reasons). APK package contains .dex les(compiled byte code les called Dalvik executables) resources les, etc. 3.1.4 Eclipse Emulator The Android SDK includes a mobile device emulator, a virtual mobile device that runs on computer. The emulator lets to develop and test Android applications with- out using a physical device. Eclipse is a multi-language software development environ- ment(IDE) and an extensible plug-in system. It is written mostly in Java. It can be used to develop applications in Java and, by means of various plug-ins in other programming language like Android. Dept of CS & E, GEC, Hassan 22 WinDroid Application for e-Attendance Chapter 3 3.1.5 XAMPP 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 Perl programming languages. XAMPPs name is an acronym for: X (to be read as Cross, meaning Cross-platform) Apache HTTP Server MySQL PHP Perl Ocially, XAMPPs designers intended it for use only as a development tool, to allow website designers and programmers to test their work on their own computers without any access to the Internet. To make this as easy as possible, many important security fea- tures are disabled by default. In practice, however, XAMPP is sometimes used to actually serve web pages on the World Wide Web. A special tool is provided to password-protect the most important parts of the package. Once XAMPP is installed, it is possible to treat a localhost like a remote host by con- necting using an FTP client. Using a program like FileZilla, has many advantages when installing a Content Management System (CMS) like Joomla or Wordpress. It is also possible to connect to localhost via FTP with an HTML editor. XAMPP for Windows, including: Apache MySQL PHP phpMyAdmin FileZilla FTP Server Tomcat Strawberry Perl Portable XAMPP Control Panel XAMPP for Linux, including: Dept of CS & E, GEC, Hassan 23 WinDroid Application for e-Attendance Chapter 3 Apache MySQL PHP phpMyAdmin OpenSSL Apache HTTP server The Apache HTTP Server, commonly referred to as Apache , is a web server applica- tion notable for playing a key role in the initial growth of the World Wide Web (WWW). Originally based on the NCSA HTTPd server, development of Apache began in early 1995 after work on the NCSA code stalled. Apache quickly overtook NCSA HTTPd as the dominant HTTP server, and has remained the most popular HTTP server in use since April 1996. In 2009, it became the rst web server software to serve more than 100 million websites. Features Apache supports a variety of features, many implemented as compiled modules which extend the core functionality. Some common language interfaces support Perl, Python, Tcl, and PHP. Popular au- thentication modules include mod access, mod auth, mod digest, and mod auth digest, the successor to mod digest. Popular compression methods on Apache include the external extension module, mod gzip, implemented to help with reduction of the size (weight) of web pages served over HTTP. MYSQL MySQL is (as of March 2014) the worlds second most[nb 1] widely used open- source Relational DataBase Management System (RDBMS). It is named after co-founder Michael Wideniuss daughter, My. The SQL phrase stands for Structured Query Lan- guage. The MySQL development project has made its source code available under the terms of the GNU General Public License, as well as under a variety of proprietary agree- ments. MySQL was owned and sponsored by a single for-prot rm, the Swedish com- pany MySQL AB, now owned by Oracle Corporation. Dept of CS & E, GEC, Hassan 24 WinDroid Application for e-Attendance Chapter 3 Features A broad subset of ANSI SQL 99, as well as extensions. Cross-platform supported. Stored procedures, using a procedural language that closely adheres to SQL/PSM. Strict mode (ensures MySQL does not truncate or otherwise modify data to conform to an underlying data type, when an incompatible value is inserted into that type). Transactions with the InnoDB and NDB Cluster storage engines; savepoints with InnoDB. Full-text indexing and searching (initially a MyISAM-only feature; supported by InnoDB since the release of MySQL 5.6). Partitioned tables with pruning of partitions in optimizer. 3.1.6 IDE Support Although it is possible to develop Android apps with every modern IDE Google rec- ommends doing so is by using the Eclipse IDE with a special plug-in called ADT(Android Developement Tools). The ADT makes use of all the Dev tools that come with the SDK and therefore supports and simplies all the steps from assembling the classes overpack- ing and signing to running the nal application on the emulator. The ADT is not just speeding up the testing process but also relies the developers work in terms of UI creation and applications of what has otherwise have to be written in XML. 3.1.7 Programming Languages The ocially supported programming languages on the Android platform is Java. It is also recommended to have some knowledge of XML as the descriptor le as well as the user interface of an applications is based on that. As the Linux kernel of the Android platform is based on upon an ARM processor archi- tecture is would also be possible to write code in XC or other languages and compile it to ARM native code. Dept of CS & E, GEC, Hassan 25 WinDroid Application for e-Attendance Chapter 3 3.2 Hardware Requirements Processor of Pentium III or above. 1GB or More RAM. Minimum of 5GB hard disk. An Android mobile with Android OS version 2.2 or more. Minimum hardware requirements of Android phone 32MB RAM. 32MB Flash Memory. 200MHz Processor. Dept of CS & E, GEC, Hassan 26 Chapter 4 Design and Implementation 4.1 Architectural Design The gure 4.1 shows architectural diagram represents the basic structure of WinDroid application. Figure 4.1: Architectural Diagram for window application 27 WinDroid Application for e-Attendance Chapter 4 WinDroid is subdivided into following subsystems. Admin Login page subsystem. Student Registration subsystem. Fingerprint scanning subsystem. Faculty subsystem. View attendance subsystem. Admin Loginpage subsystem Admin loginpage is the rst subsystem, the user will meet when using this application. Admin loginpage consists of login procedure before registration of student. Admin will be given an username and also a password to login. Only the admin will have the permission to login for the page. Student Registration subsystem Once the login is made successfully then the registration can be done. Before doing this registration admin must provide some basic information about student like, Name, Sem, USN and also the Fingerprint. Fingerprint scanner will be connected with this appli- cation to take the Fingerprint of each student and store that in the database. After lling these elds the registration will be completed and the lled data will be stored in the database for further use of this application. Once the data has been stored in the database then that data will be used for every purpose. The information must be stored in the proper format. If the information given by the students is made to be edited, then the admin can edit the changes and store the edited information in the same database. Fingerprint scanning subsystem Once the registration is completed, students are requested to give the ngerprint for the purpose of storing data in the database. Fingerprint scanner will scan the data and it will be stored in the database along with the student information. Once this ngerprint is stored this data will be used for all purpose of communication. The ngerprint will be stored in the format of bits. First to register a student, he/she has to give two times trial for registering the ngerprint. The registered ngerprint will be used for further access of information about the student. Faculty subsystem Dept of CS & E, GEC, Hassan 28 WinDroid Application for e-Attendance Chapter 4 Figure 4.2: Architectural Diagram for window application The Faculty subsystem is an Android application which is being used to take the e- Attendance. Once the lectures are given with this application they need to ll the re- quired elds which are in the Android application. The application includes information about Branch, Semester, Faculty ID and the Sub- ject code. These information has been stored to the database. After submitting the data, the application will be linked to the biometric device using bluetooth connectivity. Once the connection has been made then the student is requested to place the nger in the ngerprint scanner. After placing, the scanner will generate an unique ID. If this Unique ID matches with the Unique ID given during the registration time, student is made present, else student is absent. View Attendance subsystem After taking the attendance in the class, the information will be stored in the database. If a student information need to be checked then there will be a window application where admin can view the information. The information will be given that the student was Dept of CS & E, GEC, Hassan 29 WinDroid Application for e-Attendance Chapter 4 present or absent for the class. This can be maintained for a period of month. Android Application Development Biometric Fingerprint scanner Figure 4.3: Flowchart for User Operation Flow 4.1.1 Android Application Development An Android based windroid is an Android application mainly intended for atten- dance taking by ngerprint techonology using biometric device. WinDroid will take the input from the biometric and it will be stored in the database. The project Android based WinDroid mainly consists of two features. A biometric device, which takes the input of ngerprint and save it in the database, and it can be deleted or edited. An Android application to store and retrieve the ngerprint information stored in the database. Dept of CS & E, GEC, Hassan 30 WinDroid Application for e-Attendance Chapter 4 Android based WinDroid is implemented with the help of the software called ECLIPSE Android SDK/ADT. Coming to the architecture of this project, the window application will be used to login to the working with the help of Android application. Once the login is made successfully, user is requested to ll the necessary elds in the application. After lling the elds, ngerprint is taken from the user and that will be stored in the database. After storing the information in the database, Android application is linked to the biometric device with the help of blue-tooth technology support. The ow diagram for this application is as shown in gure. 4.1.2 Database Design create database student data; use student data; create table student (student id varchar(20),student name varchar(20),student sem var- char(20),student department varchar(20),biometric varchar(20)); create table attendance(branch varchar(20),sem varchar(20),d varchar(20),subcode var- char(20),biometric varchar(20),dat varchar(20)); Figure 4.4: Database Design Dept of CS & E, GEC, Hassan 31 WinDroid Application for e-Attendance Chapter 4 4.2 Implementation 4.2.1 Server side implementation public class AdminLoginServlet extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(text/html;charset=UTF-8); PrintWriter out = response.getWriter(); try { String name=request.getParameter(name); String pass=request.getParameter(pass); if(name.equals(admin) pass.equals(admin)) { response.sendRedirect(adminhome.jsp); } else { response.sendRedirect(index.jsp?msg=Wrong Username or Password); } } nally out.close(); } } Login Server To ll the necessary data and to store that data in the database login is required. Client will login to the server application Step 1: class AdminLoginServlet extends HttpServlet Step 2: if(name.equals(admin) pass.equals(admin)) { response.sendRedirect(adminhome.jsp); } Step 3: Dept of CS & E, GEC, Hassan 32 WinDroid Application for e-Attendance Chapter 4 else { response.sendRedirect(index.jsp?msg=Wrong Username or Password); } Student Registration Once the login has made the student information are made entry stored in the database. The student information stored will be made use when the Android application interact with the window application. try student id=request getParameter(sid); student name=request getParameter(sname); student sem=request getParameter(ssem); student department= request getParameter(sdepartment); student biometric= request getParameter(sbiometric); con = MysqlConnection.getMysqlConnection(); pst=con.prepareStatement(select student id from student where student id); pst.setString(1,student id); rst= pst.executeQuery(); if(rst.next()) { rst.close(); pst.close(); pst = con.prepareStatement(insert into student (student id,student name,student sem,student department,biometric) values(,,,,)); pst.setString(1, student id); pst.setString(2, student name); pst.setString(3, student sem); pst.setString(4, student department); pst.setString(5, student biometric); pst.executeUpdate(); pst.close(); response.sendRedirect(adminhome.jsp?msg=Data Uploaded Successfully); } else { response.sendRedirect(adminhome.jsp?msg=Student ID Already Exists); Dept of CS & E, GEC, Hassan 33 WinDroid Application for e-Attendance Chapter 4 pst.close(); } pst.close(); con.close(); } catch (Exception e) { out.println(e.getLocalizedMessage()); }nally { out.close(); } } Step 1: class AdminHomeServlet extends HttpServlet Step 2: try student id= request.getParameter(sid); student name= request.getParameter(sname); student sem = request.getParameter(ssem); student department= request.getParameter(sdepartment); student biometric= request.getParameter(sbiometric); con = MysqlConnection.getMysqlConnection(); pst=con.prepareStatement(select student id from student where student id); pst.setString(1,student id); rst pst.executeQuery(); Step 3: if(rst.next()) { rst.close(); pst.close(); pst = con.prepareStatement(insert into student (student id,student name,student sem,student department,biometric) values(,,,,)); pst.setString(1, student id); pst.setString(2, student name); pst.setString(3, student sem); pst.setString(4, student department); pst.setString(5, student biometric); pst.executeUpdate(); Dept of CS & E, GEC, Hassan 34 WinDroid Application for e-Attendance Chapter 4 pst.close(); response.sendRedirect(adminhome.jsp?msg=Data Uploaded Successfully); } Step 4: else { response.sendRedirect(adminhome.jsp?msg=Student ID Already Exists); pst.close(); } Editing of Student Information Step 1: class StudentEditServlet extends HttpServletRequest Step 2: try { con = MysqlConnection.getMysqlConnection(); pst = con.prepareStatement(update student set student name=?,student sem=?,student department=?,biometric=? where student id=?); pst.setString(1, student name); pst.setString(2, student sem); pst.setString(3, student department); pst.setString(4, student biometric); pst.setString(5, student id); pst.executeUpdate(); pst.close(); con.close(); response.sendRedirect(adminhome.jsp?msg=Student Details Edited Successfully); catch (Exception e) { out.println(e.getLocalizedMessage()); } nally { out.close(); } } Deleting Student Information Step 1: Dept of CS & E, GEC, Hassan 35 WinDroid Application for e-Attendance Chapter 4 class StudentDeleteServlet extends HttpServletRequest Step 2: try { con=MysqlConnection.getMysqlConnection(); st=con.prepareStatement(select from student where student id=?); st.setString(1,sid); rs= st.executeQuery(); if(rs.next()) { rs.close(); st.close(); st=con.prepareStatement(delete from student where student id=?); st.setString(1, sid); st.executeUpdate(); st.close(); con.close(); response.sendRedirect(studentdelete.jsp?msg=Student Deleted Successfully); } else { st.close(); con.close(); response.sendRedirect(studentdelete.jsp?msg=Student does not Exist in Database); } } catch(Exception e) { out.println(e.getMessage()); }nally { out.close(); } } Step 3: { con=MysqlConnection.getMysqlConnection(); st=con.prepareStatement(select from student where student id=?); st.setString(1,sid); Dept of CS & E, GEC, Hassan 36 WinDroid Application for e-Attendance Chapter 4 rs= st.executeQuery(); Step 4: if(rs.next()) { rs.close(); st.close(); st=con.prepareStatement(delete from student where student id=?); st.setString(1, sid); st.executeUpdate(); st.close(); con.close(); response.sendRedirect(studentdelete.jsp?msg=Student Deleted Successfully); } Step 5: else { st.close(); con.close(); response.sendRedirect(studentdelete.jsp?msg=Student does not Exist in Database); } View Attendance Step 1: class MobileUpload extends HttpServlet Step 2: try { String f branch=request.getParameter(Faculty Branch); String f sem=request.getParameter(Faculty Sem); String f Name I D = request.getParameter(Faculty Name ID); Stringf subcode = request.getParameter(Faculty Sub code); Stringbio = request.getParameter(biometric); con = MysqlConnection.getMysqlConnection(); st = con.prepareStatement(insertintoattendance(branch, sem, fid, subcode, biometric, dat)values(, , , , , )); st.setString(1, f branch); st.setString(2, f sem); st.setString(3, f Name I D); st.setString(4, f subcode); st.setString(5, bio); Dept of CS & E, GEC, Hassan 37 WinDroid Application for e-Attendance Chapter 4 st.setString(6, newDate().toLocaleString()); st.execute(); con.close(); out.println(DataUpdatedSuccessfully); } catch(Exception e) { out.println(e.getMessage()); } nally out.close(); } } 4.2.2 Client side Implementation Client side communication is needed to interact with the window side application. An- droid device is used for client side communication. Java programming is used to develop an Android application for client side communication. Application is consists of a menu item where setting menu item is available which is used to give the IP address for com- munication. Step 1: class MainActivity extends Activity implements OnClickListener Step 2: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity main); branch=(TextView) ndViewById(R.id.txt1); sem=(TextView) ndViewById(R.id.txt2); name ID=(TextView) ndViewById(R.id.txt3); sub code=(TextView) ndViewById(R.id.txt4); submit=(Button) ndViewById(R.id.btn1); reset=(Button) ndViewById(R.id.btn2); submit.setOnClickListener(this); reset.setOnClickListener(this); sp = PreferenceManager.getDefaultSharedPreferences(this); String data = sp.getString(address,null); } Step 3: if(data==null) Dept of CS & E, GEC, Hassan 38 WinDroid Application for e-Attendance Chapter 4 { Intent it=new Intent(this,SettingActivity.class); startActivity(it); } } Step 4: public void onClick(View v) { if(v.equals(submit)) { f Branch=branch.getText().toString(); f Sem=sem.getText().toString(); f ID=name ID.getText().toString(); f sub code=sub code.getText().toString(); InfoClass.branch=f Branch; InfoClass.sem=f Sem; InfoClass.d=f ID; InfoClass.sub code=f sub code; Intent it=new Intent(this,BiometricActivity.class); startActivity(it); } Step 5: else { branch.setText(); sem.setText(); name ID.setText(); sub code.setText(); } } } Dept of CS & E, GEC, Hassan 39 Chapter 5 Result and Analysis Server Home Page The gure 5.2 shows the Server home page. User must ll in some basic information such as username and password. Once the username and password is given, then the particular elds such as Student USN, Name, Semester, Subject code and Fingerprint is given and it is stored in the database. Client Home Page The gure 5.3 shows the client home page. Faculty must ll in some basic information such as Faculty code, Semester, Faculty ID and Subject code for the particular subject. After lling these information and storing them in the database, then the biometric de- vice will ask to enter the ngerprint for attendance purpose. This chapters contains discussion of the output of this project and the snapshots of all the modules of this application. The outcome of this project is, 40 WinDroid Application for e-Attendance Chapter 5 Figure 5.1: Server Admin Login Page Figure 5.2: Server Home Page Dept of CS & E, GEC, Hassan 41 WinDroid Application for e-Attendance Chapter 5 Figure 5.3: Client home page Figure 5.4: Edit or Delete Page Dept of CS & E, GEC, Hassan 42 WinDroid Application for e-Attendance Chapter 5 Figure 5.5: View Attendance Page Dept of CS & E, GEC, Hassan 43 Chapter 6 Conclusions and Future Enhancement 6.1 Conclusions Android based e-Attendance is a technology which provides the e-Attendance facility for Student Attendance System(SAS). This project makes the Android device more user friendly. The main use of the WinDroid is to reduce the time which is being wasted for manual attendance system. This will also reduce the paper work needed to maintain the Atten- dance of students. It will help to maintain upto date information about the attendance and can track at any time. 6.2 Future Enhancement Complete package can be developed so that the e-Governance can use this application for regular usage. The project will increase the eciency interms of authentication and authorization. Hardware device can be integrated and hence can be made portable. It can be used to maintain stock used for the purpose of Mid-Day meals. 44 References [1] www.developer.android.com [2] www.eclipse.org [3] https://github.com/FingerJetFXOSE/FingerJetFXOSE [4] https://play.google.com/store/apps/details?id=com.proappdesigns.attendancemanager [5] Shankland,Stephen, Google Android parts ways Java industry group [6] David Meyer,Linux Developer explains Android Kernel Code ZDNet [7] Biometric Scanning Technologies: Finger, Facial and Retinal Scanning by Edmund Spinella [8] Fingerprint Identication in Biometric Security Systems by Mary Lourde R and Dushyant Khosla [9] Biometric Security Using Finger Print Recognition by Subhra Mazumdar, Venkata Dhulipala [10] Subcommittee on Biometrics on National Science and Technology Council 45 Appendix A Conguring Android Development Environment For developing Android application developer, need to install Android SDK and plugins for Eclipse IDE. After installing SDK they need to create a virtual device. This chapter describes installing SDK and creating virtual device. A.1 Installing Android SDK Stpe 1. Preparing Your Development Computer Before getting started with the Android SDK, take a moment to conrm that the devel- opment computer meets the system requirements. In particular, you might need to install JDK, if you dont have it already. If you will be developing in Eclipse with the Android Development Tools(ADT) Plug-in recommended path if you are new to Android make sure that you have a suitable versions of Eclipse installed on your computer as described. If you need to install Eclipse, you can download it from this location.. http://www.eclipse.org/downloads/ Step 2.Downloading the SDK Starter Package The SDK starter package is not a full development environment it includes only the core SDK Tools, which you can use to download the rest of the SDK packages Download SDK starter pckage from www.developer.android.com Step 3.Installing the ADT Plug-in for Eclipse Android oers a custom plug-in for the Eclipse IDE,called Android Development Tools(ADT), that is designed to give a powerful, integrated environment in which to build Android applications. It extends the capabilities of Eclipse let you quickly set up new android projects, create an application UI,debug your applications using android SDK tools, and 46 WinDroid Application for e-Attendance Chapter 6 even exports signed or unsigned APKs inorder to distribute your application. In general, developing in Eclipse with ADT is a highly recommended approach and is the fastest way to get started with Android. Step 4: Adding platform and other packages The last step in setting up your SDK is using the Android SDK manager to download essential SDK packages into your development environment. SDK uses a modular struc- ture that separates the major parts of SDK Android platforms versions, Add-ons, Tools, Samples and Documentation into a set of separately installabale packages. The SDK startup package which you have already downloaded includes only a single package: the latest version of SDK tools. To develop an Android application you also meant to down- load atleast one Android platform and the associated platform tools. You can add other packages and platforms as well, which is highly recommended. A.2 Creating an Android Application Take new Android projects from the le menu. Specify the application name and target to which application to be designed. Create XML views. Implement interaction with XML views with Java Files. Create XML manifest le for that application. Dept of CS & E, GEC, Hassan 47