A PROJECT REPORT ON
Attendance Management System Using Face
Recognition
By
Nevil Parmar (CE093) (18CEUBG023)
B. Tech CE Semester - VI
Subject: Object Oriented Software Engineering
Guided By:
Prof. Mrudang T. Mehta Prof. Jatayu H. Baxi
Associate Professor Assistant Professor
Dept. Of Computer Dept. Of Computer
Engineering Engineering
Faculty of Technology
Department of Computer Engineering
Dharmsinh Desai University
1
Faculty of Technology
Department of Computer Engineering
Dharmsinh Desai University
CERTIFICATE
This is to certify that the practical / term work carried out in the subject
of
Object Oriented Software Engineering and recorded in this journal
is the
bonafide work of
Nevil Parmar (CE093) (18CEUBG023)
of B. Tech semester VI in the branch of Computer Engineering
during the academic year 2020-2021.
Prof. Mrudang T.
Mehta
Associate Professor, Prof. Jatayu H. Baxi
Dept. of Computer Assistance Professor, Dr. C. K. Bhensdadia,
Eng., Dept. of Computer Head,
Faculty of Eng., Dept. of Computer
Technology, Faculty of Eng.,
Dharmsinh Desai Technology, Faculty of
University, Nadiad Dharmsinh Desai Technology,
University, Nadiad Dharmsinh Desai
University, Nadiad
Table of Contents
2
Abstract 4
Introduction 5
Software Requirements Specification - SRS 6
Design 9
Class Diagram 9
State Diagram 10
Use case Diagram 11
Sequence Diagram 12
Activity Diagram 15
Collaboration Diagram 18
ER Diagram 18
Component Diagram 19
Package Diagram 20
Deployment Diagram 21
Data Dictionary 21
Implementation Details 23
Modules 23
Function prototypes which implement major functionality 23
Testing 24
Screenshots 25
Conclusion 31
Limitation and Future Extensions 32
● Limitations 32
● Functionalities not implemented 32
● Possible future extensions 32
Bibliography 33
3
Abstract
This project involves building an attendance system which utilizes facial
recognition to mark the presence, time-in, and time-out of employees. It
covers areas such as facial detection, alignment, and recognition, along with
the development of a web application to cater to various use cases of the
system such as registration of new employees, addition of photos to the
training dataset, viewing attendance reports, etc. This project intends to
serve as an efficient substitute for traditional manual attendance systems. It
can be used in corporate offices, schools, and organizations where security is
essential.
Purpose
The purpose of this document is to specify software requirements of the
Attendance Management System Using Face Recognition. It is intended to be
a complete specification of what functionality the Attendance Management
System provides.
Furthermore, this project aims to automate the traditional attendance
system where the attendance is marked manually. It also enables an
organization to maintain its records like in-time, out time, break time and
attendance digitally. Digitalization of the system would also help in better
visualization of the data using graphs to display the no. of employees
present today, total work hours of each employee and their break time. Its
added features serve as an efficient upgrade and replacement over the
traditional attendance system.
Scope
Facial recognition is becoming more prominent in our society. It has made
major progress in the field of security. It is a very effective tool that can help
low enforcers to recognize criminals and software companies are leveraging
the technology to help users access the technology. This technology can be
further developed to be used in other avenues such as ATMs, accessing
confidential files, or other sensitive materials.
4
This project servers as a foundation for future projects based on facial
detection and recognition. This project also convers web development and
database management with a user-friendly UI. Using this system any
corporate offices, school and organization can replace their traditional way of
maintaining attendance of the employees and can also generate their
availability(presence) report throughout the month.
Introduction
- Brief Introduction
This project aims to automate the traditional attendance system where
the attendance is marked manually. It also enables an organization to
maintain its records like in-time, out time, break time and attendance
digitally. Digitalization of the system would also help in better
visualization of the data using graphs to display the no. of employees
present today, total work hours of each employee and their break time.
Its added features serve as an efficient upgrade and replacement over
the traditional attendance system.
- Technology/Platform/Tools used
Technology:
● Django
● OpenCV
● Dlib
● Open-Source Face Recognition Library
● SQLITE Database.
● JavaScript
● Bootstrap
Platform:
● Windows
● Linux
Tools:
● Visual Studio Code / PyCharm
5
Software Requirements Specification - SRS
We have 2 types of users of the system.
1. Employee
2. Admin
Following functionalities can be performed by the admin:
Login
Register new employees to the system
Add employee photos to the training data set
Train the model
View attendance report of all employees. Attendance can be filtered
by date or employee.
Following functionalities can be performed by the employee:
Login
Mark his/her time-in and time-out by scanning their face
View attendance report of self
6
Functional Requirements
1.1 Manage Registration and Login
1.1.1 Register new employee
Description: Admin can register new
Input: Employee Details
Output: success message displaying the user has been created.
1.1.2 Log-In to the system
Input: User credentials
Output: If the credentials are correct, user will be redirected to the
dashboard of the system
Exception Flow: If the entered credentials are incorrect then user will be
redirected to the login page again displaying an error message.
1.2 Manage Attendance Details
1.2.1 Mark your attendance-in
Input: User will scan his/her face using the external web camera.
Output: system will identify the user uniquely and will mark his/her in-time to
the database. The same success message will be transmitted to the user.
1.2.2 Mark your attendance-out
Input: User will scan his/her face using the external web camera.
Output: system will identify the user uniquely and will mark his/her out-time
to the database. The same success message will be transmitted to the user.
1.2.3 View my attendance report
Description: Employee may often need to see his / her attendance record
throughout the month or year. Using this feature one can see his / her
attendance record till the date.
Input: User selection
Output: Statistical analytics of the particular employee who is currently
logged into the system will be displayed.
7
1.2.4 View employee’s attendance report
Description: This feature is for admin. Admin can monitor the availability of
each employee till the date. i.e., how many employees are present today out
of total employees etc. can be monitored.
Input: user selection
Output: Attendance record of each employee including how many employees
are present today out of total along with the availability graph.
1.3 Manage Employee Details
1.3.1 Add photo of the employee
Description: Admin only can access this feature. Admin can add a photo of
an employee during the registration process.
Input: Username of an employee
Output: Success message record has been added.
Process: System will process an image and will generate necessary system
data to identify each employee uniquely.
1.3.2 Train the system
Input: user selection
Output: system will process all the available records of the employees and
will generate necessary system data to identify each employee uniquely.
8
Design
Class Diagram
9
State Diagram
10
11
Use case Diagram
12
Sequence Diagram
13
14
15
Activity Diagram
16
17
18
Collaboration Diagram
ER Diagram
19
Component Diagram
20
Package Diagram
21
Deployment Diagram
Data Dictionary
User
No Field name Data Required Unique PK / Ref. Table
type FK
1 UserId int true true PK -
2 Email string true true - -
3 Name string true false - -
4 Password string true false - -
5 CreatedAt Datetime true false - -
6 UpdatedAt Datetime True False - -
22
Present
No Field name Data Required Unique PK / Ref. Table
type FK
1 PId int true true PK -
2 Date Datetime True False - -
3 User User True False FK Users
4 Present Boolean True False - -
Time
No Field Data Require Unique PK / FK Ref.
name type d Table
1 TId int true true PK -
2 Date Datetime true True - -
3 User Users True False FK Users
4 Time Datetime False False - -
5 Out Boolean True False - -
23
Implementation Details
Modules
The features of the system are mainly divided into 3 modules.
Registration and Login Module
This module mainly deals with the functionalities related to the registration
of any new employee to the organization, Log into the system and managing
employee’s profile details. Using features provided by this module admin can
register new employee to the system and admin / employee both can log
into the system using their credentials.
Manage Attendance Details
This module mainly deals with the features related to the employee’s
attendance. Using this employee can mark their presence, time-in and time-
out in the system. Admin can see the availability report of each employee,
employee can see his/her attendance report along with some possible filters
such as filter by employee and filter by date.
Manage Employee Details
This module mainly deals with the features related to the employee’s profile.
Using this admin can add a photo of the newly registered employee during
registration. Admin can also command the system explicitly to train the
model and system will make necessary calculation and will generate some
data which will be used internally to identify each employee uniquely.
Function prototypes which implement major functionality
● List<Attendance> viewMyAttendanceReport(int empId);
● Int totalEmployeesRegistered();
● List<Attendance> getAttendanceRecordByEmployee(int empid);
● Boolean updateAttendanceRecord(int empid, Attendance update);
● Boolean registerEmployee(Employee new_employee);
● Boolean addPhoto( int empId, string photo);
24
Testing
Unit testing of each module was done after successfully completing the
module. Each module was tested individually before integrating them with the
whole system.
After integrating each module with the system, integration testing was done
in order to check if modules are working properly together.
After completing all integrations, black-box testing of the whole system was
carried out to ensure the system works in a correct manner.
Black box testing of Major functions of the system
1. Log in to the system.
Case 1: Invalid Username or password entered by the user.
Output: Error message on the screen saying “Invalid credentials”
Case 2: Valid credentials.
Output: The user is redirected to the Dashboard page.
2. Update Profile
Case 1: username already exists.
Output: Error message on the screen saying “Username already
exists”
Case 2: Some of required fields missing in input.
Output: Model validation errors will be displayed to the user.
Case 3: All input data are valid.
Output: Profile updated successfully.
3. View Attendance.
Case 1: User is not logged in.
Output: Redirected to the login page with error message “Please
login!”.
Case 2: If a user exists and has the attendance records.
Output: All the chat history will be displayed
25
Case 4: Provided username does not exists in the system.
Output: 404 Error.
Screenshots
Login
26
Mark my attendance In / Out
Scanning Face
View Attendance Records by Admin
27
Trained Dataset Output
28
Add Photos
Employee Dashboard
29
View My Attendance By Employee
Admin can filter attendance by employee / by date
30
Training Model (Approx. 300 Images / employee)
31
Conclusion
Functionalities implemented successfully:
- Registration
- Login / Logout
- Manage User Profile
- Update user profile
- View My Attendance
- View Attendance by Date
- View Attendance by Employee
- Manage Attendance
- Mark my attendance In
- Mark my attendance Out
- Add photos
- Add new employee
- Train the system
- View Attendance record by date
- View no. of employee present today
- View Total number of employees
32
Limitation and Future Extensions
● Limitations
- Attendance can be marked if the picture of an employee is shown
- 300 images of each employee are taken for better accuracy. 300
Images per employee in a larger organization would consume a
massive volume to store the images.
- The training time for our classifier takes about 20 seconds for each
person. Hence for a large number of employees, it would take a very
long time to train. Though training the classifier isn’t something that
needs to be frequently done, but it would be better if a classifier taking
lesser time while maintaining the accuracy can be built.
- The current model is 99.38% Accurate
● Functionalities not implemented
- Alert System
- Forgot Password
- Email Notifications
● Possible future extensions
- A feature which can give intruder alert can be included in the system.
Furthermore, the images of unknown people can be saved in an
efficient manner and displayed in the system for better security.
- The number of training images can be reduced so that less storage is
required. This can be done by removing duplicate images of the same
person, or images with similar embeddings.
- The training time can be reduced by retraining the classifier only for
the newly added images.
- A feature can be added where an employee is automatically sent a
warning if his attendance or working hours are below the threshold.
- Wrongly classified images can be added to the training dataset with
the correct label so as to increase the accuracy of the recognition
model.
33
Bibliography
The Web framework for perfectionists with deadlines | Django ([Link])
[Link]
[Link]
[Link]
- CSS & Bootstrap:
[Link]
- For debugging:
[Link]
THANK YOU
34