Anda di halaman 1dari 36

ATTENDANCE AUTOMATION SYSTEM

ABSTRACT
All Educational Organization itself have attendance schema to find out the presence of students and to calculate the average attendance. It is manually difficult to manage the whole records of that educational institute, they are using attendance automation system which customize the student attendance including fine calculation and report generation in easier way. Attendance automation system can enroll students attendance provided by staff and it automatically find the fine calculation and admin can generate report. Our schema provides the better consistency and security.

LIST OF FIGURES: UML DIAGRAM


Data Flow diagram Use case diagram Activity Diagram Class diagram Sequence diagram Communication diagram

INTRODUCTION

1.1 PROBLEM STATEMENT

Now-a-days many educational institution spread its branch in many departments. As the increasing the number of many departments ,the number of students in the college also increase automatically. To manage and find out their presence and absents ,the educational institution need some manage or organized system for attendance attentry. Thats why the Educational institution moves for attendance automation. Our system not only focus on attendance entry but also fine calculation, updating and report generation.

1.2 OBJECTIVE The main objective of our Attendance Automation System is that to avoid the above problem and enhance the system with well defined and managed functions to calculate attendance of the students. Our system enhance the features to calculate the fine amount, Student average attendance and Report generation. The system also provide the user interface with staff and management such that they will easily access any student information.

1.3 SCOPE

Attendance automation system should be User Friendly as well as User Interface. Individual login should be provided for students, staff ,and administrator. Enhance the future schemas and developing should be upgraded. To govern the Attendance system easily by the administrator and proper report can also be generated. Admin can customize fine amount and password from database. To maintain the good security level and access privileges.

1.3.1 EXISTING SYSTEM In some educational institution, still there is manual processing for attendance system. It includes lot of problem in calculating average attendance , fine calculation and report generation. The time taken for this process is also long. Some Educational Institution itself have some Attendance automation which leads to several problem like lack of security and user interface. So these doesnt update properly and its not to upgrade in future.

FACTOR TO OVERCOME : Security User Interface Periodic Updates Future Upgrades Enhance Features

1.3.2 PROPOSED SYSTEM To reduce the time spent on attendance entry manually ,the proposed system is to provide attendance automation capability. This system provides Flexibility of attendance entry,fine calculation,report generation as per department wish. To reduce stress on teachers. A user friendly GUI is used which sparks the automation. We have an effective database management to store all the details and To cover all the features of manually prepared Attendance. The others features lncluded are
Fast access to database Less error More Storage Capacity Quick transaction 24 x 7 availabilty

1.4 SOFTWARE LIFECUCLE MODEL A Software Lifecycle Model is a structure imposed on the development of a software product. There are several models for such processes each describing approaches to a variety of tasks or activities that take place during the process. These models describe phases of the software cycle and the order in which those plans are executed. Presently There are many models and many companies adopt their own,but all have very similar patterns.INCREMENTAL model is the lifecycle model used in this project. Incremental development Various methods are acceptable for combining linear and iterative systems development methodologies, with the primary objective of each being to reduce inherent project risk by breaking a project into smaller segments and providing more ease-of-change during the development process.

The basic principles are: A series of mini-Waterfalls are performed, where all phases of the Waterfall are completed for a small part of a system, before proceeding to the next increment, or Overall requirements are defined before proceeding to evolutionary, mini-Waterfall development of individual increments of a system, or The initial software concept, requirements analysis, and design of architecture and system core are defined via Waterfall, followed by iterative Prototyping, which culminates in installing the final prototype, a working system.

1.4.1 REASON FOR INCREMENTAL MODEL System is developed and delivered in increments after establishing an overall architecture. Requirements and specifications for each increment may be developed. Users may experiment with delivered increments while others are being developed. Intended to combine some of the advantages of prototyping but with a more manageable process and better system structure. Incremental development is especially useful when staffing us unavailable for a complete implementation by the business deadline. Early increments can be implemented with fewer people. 1.5 PROJECT PLAN

NO

COVERAGE

DURATION

1. 2. 3. 4. 5. 6.

Project approval Abstract requirements and specification Design Coding and testing Demo and graphed project reporting Final submission

8-7-11 22-7-11 5-8-11 12-8-11 9-9-11 16-9-11

2. REQUIREMENT ANALYSIS
2.1.1 FUNCTIONAL REQUIREMENTS A functional requirement defines a function of a software system and its component. A function is described as a set of inputs, the behavior, and outputs . Functional requirements may be calculations, technical details, data manipulation and processing and other specific functionality that define what a system is supposed to accomplish. Separate login is provided in order to prevent unauthorized users from accessing the system. Students can only view their attendance information and can customize their password. Staff and Students have certain constraints in order to prevent any illegal activities. The constraints may be time and date for attendance entry. The Administrator is the higher authority who can access all data in the database. The database should be more consistant and updated periodically. 2.1.2 NON- FUNCTIONAL REQUIREMENTS Non-functional requirement is a requirement that specifies the criteria that can be used to judge the operation of a system rather than specific behaviors. Non-functional requirements are often called qualities of a system. Other terms for non-functional requirements are constraints, quality attributes, quality goals, quality of service requirements and non-behavioral requirements. PERFORMANCE REQUIREMENTS SAFETY REQUIREMENTS SECURITY REQUIREMENTS SOFTWARE QUALITY ATTRIBUTES

RELIABILITY REQUIREMENT

2.1.3 HARDWARE REQUIREMENTS

SERVER SIDE PROCESSOR RAM DISK SPACE CLIENT SIDE PROCESSOR : RAM : DISK SPACE : Pentium II at 3.0 GHZ 100 MB 1 GB : : : Pentium II at 1 GHZ 512 MB 2.5 GB

2.1.4 SOFTWARE REQUIREMENTS

SERVER SIDE

FRONT END BACKEND WEB SERVER OPERATING SYSTEM

: PHP (PHPMYADMIN) : MySql : APACHE and IAS : UBUNTU LINUX 10.0 and WINDOWS XP,VISTA ,7

CLIENT SIDE

BROWSER WEB SERVER OPERATING SYSTEM

: Internet Explorer, Mozilla Firefox, Google Chrome : APACHE : UBUNTU LINUX 10.0 and WINDOWS XP,VISTA ,7

2.2 MODULE SPECIFICATION


2.2.1 LOGIN MODULE 2.2.2 ADMINISTRATOR MODULE 2.2.3 STAFF MODULE 2.2.4 STUDENT MODULE

2.2.1 LOGIN MODULE Admin Staff Student This modules provides an authorized user by providing authentication.Thus this modules ensures security by means of providing valid user with the help of authentication.This stores the information about the valid user to the database. The seperate login is given for Admin,staff and students. This holds information such as: login Password Checking of details in database

2.2.2 ADMINISTRATOR MODULE Report Generation Report generation comes under admin category who can generate report according to date wise as well as semester wise .

The foundation of this process involves Year Semester Departments Date wise report

Fine Calculation Fine calculation can be done by admin. According to the report generation, Admin calculate the fine amount of every students. Any changes in the fine amount and new schema can be updated only by admin.

Adding and editing batches and logins New student batched and staff login can be added and editing the existing once can be take care in this module. This can be done by admin.

Configure the database Admin can configure the database in such a way that all data are maintaining consistency. They can also set the semester date and changing the password etc.

2.2.3 STAFF MODULE Attendance Entry The staff has separate login in enter their attendance according to the subject.By entering the roll no ,they can easily get all student attendance information to verify.

The staff have some constraints in entry in such a way that the staff should select their subjects students, attendance entry only for some time. Leave form entry The student enter the leave form if they have to take leave and they provide it to their corresponding staff, then staff should enter the leave form in his attendance details so that the student not fined for that leave.

2.2.4 STUDENT MODULE Login The student has special login username and password. The user can customize their password. View Attendance The students can view attendance after login. They are only provided for view not for edit and update. The students can customize their password.

3.1 SYSTEM DESIGN


3.1 UML DIAGRAMS USE CASE DIAGRAM ACTIVITY DIAGRAM CLASS DIAGRAM SEQUENCE DIAGRAM COLLABORATION DIAGRAM

USECASE DIAGRAM

ACTIVITY DIAGRAM FOR LOGIN PAGE

ACTIVITY DIAGRAM FOR ATTENDANCE ENTRY PAGE

FINE CALCULATION

STUDENT ACTIVITY

ADMIN CUSTOM

CLASS DIAGRAM

SEQUENCE DIAGRAM

COLLABORATION DIAGRAM

4. CODINGS
ATTENDANCE ENTRY
<?php session_start(); if(!((isset($_SESSION['staff'])) || (isset($_SESSION['admin'])))) header("location:index.php"); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> <link href="jquery/jquery-ui.css" rel="stylesheet" type="text/css"/> <script src="jquery/jquery.min.js"></script> <script src="jquery/jquery-ui.min.js"></script> <script> $(document).ready(function() { $("#datepicker").datepicker(); }); </script> <style type="text/css"> .date { margin: auto 300px auto 300px; background-color: #b1eeff; padding: 50px 50px ; width: 150px; } .lhead1 { background-color: black; margin: 50px auto auto auto; height: 30px; width: 230px; padding-left: 10px; padding-right: 10px; padding-top: 10px; padding-bottom: 10px; text-align: center; } .date a { color:white; font-family: "Times New Roman", Times, serif; margin-right: 1000px; font-weight: bold; } #content-box1

{ background-color: white; height: 400px; } </style> <script type="text/javascript"> function clear1() { document.form1.date1.value=""; } function display() { document.form1.date1.value="yyyy/mm/dd"; } function validate() { if((document.form1.date1.value=="yyyy/mm/dd" || document.form1.date1.value=="")) { alert("enter the date"); return false; } if(document.form1.sem.value=="select") { alert("enter Sem"); return false; } if(document.form1.sec.value=="") { alert("enter Section"); return false; } if(document.form1.hr1.checked==false && document.form1.hr2.checked==false && document.form1.hr3.checked==false && document.form1.hr4.checked==false && document.form1.hr5.checked==false && document.form1.hr6.checked==false && document.form1.hr7.checked==false) { alert("select atleast one hour"); return false; } return true; } </script> </head> <body> <?php

if(isset($_SESSION['admin'])) include 'adminmenu.php'; elseif(isset($_SESSION['staff'])) include 'staffmenu.php'; else include 'menu.php'; for($i=1;$i<=7;$i++) { unset($_SESSION['h'.$i]); } unset($_SESSION['def_atten']); ?>

<form name="form1" action="attcheckdate.php" method="post"> <div class="lhead1"> <a href="#"> ATTENDANCE ENTRY </a> </div> <div class="date"> <table> <tr><td>Date</td><td><input type="text" id="datepicker" name='date1' value="yyyy/mm/dd" onfocus="clear1();" size="10"/></td></tr> <!--<tr><td> Batch</td><td><select name="batch"> <option>select</option> <?php include 'batch.php';?> </select>(Joining Year)</td></tr>--> <!--<tr><td>Department</td><td><select name="dept"> <option>select</option><?php include 'depts.php';?></select></tr></td>--> <tr><td>Semester</td><td><select name="sem"><option>select</option> <?php for($i=1;$i<=8;$i++) echo '<option>'.$i.'</option>'; echo '</select><br>'; ?></tr> <tr><td>Section</td><td><input type="text" name="sec" id="sec" size="10"></td></tr><tr><td colspan="2" align="center" height="58" style="vertical-align:middle;">Select Hours</td></tr><tr> <?php for($i=1;$i<=7;$i++) { echo '<td width=\"80\">hour'.$i.'<input type="checkbox" name="hr'.$i.'" id="hr'.$i.'"></td>'; if($i==2 || $i==4 || $i==6) echo "</tr><tr>"; } echo "</tr>"; ?></table> <center> <input type="submit" id="click1" value="submit" onclick="return validate();"></center> <?php if(!$_REQUEST['err']) { $err=""; } else { if($_REQUEST['err']==1) { $err="Supplied Date is out of Range..";

echo "<h3>" . $err . "</h3>" ; } elseif($_REQUEST['err']==-1) { $err="Oops... An Unrecoverable Fatal Error Occured... Please contact your adminstrator immediately."; echo "<h3>" . $err . "</h3>" ; } else { $err="Oops... Looks like something went wrong..."; echo "<h3>" . $err . "</h3>" ; } } ?> </div><br><br><br><br><br><br><br> </form> </div> </body> </html>

UPDATE FINE
<?php session_start(); if(!(isset($_SESSION['admin']))) header("location:index.php"); include 'phpdb.php'; mysql_select_db('authen') or die("<h3>A Fatal Unrecoverable error occured.... Please Contact your adminstrator immediately..</h3>"); $sem=$_REQUEST['sem']; $finehrs=0; $fineamt=0; $totfine=0; $query=mysql_query("select joiningyear from batch") or die("<h3>A Fatal Unrecoverable error occured while reading batches.... Please Contact your adminstrator immediately..</h3>"); $i=0; while($row=mysql_fetch_array($query)) { $year[$i++]=$row['joiningyear']; } //print_r($year); $query=mysql_query("select depts from depts") or die("<h3>A Fatal Unrecoverable error occured while reading departments.... Please Contact your adminstrator immediately..</h3>"); $j=0; while($row=mysql_fetch_array($query)) { $dept[$j++]=$row['depts']; } for($l=0;$l<$i;$l++)

{ $finetab='`'.$year[$l].'`'; $viewtab='`'.$year[$l].$sem.'`'; //echo "<br>".$finetab; for($k=0;$k<$j;$k++) { $seldb='attendance-'.$dept[$k]; $finedb='fine-'.$dept[$k]; //echo "<br>".$seldb; mysql_select_db($seldb) or die("<h3>Updation failed for ".$dept[$k]." department.Subsequent operations aborted.</h3>"); $clmns=mysql_query("show columns from $viewtab"); if(!$clmns) echo '<h3>Oops.. No record found for the semester/batch in '.$dept[$k].'<br>If you think this is an error please contact the adminstrator immediately.</h3>'; else { $clmnsnum=mysql_num_rows($clmns); //echo "<h3> Columns ".$clmnsnum."</h3>"; echo "Started Updation for ".$dept[$k]."Dept..... "; $find=mysql_query("select rollno from $viewtab"); while($findrow=mysql_fetch_array($find)) { $nowroll=$findrow['rollno']; $getabs=mysql_query("select * from $viewtab where rollno=$nowroll"); $getarr=mysql_fetch_array($getabs); for($di=3;$di<$clmnsnum;$di++) { $showclmns=mysql_field_name($getabs,$di); $dayfine=$getarr[$showclmns]; $len=strlen($dayfine); for($i=0;$i<$len;$i++) { $res=substr($dayfine,$i,1); if($res=='a')$finehrs++; } if($finehrs>=3)$fineamt=30; else $fineamt=$finehrs*10; $totfine=$totfine+$fineamt; $finehrs=$fineamt=0; } mysql_select_db($finedb); $fineupdt=mysql_query("update $finetab set fine=$totfine where rollno=$nowroll") or die("<h3>Abnormal termination while updation. This may result in inconsistency...Please Contact the Admin Immediately and correct the issue.Subsequent operations aborted.</h3>"); $totfine=0; mysql_select_db($seldb); } } echo $dept[$k]." Updation Complete"; } }?>

ATTENDANCE REPORT
<?php if(isset($_SESSION['admin'])) include 'adminmenu.php'; elseif(isset($_SESSION['staff'])) include 'staffmenu.php'; else include 'menu.php'; ?> <?php include 'phpdb.php'; $dept=$_REQUEST['dept']; $section=$_REQUEST['sec']; $sem=$_REQUEST['sem']; $batch=$_REQUEST['batch']; $viewatt='`' . $batch . $sem . '`'; $fdate=$_REQUEST['fdate']; $fsomedate=strtotime($fdate); $finsdate=date('Y-m-d',$fsomedate); $gnfromdate=strtotime($finsdate); $fsearchdate= '`' . $finsdate . '`'; $tdate=$_REQUEST['tdate']; $tsomedate=strtotime($tdate); $tinsdate=date('Y-m-d',$tsomedate); $gntodate=strtotime($tinsdate); $tsearchdate= '`' . $tinsdate . '`'; $db="attendance-".$dept; mysql_select_db($db) or die("<h3>A Fatal, Unrecoverable Error Occured...<br>Please contact your adminstrator immediately.."); $clmns=mysql_query("show columns from $viewatt"); $clmnsnum=mysql_num_rows($clmns); $find=mysql_query("select * from $viewatt where section='$section'"); echo "<div id='atten'>"; echo "<center><br><h2>Attendance Report</h2><br></center>"; echo '<p style="position:relative;left:15px;top:5px;font-size:15px;fontweight:bold;">'; echo "<table style=\"width:400px;\" id=\"info\"><tr><td>Department : ".$dept."</td><td>Batch : ".$batch."</td>"."</td><td></td><td>Section : ".$section."</td></tr>"; echo "<tr><td>From Date : ".$fdate."</td><td></td><td>To Date : ".$tdate."</td></tr></table>"; echo '<center><p style="position:relative;top:5px;">'; echo "<table border=\"1\"><tr><td width=\"80\" bgcolor=\"#56A5EC\">RollNo</td><td width=\"80\" bgcolor=\"#56A5EC\">Name</td>"; for($di=2;$di<$clmnsnum;$di++) { $showclmns=mysql_field_name($find,$di); $dbdate=strtotime($showclmns); if($dbdate>=$gnfromdate) break; }

while($dbdate<=$gntodate) { $showclmns=mysql_field_name($find,$di++); $dbdate=strtotime($showclmns); if(!$dbdate)break; echo "<td width=\"100\" bgcolor=\"#56A5EC\">" . $showclmns . "</td>"; $showclmns=mysql_field_name($find,$di); $dbdate=strtotime($showclmns); } echo "</tr>"; while($daydisp=mysql_fetch_array($find)) { echo "<tr><td width=\"80\">" . $daydisp['rollno'] . "</td>"; echo "<td width=\"150\">" . $daydisp['name'] . "</td>"; for($di=2;$di<$clmnsnum;$di++) { $showclmns=mysql_field_name($find,$di); $dbdate=strtotime($showclmns); if($dbdate>=$gnfromdate) break; } while($dbdate<=$gntodate) { $showclmns=mysql_field_name($find,$di++); $dbdate=strtotime($showclmns); if(!$dbdate)break; $atten=$daydisp[$showclmns]; if(!$atten) echo "<td width=\"80\">" . "No Attendance" . "</td>"; else echo "<td width=\"80\">" . $atten . "</td>"; $showclmns=mysql_field_name($find,$di); $dbdate=strtotime($showclmns); } echo "</tr>"; }

echo "</table></p></center></div>"; ?> <?php //<p style="position:absolute;bottom:2px;padding-left:50%;"> echo '<br><center><input type="button" value="Print Report" onclick="javascript:print()"></center><br><br>';?>

5. TESTING
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bucks (errors or other defects). Software testing can be stated as the process of validating and verifying that a software program/application/product: 1. Meets the requirements that guided its design and development; 2. Works as expected; and 3. Can be implemented with the same characteristics.

Integration testing Integration testing is any type of software testing that seeks to verify the interfaces between components against a software design. Software components may be integrated in an iterative way or all together ("big bang"). Normally the former is considered a better practice since it allows interface issues to be localized more quickly and fixed. Integration testing works to expose defects in the interfaces and interaction between integrated components (modules). Progressively larger groups of tested software components corresponding to elements of the architectural design are integrated and tested until the software works as a system. REGRESSION TESTING Regression testing focuses on finding defects after a major code change has occurred. Specifically, it seeks to uncover software regression or old bugs that have come back. Such regressions occur whenever software functionality that was previously working correctly stops working as intended. Typically, regressions occur as an unintended consequence of program changes, when the newly developed part of the software collides with the previously existing code. Common methods of regression testing include re-running previously run tests and checking whether previously fixed faults have re-emerged.

BLACK BOX TESTING


Black box testing treats the software as a "black box"without any knowledge of internal implementation. Black box testing methods include: equivalence partitioning boundary value analysis ,all-pairs testing, fuzz testing , model-based testing , exploratory testing and specification-based testing.

White Box
White box some times called Glass box testing is a test case design uses the control structure of the procedural design to drive test case. Using white box testing methods, the following tests where made on the system A) All independent paths within a module have been exercised once. In our system, ensuring that case was selected and executed checked all case structures. The bugs that were prevailing in some part of the code where fixed b) All logical decisions were checked for the truth and falsity of the values.

SCREENSHOTS
INDEX

ATTENDANCE WITH DATE

ATTENDANCE ENTERED

LEAVE FORM

SPECIAL FINE

ATTENDANCE REPORT

STUDNT VIEW

7. CONCLUSION

Our project surely satisfy the user for managing student attendance entry. Several features like fine calculation , leave form updation and report generation makes the admin process easily. Our project also adapt for future enhancement which lead better performance to the system.

8. FUTURE ENHANCEMENT
In future we will include the following Very good user interface Alert message to students and parents for maintaining low attendance Alert message for high amount of fine. Pay per fine system.

Anda mungkin juga menyukai