Sie sind auf Seite 1von 95

ACKNOWLEDGEMENT

The project presented, as part of the curriculum, was the first experience of
this kind for me. I had considered this project not only as a program of
studies to be completed, but as a goal to learn, study, develop and test
commercial software technologies.
I am pleased to be able to say that, in an acceptable manner, I have
achieved my goals and goals to make this project a result. I would like to
thank and thank the support of some who have helped physically, mentally
and intellectually during this project.
Foremost regards to my guide and Co-ordinator Prof, Dr.Hiren Dand
and Principal , Dr.K.G.Rajan who made available the facilities required
for the project work.
I also want to mention the tacit support of my parents who, as
always, helped me as much as possible to make my job a success.
The contribution made by my friends and mates, directly or indirectly
was indispensable, and will always be remembered.
This opportunity has given me a valuable experience about software
development.

Swapnil V. Jadhav

1
TABLE OF CONTENT

Table of Contents
CHAPTER 1:-INTRODUCTION ................................................................................... 4
1.1:-BACKGROUND .......................................................................................................... 4
1.2:-OBJECTIVES .............................................................................................................. 5
1.3:-PURPOSE, SCOPE, AND APPLICABILITY ..................................................................... 5
1.3.1:-Purpose .............................................................................................................. 5
1.3.2:-Scope ................................................................................................................. 6
1.3.3 Applicability ....................................................................................................... 6
1.4:-ACHIEVEMENTS ........................................................................................................ 7
1.5:-ORGANIZATION REPORT ........................................................................................... 8
CHAPTER 2:-SURVEY OF TECHNOLOGIES ......................................................... 11
2.1:- TECHNOLOGIES AVAILABLE FOR DEVELOPMENT: ................................................... 11
2.2:-TOOLS AND TECHNIQUES USED: .............................................................................. 11
2.3:-MAJOR ANDROID APP PROGRAMMING LANGUAGES AVAILABLE FOR DEVELOPMENT
....................................................................................................................................... 14
2.4:-ANDROID APP DESIGNING TOOLS ........................................................................... 16
2.5:-SIMILAR TECHNOLOGY/APPLICATION..................................................................... 17
2.5.1:-Attendance....................................................................................................... 17
2.5.2:-Automatic Attendance System ........................................................................ 18
2.6:-TESTING TECHNOLOGY ................................................................................... 19
CHAPTER 3:-REQUIREMENTS AND ANALYSIS.................................................. 20
3.1:- PROBLEM DEFINITION: ........................................................................................... 20
3.2:-REQUIREMENTS SPECIFICATION .............................................................................. 21
3.2.1:-USER REQUIREMENTS .......................................................................................... 21
3.2.2:-Functional Requirements ................................................................................ 22
3.2.3:-Non-Functional Requirements ........................................................................ 22
3.2.4:-Problems In The Existing System ................................................................... 23
3.3:-PLANNING AND SCHEDULING .................................................................................. 27
3.3.1:- Project Plan .................................................................................................... 27
3.4:-SOFTWARE AND HARDWARE REQUIREMENTS ......................................................... 29
3.5:- PRELIMINARY PRODUCT DESCRIPTION .................................................................. 29
3.6:-CONCEPTUAL MODELS ............................................................................................ 30
CHAPTER 4:-SYSTEM DESIGN................................................................................. 39

2
4.1:-BASIC MODULES ..................................................................................................... 39
4.2:-DATA DESIGN ......................................................................................................... 41
4.2.1:-Schema Design ................................................................................................ 41
4.2.2:-Data Integrity and Constraints ........................................................................ 42
4.3:-PROCEDURAL DESIGN ............................................................................................. 43
4.3.1:-Logic Diagrams ............................................................................................... 43
4.3.2:-Algorithm Design ............................................................................................ 47
4.4:-USER INTERFACE DESIGN ....................................................................................... 48
4.6:-SECURITY ISSUES .................................................................................................... 51
4.6:-TEST CASES ............................................................................................................. 52
CHAPTER 5:-IMPLEMENTATION AND TESTING............................................... 54
5.1:-IMPLEMENTATION APPROACH :- ............................................................................. 54
5.2:-CODING DETAILS & CODE EFFICIENCY :- ............................................................... 55
5.3:-TESTING APPROACH ................................................................................................ 73
5.3.1:-Unit Testing ..................................................................................................... 74
5.3.2:- Integration Testing ......................................................................................... 76
5.3.3:- Beta Testing ................................................................................................... 81
5.4:-MODIFICATION AND IMPROVEMENTS ...................................................................... 82
5.5:- TEST CASES ........................................................................................................... 82
CHAPTER 6:-RESULTS AND DISCUSSION ............................................................ 83
6.1:-TEST REPORTS :- ..................................................................................................... 83
6.2:- USER DOCUMENTATION ......................................................................................... 85
CHAPTER 7:-CONCLUSIONS .................................................................................... 92
7.1:- SIGNIFICANCE OF THE SYSTEM ............................................................................... 92
7.2:- LIMITATIONS OF THE SYSTEM ................................................................................. 92
REFERENCES ................................................................................................................ 94
APPENDIX ...................................................................................................................... 95

3
CHAPTER 1:-INTRODUCTION

1.1:-Background
From ages, marking the attendance is one of the most important way to record the
presence of students in schools, colleges for marking the attendance institutes and organizations
uses the various methods. This helps them in generating their payrolls and other credentials.
These systems may be manual or automated. There are some well known attendance
system use in the various and institutes are Biometric-based system and card-based
system are some of the examples of automated attendance system. In the manual
attendance system, the faculty takes the attendance of the students enrolled in different
courses. The information about the attendance is then passed on to the academic section
of the institutes where this information is stored into the institutes server database.

“Gesture Based Attendance System” is a Attendance Management Application


which is designed for the schools, colleges and for other departments. The main feature
of this application is the swiping the card to mark the attendance, which makes it more
interactive. In this, user have to swipe right or left to mark the attendance this will save a
time of the user as well as the paper. Before this user have to manually mark the
attendance which is time consuming method i.e. If there are total 150 students in class it
is not feasible to callout one student name at a time and mark it manually in the sheet it’s
time consuming. And also user have to manage those sheet till the year end which is
more tedious task.

So this app will save the time of marking the attendance manually in the sheets
user can mark the attendance only by sliding either of the side which is faster and
reliable. Also all the data is stored in online database so there is no need manually
manage those data it’s safe and when the user require those he can retrieve it.

Some other characteristics are also there in this application which will are useful
for the user. And also user can update the content of the application whenever he/she
wants. Which make it more user friendly.

4
1.2:-Objectives
Marking attendance with cell phones instead of our existing approach is a step
towards sustainable development Composition via the mobile device not only saves
resources and effort, but also allows the user to gain easy and interactive access to student
attendance records.

This system will overcome the restrictions of the existing approach or techniques.
Marking the attendance of students with the android device on one swipe not only saves
our resources and efforts, but also allows the user to gain easy and interactive connection
to student attendance records. We try to create an application that can help the teachers to
mark the students attendance through their mobile device

The main aim to develop this application is to minimize the required time and cost. With
the technical essence. This application is much more interactive as compared to the
previous methods which are use to take the attendance. Swipe control which is the main
feature of this application which drive it to the different level.

1.3:-Purpose, Scope, and Applicability

1.3.1:-Purpose
In the existing system user have to manually mark the attendance of each and every
student which is not at all feasible and also it’s time consuming task to mark the
attendance of each and every student using pen and paper. It is a tedious job to maintain
all the records for the user. The human effort is more here. The retrieval of the
information is not easy because the all the records are stored in the register so when the
user require a information about the specific student he must have to go through all the
registers. The new system should overcome the drawbacks such as:
1. This will reduce the use of paper.
2. Management cost of the logs.
3. Add or remove data dynamically.
4. There are less human efforts required.

5
5. The system will automatically send the attendance report to the parents if
it’s less than 75%.
6. This system support reusability so once the user filed the details of student
in the app database he don’t have add this next time.
7. This data will remain in the database until the user removes it.
8. Also this application is more secure than the previous system.
9. If the same data with the same information is encountered then the
application will prompt a message that this record is already there you
want to update that record or not.

1.3.2:-Scope

The application is useful in the domain were the user have to manually mark the
attendance. This will decrease his/her effort. And also this idea will cope up with the
upgraded technology and we can enhance the performance of the system in the future by
using proximity sensors of the mobile where we just have to wave our hand on a device it
will directly put the attendance into the database.

1.3.3 Applicability

• When the user opens the application for the first time he have to register into the
app.
• Then next screen will appear where he have to insert class name and the student
strength. Then the user have to insert the students photo and the name. The
application will automatically assign the roll number to it.
• Then he have to hit a “Done” button.
• Here he is redirected next page where he can see the four section.
1. Take Attendance
 Here user get a bundle of cards on which the students profile photo, name
and roll number is written.

6
 Then the user start swiping those cards based on that the attendance is get
marked.
2. View catalogue
 Here user can see all the records of the student and how many lecture he
has attended.
3. Generate defaulters
 Via this section user can directly generate the defaulters of a class
automatically. And send the attendance to those particular student.
4. Create New Log
 This section will help user to create a new class log where he can add a
student for the future use.
 The user can dynamically increase the count on click of create new log.
5. Logout

1.4:-Achievements
Achievements of the system are as follows:
 We learned how to write a project srs.
 We learn how to work with the android studio to develop an application.
 We learn how to use the firebase as a backend for our project.
 We learn how to schedule a task so the productivity will be more.
 We gain lot of information about the software and technology available in
this field.
 This application is user-friendly so this will cover a large gamut of
departments.
 The application does not require any further investment once it’s
developed.
 To generate the defaulters logs at the month end.
 Send the attendance of the student to their parents (Those are in
defaulters).
 Lesser the data redundancy and data in-consistency.

7
 Dynamic structure.
 Incorporate a huge amount of a data.
 It’s more reliable and improve productivity.
 The proposed system requires very less paper work. Because all the data is
directly get stored on the cloud storage

1.5:-Organization Report
Chapter 1: Introduction

The outline has several parts as given below:

Background: An explanation of the development context and its association with the
work already done in the field.

Objectives: Concise declaration of the goals and aims of the plan.

Purpose: Project theme description that answers questions about why this project is
implemented.

Scope: A ephemeral summary of the methodology, hypotheses and limits.

Applicability: The student must describe the direct and indirect applications of his work.

Achievements: Explain what knowledge the student achieved after the accomplishment
of the work.

Chapter 2: Survey of Technologies:

The Technology Survey demonstrates the acquaintance and understanding of available


technology associated to the project. Provide facts of all related technologies desired to
accomplish the project goal. Describe the technologies obtainable in the chosen area and
present a reasonable study of all available technologies and which is the best of them and
why choose the technology.

8
Chapter 3: Requirements and Analysis:

This chapter defines what problem you are experiencing and how your project will
overcome the problem that is occurring in society. Listing the necessities of the project.
Scheduling and planning for the project so that project should complete on time and
doesn't go in critical path. Give the list of software along with hardware components
require by project and explain key points about it.
Chapter 4: System Design:

This chapter describes features and procedures researched in aspects, consisting of screen
layouts, business rules, process diagrams, pseudo-code, and other documentation, which
is appropriate for the project. It consists of designing a system, i.e. designing schemes,
designing algorithms and designing basic modules of a system.

Chapter 5: Implementation and Testing

This chapter contains the details of various modules, codes and various libraries I have
imported successfully to implement the project. It also contains the details of process or
work I have done to make code efficient.

This chapter also contains the details of various testing approach I have used.

Chapter 6: Results and Discussion

This Chapter shows the details of the test results after testing the software and generate
report on the basis of the Test results.

This chapter will also show the behaviour of the Website when inputs are different from
the one written in the Test Cases.

This Chapter also contains details of working of the website and the different functions in
the project. It should also contain User Manual, Which provides the understanding of the
working of the project to the user.

9
Chapter 7: Conclusion

This chapter summarise about all the important point of all other chapters.

It also shows the limitation in the proposed system and details about future plan to
explore the scope of the project.

10
CHAPTER 2:-SURVEY OF TECHNOLOGIES

2.1:- Technologies available for development:


Mobile App development sector is grown in recent years and it is in boom in the market.
There are several technologies for mobile applications widely used for a specific platform
or for the development of multi-platform applications. In India, the largest use of mobile
phones is built with the Android operating system and is compatible with Android
applications.

Android applications development tools and technologies refer to a variety of tools and
programming languages used to perform the various activities involved in developing
android applications.

2.2:-Tools and Techniques used:


1. Android studio

 Android may be a Linux primarily based operating framework created for cell
phones. There's plenty of programming that includes operating frameworks and
libraries. It had been created by Google and therefore the Open telephone
Collusion in Gregorian calendar month 2005. This is an open software so and it’s
free so it allow manufacturers and engineers to uninhibitedly build up their
applications.
 The SDK incorporates an expansive arrangement of improvement instruments
that incorporates a debugger, libraries, an emulator dependent on a QEMU-based
telephone. The incorporated advancement condition (IDE) bolstered for the
improvement of Android applications is the Shroud programming that uses the
Android improvement devices.

11
2. Firebase

 Firebase is the online data storage platform where we can store our data
 FirebaseTCloudTMessaging
Earlier known as Google Cloud Informing (GCM), Firebase Cloud Informing
(FCM) is a cross-stage answer for messages and notices for Android,ios, and
web applications, which as of now can be utilized at no expense.

3. Firebase Auth

Firebase Auth is AN administration that may ensure purchasers utilizing simply


client aspect code. Also, it incorporates a consumer administration framework
whereby designers will empower consumer confirmation with email and secret
phrase login place away with base of operations.

4. Realtime Database

Firebase gives a database progressively. The administration gives application


engineers an API that enables application information to be synchronized between
all customers. The organization furnishes customer libraries that permit
reconciliation with Android, iOS, JavaScript, Java, Objective C, Swift and
Node.js applications. You can likewise get to the database through a REST API
and connections to different JavaScript systems, for example, Angular js, React,
Ember.js and Backbone.js. The REST API utilizes the convention of occasions
sent by the server, or, in other words to make HTTP associations with get push
warnings from a server. Engineers who utilize the database progressively can
ensure their information utilizing the organization's server-side security rules.
Cloud Firestore, or, in other words age of the Firebase ongoing database, has been
propelled for beta utilize.

5.Firebase Storage

firebase Stockpiling gives secure document transfers and downloads for


firebase applications, paying little heed to organize quality. The engineer can

12
utilize it to store pictures, sound, video, and different substance created by
client.

6.Photoshop

Photoshop is use to design some component of the application which will help
to give nice look and feel.

7.Other platforms available

 Ionic Framework:-
Ionic Framework is associate open supply SDK that permits developers to
make high-quality and superior mobile applications mistreatment internet
technologies referred to as markup language, CSS and JavaScript. And
this may build development quicker than traditional development. The
applying developed with the particle framework is compatible with
mechanical man and Ios platforms.
 MySql language:-
Mysql is the another info language we will use because the info language.
8. Used database language:-

In this application we use Firebase no MySql because it is much more


flexible and we can store our data in the cloud, which is more efficient
than storing on the server.

13
Figure 2.2.1: Growth Chart

2.3:-Major Android App Programming Languages Available


For Development

Java:

Around the world for any android application developers, one of the most
preferred programming language for associate android app is Java, the explanations being
that it's merely the official language of Android app development, which implies it's one
among the foremost supported languages by Google and therefore the one that almost all
apps within the Play Store are engineered with.

Java was developed by Sun Microsystems means back in 1995, and it's used for a
good vary of programming applications. Java code is pass by a the java virtual machine,
that runs on humanoid devices and interprets the code.

14
C/C++:

On the off chance that you ask me, it isn't generally fitting to pick this way to build up an
Android application. Android Studio offers help for C/C ++ utilizing the Android Local
Advancement Unit. This implies it will compose code that does not keep running on the
Java Virtual Machine, but rather runs locally on the gadget and gives more power over
things like memory .For more serious applications like 3D recreations, this will enable
you to get more execution from an Android gadget.

Corona:

Crown offers another considerably less complex alternative to create Android


applications and, in the meantime, ensure a decent measure of intensity and control. You
will encode in LUA, or, in other words than Java, what's more that, Crown SDK will
make things considerably less difficult. It is perfect with every single local library,
enabling you to distribute on various stages.

It is generally used to make recreations, however it can likewise be utilized in numerous


different ways. You should utilize a word processor like Scratch pad ++ to enter your
code and you can execute that code in an emulator without first gathering. When you are
prepared to make an APK and disperse it, you can do as such utilizing an online device

Phonegap:

At long last, the last "improved" choice that you can create Android applications is
PhoneGap, except if you need to utilize an application generator program. PhoneGap
depends on Apache Cordova and, generally, enables you to make applications with a
similar code you would ordinarily use to make a site: HTML, CSS and JavaScript. This is
then shown by means of a "Web View" yet bundled as an application. Thus, PhoneGap
goes about as a scaffold, enabling designers to get to some essential local elements of the
telephone or tablet, for example, the accelerometer or camera.

15
C#:

C # is essentially a less complex and question arranged C/C + variant created by


Microsoft. The primary objective of Microsoft was to bring the intensity of C ++ and the
simplicity of Visual Essential, and read somewhat like a disentangled adaptation of Java.

Like Java, C # is a refuse accumulation, which implies you don't need to stress over
things like memory breaks and arranging for memory. Be that as it may, in the meantime,
C # is more current than Java with a cleaner grammar, despite the fact that this could be
my damage. The best dialect to create Android applications is frequently lessened to
taste.

Notwithstanding, in the event that you need an acquaintance especially simple and
inviting with the improvement of Android applications, I suggest the mix of C # and
Solidarity.

2.4:-Android App Designing Tools

 Marvel

 Invision

 Android Sketch Paper

 PopApp

 Android Patterns

 Adobe Kuler

16
2.5:-Similar Technology/Application

2.5.1:-Attendance

Figure 2.5.1: Attendance

Attendance is an app for academics that wish to require attendances in their


categories exploitation their phones. This can be the primary beta unleash of the app
therefore expect some rough edges here and there. With this application you can produce
courses, terms and course occurrences. produce teams of scholars with totally different
schedules; add students to groups; and eventually take attendances. Attending standing
are often designed for every incidence and area unit gift, Absent and Late by default.
Attendance conjointly supports importing student lists from text files, importing student
photos and you'll backup and restore the full information. you'll conjointly add notes to a
student in an exceedingly explicit category and add a subject to a category for future
reference. Export attending information to CSV and hypertext mark-up language. In an
exceedingly future unleash, it'll be attainable to export to stand out, Markdown,
Dokuwiki and conjointly e-mail students and a bunch of alternative planned options.

17
ADDITIONAL INFORMATION

Updated: Size: Install:

March 29, 2014 10 MB 50,000+

Current Version: Required Android: Content Rating:

1.0.4 2.2 and up Rated for 3+

2.5.2:-Automatic Attendance System


Face acknowledgment is in a blast from last 50-60 years. First semi computerized
framework for face acknowledgment is produced in 1960s.In it some element of face is
separated like ears, nose, eyes and mouth etc. Then examination is done between the
reference information and ascertained separation and proportion to a typical reference
point. In 1970s specific marker based strategy was created by Lesk, Gold stein and
Harmon. They utilized 21 specific emotional markers for mechanize the acknowledgment
These specifications resembled hair shading, lip thickness, skin shading, confront shape
and nose shape etc. But the issue with both the methods was that the estimation and areas
were physically processed. Kirby and Sirovich produce a procedure called Key Part
Examination in 1988.It is a standard strategy dependent on direct polynomial math for the
issue of face acknowledgment.

In 2001 new innovation turned out and it caught great publications .That approach caught
observation picture and contrasted them with the database of computerized photos. That
was better for security purpose of view. Face acknowledgment method is expanding step
18
by step and assume real job in our life. Now it is being utilized to distinguish missing
childrens, visa extortion, character misrepresentation and so on.

Face detection-

Here we use system camera to take photo of a Candidate/user. Then we will detect face
from that image. After matching it with the many faces it will create database containing
photo of each student with name and roll number. It is mainly used for comparison
withtest image.

2.6:-TESTING TECHNOLOGY
Black box testing approach is used to test this website by initially examining the
requirements and specifications and choosing valid inputs and determining expected
outputs of selected inputs.
White box testing approach is also used to test this website by understanding the
functionality of the system through its source code and creating the tests cases and
executing them.

19
CHAPTER 3:-Requirements and analysis

3.1:- x-:
Identification of the problem is one of the obvious tasks to be performed before
developing a project. A clear understanding of the problem will help build a better system
and reduce the risk of project failure.

This phase consists of two main tasks:


a) The first is to review the needs that originally initiated the project.

b) The second is to identify at an abstract level the expected capabilities of the new
system.
It helps in understanding the system properly so that all the problems are
identified correctly. It also involves considering all the alternatives that exist to
achieve the objectives with respect to modifying the system, even all the various
ways to implement the alternatives.
After we thoroughly understood the existing system, it was concluded that all of the work
was done manually. All kinds of calculations and planning were done using the human
brain instead of taking advantage of the modern Information Technology

The following limitations are there in the existing system:

1. It take the more time to complete a work.


2. User have to manually manage all the data.
3. The data stored is in inconsistent manner.
4. Increased paper work.
5. Record maintenance cost is more.
6. There is lots of manual work to be done.
7. In month end they have to generate a defaulters manually.
8. User can’t store the records for the long time.

20
The purposed System will overcome all problems mentioned above:-

• Storing knowledge into the base that is obtainable throughout the period of time
of the computer code or we are able to say until the corporate mistreatment that
computer code.

• Less time needed to access the information.

• No redundancy of information.

• Reducing manual work by doing tasks mechanically

• Data Integration is provided.

• Data is secured from outpouring because it is accessible to documented user.

• Made access to the record of group action obtainable 24X7.

• Reduced dependency on natural resources for paper.

3.2:-Requirements Specification

3.2.1:-User Requirements
1. Swipe based attendance system provide efficient way of a marking the attendance
with the technical touch of updated technology.
2. The user registers with the login credentials.

3. The registration will be done by accepting first name, password and email-id.

4. Once the user has registered, the system provides a login page where the client
has to login with username and password which has been previously registered.

5. The system defines a standard format for setting the email id i.e.
“…...@...in/com” and mobile number should be not more or less than 10 digits.

6. If the in future user forget his password and he want to login into the system then
for that there is a forgot password option is available.

21
7. Once the user enter into the system he see the 4 boxes where he can create a new
attendance sheet, take the attendance, generate defaulters and the user profile.

8. If he select the create new attendance sheet on first page system will ask user to
enter the class or division name and the strength of the student.

9. Based on that system automatically generate an array of a number so only thing


which user have to do is to just type the students name.

3.2.2:-Functional Requirements
Functional desires are the services the system must supply, but the system must react to
specific inputs and therefore the manner the system must behave notably state of affairs
and will in addition expressly state what the system should not do.

• System will allow user to feature the scholar whenever he want.

• System will automatically assign roll numbers to the students.

• System will raise user once whether or not or not he want continue together with his
previous sheet or he want manufacture a spanking new one.

• System will allow user to send mail to the particular parent of the scholar at the month
end.

• System will allow user to travel through his profile.

• System offers the logout selection in addition.

3.2.3:-Non-Functional Requirements
Availability: Here we are using the firebase as our default database so there is less
chance of non-availability of it while retrieving the data.

Reliability: System can work robustly while no loss of any information even within the
part of various failures. All the personal details of the customers will be stored in
“Encrypted form” in order to secure the data. The system will be developed in a manner
that ensures there is no malicious code or bugs.

Security: All the user details are secured because these details are stored in the cloud
storage which our firebase here so there is less chance of data loss or data corruption

22
Maintainability: System will maintain the following data:

i. Name
ii. Username
iii. Email-id
iv. Password
v. Students data

Usability: The system is easy to handle. The user of the system can easily go through the
website without any complications.

3.2.4:-Problems In The Existing System


1. Biometric Time Attendance System:-

Supporting and overseeing time for little and substantial organizations can be an
overwhelming undertaking. That is the reason Go Clockwise's biometric time
participation framework is an unbelievably well known alternative among business
visionaries. In any case, despite the fact that these frameworks have numerous focal
points, they are not totally mistake free. Coming up next is a short rundown of probably
the most continuous biometric issues of the help framework and the time that our clients
find.

Do whatever it takes not to take breaks Dependent upon state and adjacent laws, agents
may be required to take breaks following a particular number of extensive stretches of
work. Through the biometric investment disclosure structure, you can change the hours of
your specialists to reflect these rest periods. On the off chance that specialists hate the
imperative relief, the structure will subsequently deduct the time from their chance
sheets. The issue develops when delegates decay to take breaks, surrendering you as a
business, encroaching upon neighborhood working condition laws. Thusly, concentrating
on the necessity for a break is basic.

23
Figure 3.4.1 : Biometric attendance

Unscheduled Hours

The consistent undertaking of getting to the biometric help framework to endorse the
hours worked by representatives can be dangerous on the off chance that for reasons
unknown, a few workers have spontaneous calendars without anyone else time. It isn't as
straightforward as endorsing these hours since you don't know whether they are blunders
or the genuine hours worked. To stay away from this issue, advise workers that they
ought to send you an email before a specific timeframe to educate them of any
adjustments in the schedule. Additionally, check with your supervisor or chief in the
event that it is fundamental for these progressions to be endorsed by a higher specialist
before they can be affirmed in the framework.

Missed swipes

Some of the time, representatives may neglect to sign in to the Biometrics framework. As
a matter of first importance, this issue could influence your installment since you will be
unable to know whether you were available amid the whole turn. Your biometric time
participation programming framework will send you a notice demonstrating this
irregularity. Along these lines, you have room schedule-wise to converse with the worker
who has not gotten the punches previously the due date for endorsement of the
participation sheet.

24
Remaining Marked In

Your workers may require a secret word and a username to sign in to the framework. Be
that as it may, subsequent to completing the day, they can neglect to leave their record.
The issue is additionally convoluted when the following representative enters and
incidentally enters someone else's record. Abruptly, you locate an immense perplexity
and inquiries regarding why a representative has worked more than 12 hours and another
has never tried to work! One answer for this issue is regularly blurbs that remind workers
to totally detach from their records. Another methodology is to ask them to totally close
down their PCs toward the finish of their day of work, driving the following
representative to restart their PC without anyone else.

Missed Endorsements

A proficiently oversaw organization typically has an assigned individual or gathering of


individuals in charge of favoring installment for workers. On the off chance that they quit
laboring for multi day, the obligation should fall on someone else to guarantee that
representatives don't endure a deferral in installment. The brief biometric programming
framework Goence Gowise consequently tells the compulsory parts if there should arise
an occurrence of deferral in the endorsement of installments. Indeed, even the most
tenacious laborers can have an awful day when they overlook endorsements.
Notwithstanding this human mistake, our opportunity and participation discovery
programming framework never loses force.

Biometric help frameworks after some time have various focal points to offer
organizations. Normal mix-ups ought not unnerve you. You simply need to know how to
take care of these issues.

25
2. Challenges in face recognition attendance system:-

Illumination variations:

At the point when the picture is shaped, factors, for example, lighting (range, source and
force appropriation) and camera qualities (sensor reaction and focal points) some way or
another impact the presence of the human face. Lighting varieties can likewise do as such
because of the properties of the skin's reflectance and the camera's inside control. By
building a hearty and proficient facial acknowledgment framework, the issue of changing
lighting/lighting is viewed as one of the fundamental specialized difficulties looked by
framework fashioners, in which a man's face may show up significantly unique. it
functions admirably in observation exercises just with a moderate lighting variety, while
execution diminishes essentially when serious lighting happens. A large portion of the
current ways to deal with lighting varieties make strong suspicions that are exceptionally
hard to fulfill by and by. Show based methodologies, for instance, require various
pictures per individual enlisted under various lighting conditions. The test aftereffects of
invariant extraction approaches (eg 2D Gabor, edge outline, show that picture portrayals
are inadequate to defeat a serious variety in light. To oversee changes in lighting
conditions or stance, it is conceivable to utilize a picture re-terminating procedure
dependent on a hearty albedo estimation as for stance to produce various frontal pictures
of a similar individual with variable brightening. A confinement of albedo estimation is
that they necessitate that pictures be adjusted, and in addition affectability to outward
appearances. Despite the fact that picture preprocessing methods are straightforward and
quick, they overlook the impact of alters in the course of light that create vast changes in
neighborhood qualities.

26
Pose/viewpoint:

Pictures of a face change contingent upon the relative position of the camera confront
(front, 45 °, profile, look down) and some facial highlights, for example, eyes or nose,
might be incompletely or completely impeded. Truth be told, changes in stance influence
the acknowledgment procedure because of the presentation of projective disfigurements
and self-impediment. In this way, act resilience turns out to be much more basic for facial
acknowledgment frameworks dependent on a solitary vision of a subject. Blanzet al.
Facial acknowledgment techniques ordered into two elective standards; That is, changed
into perspectives and dependent on coefficients. The changed perspective methodologies
basically act in a method for preprocessing to change/twist the picture of the test, in view
of the assessed pose parameters, to coordinate the picture of the exhibition in position.

3.3:-Planning and Scheduling

3.3.1:- Project Plan


Gantt Charts (G) is a helpful tools for analyzing and designing complicated comes.

they assist in designing out the tasks that require to be completed.

Give a basis for planning once these tasks are going to be administrated.

Allow to set up the allocation of resources required to complete the project, and facilitate
your to figure out the essential path for a project wherever you need to complete it by a
specific date

When a project is beneath manner, Gantt Charts facilitate to observe whether or not the
project is on schedule. the most objective of a Gantt chart is to assess however long a
project ought to take and to ascertain the order within which tasks have to be
administrated by the ending of the project.

27
Task Name Duration Start Finish Predecessors

Mon
Project topic deciding 5 days Fri 05/07/18
02/07/18
Mon
Collecting data 10 days Fri 17/07/18 1
09/07/18
Mon
Problem definition 20 days Fri 11/08/18 2
23/07/18
Mon
System design 20 days Fri 02/09/18 3
20/08/18
Mon
Problem evaluation 5 days Fri 21/09/18 4
17/09/18

Define function and Mon


10 days Fri 05/10/18 5
behavior 24/09/18

Mon
Requirement analysis 45 days Fri 25/10/18 6
08/10/18

Implementation and Mon


5 days Fri 2/1/19 7
coding 10/12/18
Mon
Unit testing 15 days Fri 21/03/19 8
17/12/18
Integration and Mon
20 days Fri 10/04/19 9
validation 07/01/19
Mon
System Testing Fri 12/04/19 10
11/04/19

Table 3.3.1 Project Plan

28
Figure: 3.3.1 :- Gantt chart

3.4:-Software and Hardware Requirements

1. HARDWARE REQUIREMENTS:
Processor: Intel(R) Core(TM) i5-5200u CPU@2.20GHZ 2.20GHZ.
Memory: 4GB RAM for faster speed we can use 8GB RAM.
System Type: 64bit Operating System.

2. SOFTWARE REQUIREMENTS:
FRONT END: ANDROID STUDIO 2017.
BACK END: FIREBASE.
OS: WINDOWS 10.

3.5:- Preliminary Product Description


Marking attendance with cell phones instead of our existing approach is a step towards
sustainable development. “Swipe Based Attendance System” is a Attendance
Management Application which is designed for the schools, colleges and for other
departments. The main feature of this application is the swipe control, which makes it

29
more interactive. In this, user have to swipe right or left to mark the attendance this will
save a time of the user as well as the paper.

3.6:-Conceptual models
The student should perceive the domain of the matter and manufacture a model of the
system, that describes the operations which will be performed within the system and also
the allowable sequences of such operations. Abstract models could comprehend complete
data flowcharts, ER diagrams, object familiarized diagrams, system flowcharts, etc.

Entity relationship diagram and there description:-

 In programming building an ER demonstrate is regularly framed to speak


to things that a business needs to recollect with the end goal to perform
business forms. Therefore, the ER show turns into a theoretical
information display, that characterizes an information or data structure
which can be executed in a database, normally a social database.

 Entity– relationship displaying was produced for database plan by Subside


Chen and distributed in a 1976 paper. In any case, variations of the
thought existed already. Some ER models demonstrate super and subtype
elements associated by speculation specialization connections, and an ER
model can be utilized likewise in the determination of space particular
ontologies.

30
 Notations:

Fig 3.6.1: E-R NOTATION

31
1. Flow of the login activity:-

Figure 3.6.2: Login and registration

In the login activity 1st there's a start node once the user first login into the
system. The system can check whether or not the user is registered or not if the
user is registered it'll transfer it to the subsequent page or we will say the activity.

32
If the user isn't registered with the system then the another page can open
wherever he need to register his details. at the moment he can get transfer back to
the login page were he need to re-login within the system and also the system can
once more check whether or not the user is registered or not then he can get
transfer to the new page or next page that’s our main activity page were all the
most options of the app get visible to the user

2. Create new log activity:-

Figure 3.6.3: Create new log activity

The main page activity consist of two section. When the user click on the create new log
icon the user will get transferred to the new activity or page where he have to enter the
class name and count of student . Here we accept class name as a name of a log. And
count of student will accept a number from user which means the count of the total
strength of the student in class .

As soon as the user hits the submit button the next activity will open were the system will
generate a table which consist of number of rows mentioned in the count of section block

33
in previous activity. So there user have to type the name of the student in the sequential
manner. Once user gets done with this he will hit the submit button so the data is get
stored in the database.

This data is retrieved in the mark attendance section where the user have to select a class
name so the list of cards will displayed.

3. Mark attendance activity:-

Figure 3.6.4: Mark attendance activity

When the user hits the mark attendance icon on the home page he will be
transferred to the new page or activity were he have to select class who’s
attendance he have to mark. So on this page there is one dropdown list will appear
from where he have to select a class. After selecting when he hits the enter button
system will display a bunch of cards one behind each other .on which the students
roll number and the students name is written.
From here user will start swiping the cards if that particular student is there in the
class the user will swipe that students card on the right side or if he’s not there in
the class then the user swipe him on the left side. On this right and left swipe the

34
students attendance is marked and this record is stored in cloud storage for that we
are using here a firebase database which realtime database.
And as we know sometime there might be the changes in the sheet so once the
user done with swipping for all the students there is one submit button will be
displayed at the end of the last card.
Once he hit that he will be trasfered to the new activity or page from where he can
make change in his sheet if the student came late for the lecture so the user can
change that students attendance for that he just have to enter the students roll
number then the system will display that students card so here he can swipe that
card on right. Done his attendance is get marked.
4. Defaulters activity:-

Figure 3.6.5: Defaulter activity

35
If the user hits the generate defaulters icon on the home page he will be transferred to
the new page or activity were he have to select class. when he submit the selection the
system will display the list of students name in the table and the students whose
attendance is below 75% they are displayed with the red color. So the user can easily
identify that particular student and can take the action against him.

And also the user can view this detail at anytime because these all records are directly
stored in the cloud storage which means in the firebase so it’s easily accessible at any
time when user require.

5. Profile activity:-

Figure 3.6.6: Profile activity

From this activity user can view his details or information like his username, all
the logs he created and the logout button.
Logs he created means here he can view all the logs which consist of class name
and the records.

36
Normalized system diagram:-

37
3.6.7: Main DFD

38
CHAPTER 4:-SYSTEM DESIGN

4.1:-Basic Modules
Registration Module:

This module will allow the User to Register. User first have to Register to use our
Services.

After clicking on “Submit” the system will verify the Details.

User Login Module:

If you are a user, you have to login first to perform any task.

If user enters invalid username or password, the system will show invalid prompt
window.

Home Page:

After Successful login user will be redirected to the Home page.

Then user gets the four boxes which are create new log, mark attendance, defaulters,
profile.

From here user can go to the sub pages.

Create log Module:

This section will help the user to add the new records of the students in the database.

Here user have to enter all the students name which he want there in his attendance sheet.

Mark attendance Module:

In this module the user gets card which he have to swipe in either of the side whether it’s
on left side or on the right side.

39
Defaulter module:

Here user gets the information about all the students whose attendance is less than 75%
and there names are highlighted in the red color in a list.

Profile Module:

In this module, user can view Profile.

In this module, user can update Profile.

In this module, user can view all the logs list he created yet.

Logout Module:

After clicking on “LOGOUT”, logout prompt will be displayed

40
4.2:-Data Design

4.2.1:-Schema Design

41
4.2.2:-Data Integrity and Constraints
User Table for login and register:

Sr. No. Fields Data Type Allow Nulls Keys


Login Activity
1. Userid numeric(18,0) No Primary Key
2. Username Varchar(50) Yes -
3. Password Varchar(50) Yes -

Registration
activity
1. username Varchar(50) Yes -
2. Emailid Varchar(50) Yes -
3. Password Varchar(50) Yes -
User Table

Student attendance Table:

Sr. No. Fields Data Type Allow Nulls Keys


1. Student_id numeric(18,0) No Primary Key

2. Student_Name numeric(18,0) No -
3. Present Boolean No -
4. Absent Boolean No
Student Table

42
Defaulters table :

Sr. No. Fields Data Type Allow Nulls Keys


1. Studentid numeric(18,0) - Primary Key

2. Student_Name numeric(18,0) - -
3. Overall Integer - -
percentage
Defaulters Table

4.3:-Procedural Design

4.3.1:-Logic Diagrams
Data Flow Diagram (DFD):
The DFD take as associate degree input method output read from the system that's
knowledge objects flow within the code and square measure reworked by process
component and knowledge objects from flow of the code.

Data objects displayed by tagged arrows or transformation square measure outlined by


circles known as bubble and DFD is given as hierarchy fashion that's the primary
knowledge flow model outlined the system as an entire ensuing DFR routine context
diagram provides increasing details with every consecutive level.

Rules of DFD diagram:

1. Maintain scope of the system suggests that of context diagram.

2. Maintain DFD so main consecutive sequence of the actions.

3. Scan from left to right and prime to bottom.

4. Acknowledge all inputs or outputs.

5. Acknowledge and Label from every method internal to the system together with
conic section reasonably circle.

43
Notations

Name Symbol Description

Process A method transforms incoming


information flow into outgoing
information flow.

Data store Notation Data stores are repositories of data


in the system.

Dataflow Notations Data flows are pipelines through


that packets of data flow. Label
the arrows with the name of the
information that moves through it.

External Entity Notations External entities square measure


objects outside the system,
with that the system communicates.

Table 4.3.1 DFD notation

44
1. Level 0/context diagram: -
Level zero DFD may be a basic summary of the entire system or method being
analysed or modelled in Reallocation of Services Project. it's designed to be associate
at-a-glance read, showing the system as one high-level method, of however the User
and Admin will each move with the System.

45
A data flowchart (DFD) may be a graphical illustration of the "flow" of knowledge
through AN data system, modelling its method aspects. A DFD is commonly used as a
primary step to make an summary of the system while not going into deep within the
structure. DFDs may be used for the mental image of knowledge process (structured
design).

The on top of knowledge flowchart provides the data regarding the every activity is
reticulated with one another and the way the flow of the information goes once user begin
the appliance .When the user begin the appliance initial time user must login within the
system then it verifies whether or not the user is registered within the system or not if
user verified then next activity can get open. Then our main activity opens wherever all
the options of our system is displayed from there user will choose anyone. The additional
elaborative description is within the abstract model section

46
4.3.2:-Algorithm Design
Login module algorithm:-

Step 1 : Start the application.

Step 2 : If user have username and password enter it and hit the submit button else goto
step 3 for registration.

Step 3 : Register with the valid information set the new password hit the submit goto step
2 for re-login.

Step 4 : Exit.

Main algorithm of the application :-

Step 1 : Once done with the login with valid credentials you will navigated to home page.

Step 2 :Choose anyone tab from here if it’s create new log go to step 3 else if it’s Mark
attendance go to step 4 else if it’s defaulters goto step 5 else if it’s profile goto step 6.

Step 3 : In create new log activity enter the class name and student count hit submit

Step 3.1 : Enter the students names.

Step 3.2 : Exit.

Step 4 : In Marks attendance activity select class from the dropdown hit next.

Step 4.1 : Bunch of card will be displayed on the screen.

Step 4.2 : Start swiping if student present swipe right else swipe left.

Step 4.3 : Once done hit submit.

Step 4.4 : Exit.

Step 5 : In defaulters activity select class from the dropdown hit next.

47
Step 5.1 : The names of the students are displayed on the screen whose attendance
less than 75%.

Step 5.2 : Exit.

Step 6 : User can view his data through Profile activity.

Step 7 : Exit.

4.4:-User Interface Design


The Main front page of our app:

This page will display the name of the application and also if you click anywhere on the
display it will open the next activity. In this case our next activity is Login activity or we
can say a login page.

48
The Login page:-

When user click anywhere on the front page he will be redirected our next page which is
our login page.

The login page consist of two fields which is username and password. If user already
have an account so he will directly type his username and password then he will be
redirected to our home page.

If user not yet register then he have to register first. On click of create new account or
register he will be redirected to the registration activity or page.

49
The Registration Page:-

When the user clicks on the create a new account/register he will be navigated to the next
page which is our this registration page. Where user have to feed the data in the system.

He have to enter his name password and email id.

50
4.6:-Security issues
There are apps , software or more commonly used are our websites consist of some sort
of the authentication system which every user have to perform . So here user have to fill
his personal details such as Name, Email-id, password , contact number for online
transaction he have to fill his credit card number. So this is the responsibility of that
company to secure the users data at any cost because personal information is the first
priority of the everyone if it goes in the wrong it may lead to the dangerous
consequences.

51
Our app provide a security to the users personal credentials or more generally we can say
to the personal information. This is done because of the use of firebase database as the
backend database for our application.

Generally the firebase stores the data in the cloud storage which is the more secure way
to store the data. There 0.01% of chance that data of the user is get leaked this 0.01% is
at worst condition.

4.6:-Test cases
Up to this section we gather the information about the system which user expect to be
developed. So on that basis we jot down some testcases which we used in this and they
are listed below:-

Test case 1 :-Requirements gathering and the features to be there in the app.

Here we collect all the specification from the user which he want to be there in the app.
So if user provide all the requirements properly as per his requirement there is less
chance of conflicts ,because sometimes what happen that user don’t tell the developer
what he exactly want from the system and there it fails.

Test case 2 :- Technology to be used

The user who want that system is definitely not from the technical background so he
don’t know exactly what language and technology used in the development purpose but
still sometimes the user keep on suggesting that use that technology because it’s use by
the rival company. So it may mislead the development environment.

Test case 3:- Scheduling of the activities and scheduling of the resources.

It basically concern with the developing the prototype or basic module of the app and
sending it to the user for the testing purpose. Based in this we priorities the activity and
also allocate the resources to perform those in fix time slot.

52
Test case 4:- User Interface

The simplicity of User Interface is person independent i.e., one user find User Interface is
Complex if they haven’t used any application but for another user it will be simple.
Therefore, we cannot perfectly implement this requirement but we try to implement as
much as possible. If the user satisfied with the user requirement then this requirement is
meet.

Test case 5:- Response time

This application will take the less than second to perform any activity i.e. if user swipe a
card left or right next sequence of card is displayed immediately there is no delay
between the two card. Only at the generate defaulters list section it will take the less than
a minute to generate a table showing the names of the students with their attendance.

Test case 6:- Cost

In this basically we check whether the all the features which user demands for can fit in
the budget or not or else he have to negotiate with the user.

53
CHAPTER 5:-IMPLEMENTATION AND
TESTING

5.1:-Implementation Approach :-

The implementation phase is where we have to actually do the project work to produce
the deliverables. The word “deliverable” means anything our project delivers. The
deliverables for our project include all of the products or services that we are developing
for the client, customer, or sponsor, including all the project management documents that
we put together.

Once we have completed with our designing and planning phase it’s time for project
implementation, the third phase of the project management life cycle. The
implementation phase involves putting the project plan into action. It’s here that we have
to coordinate and direct project resources to meet the objectives of the project plan. As
the project unfolds, it’s our job to direct and manage each activity, every step of the way.
That’s what happens in the implementation phase of the project life cycle: you follow the
plan you’ve put together and handle any problems that come up.

The means embraced to construct every deliverable will fluctuate contingent upon the
sort of task we are attempted, and can't along these lines be portrayed here in any genuine
detail. For example designing and media communications activities will concentrate on
utilizing gear, assets, and materials to build each extend deliverable, though PC
programming ventures may require the advancement and execution of programming code
schedules to create each undertaking deliverable. The exercises required to manufacture
every deliverable will be obviously determined inside the venture necessities record and
undertaking plan.

The implementation phase keeps the project plan on track with careful monitoring and
control processes to ensure the final deliverable meets the acceptance criteria set by the
customer. This phase is typically where approved changes are implemented.

54
Most often, changes are identified by looking at performance and quality control data.
Routine performance and quality control measurements should be evaluated on a regular
basis throughout the implementation phase. Gathering reports on those measurements
will help us to determine where the problem is and recommend changes to fix it.

5.2:-Coding Details & Code Efficiency :-

Login Activity:-

when we first time start the app it will first display you the login page if the user have an
account then he have to put his email id and password

55
If the entered email id and password is valid the he will get access to his account and
previous data

But if he don't have an account then he have to click on "Signup button" which the on a
login screen so if the user hits this button he will transferred to a different activity, there
he have to put his email id and password to create a new account.

private void userLogin(){


final String email=editTextEmail.getText().toString().trim();
String password=editTextPassword.getText().toString().trim();

if (TextUtils.isEmpty(email)){
//Checking empty or not
Toast.makeText(this,"Please enter your
email.",Toast.LENGTH_SHORT).show();
return;

}
if (TextUtils.isEmpty(password)){
//checking empty or not
Toast.makeText(this,"Please enter your
Password.",Toast.LENGTH_SHORT).show();
return;
}

//if email n password is entered


progressDialog.setMessage("Login user.....");
progressDialog.show();
firebaseAuth.signInWithEmailAndPassword(email,password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {

56
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
progressDialog.dismiss();

if (task.isSuccessful()){

databaseLogin.child("treck").child("New logs");

finish();
startActivity(new
Intent(getApplicationContext(),MainPageActivity.class));
}
}
});
}
@Override
public void onClick(View v) {
if (v == buttonSignin){
userLogin();
}
if (v == textViewSignup){
finish();
startActivity(new Intent(this, RegistrationActivity.class));
}

Registration Activity :-

here we have to enter our email id and password which want set for our application. So
every time the new data which is added by the user belong to him itself it won't refers to
anyone else.

57
So once the user set the email id and password and hit the register button again the login
page will appear here user have to enter his email id and password.so he can successfully
access his account.

public void registerUser(){


String email= editTextEmail.getText().toString().trim();
String password= editTextPassword.getText().toString().trim();

if (TextUtils.isEmpty(email)){
//Checking empty or not
Toast.makeText(this,"Please enter your
email.",Toast.LENGTH_SHORT).show();
return;

}
if (TextUtils.isEmpty(password)){
//checking empty or not
Toast.makeText(this,"Please enter your
Password.",Toast.LENGTH_SHORT).show();
return;
}
progressDialog.setMessage("Registering user.....");
progressDialog.show();

firebaseAuth.createUserWithEmailAndPassword(email,password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()){
//user is sucessfully registered and logged in
startActivity(new Intent(getApplicationContext(),LoginActivity.class));

58
finish();
}
else{
Toast.makeText(RegistrationActivity.this,"Failed to register. Please try
again",Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public void onClick(View v) {
if(v == buttonRegister){
registerUser();
}
if (v == textViewSignin){
startActivity(new Intent(this,LoginActivity.class));
}
}

Choosing an image to create a new records:-

It's the snippet of code were we are uploading an image i.e our student profile pic and this
image get stored in our firebase database storage section.

so we can use these uploaded images in the further section.

59
private void uploadFile() {
//checking if file is available
if (filePath != null) {
//displaying progress dialog while image is uploading
final ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setTitle("Uploading");
progressDialog.show();

//getting the storage reference


final StorageReference sRef =
storageReference.child(Constants.STORAGE_PATH_UPLOADS +
System.currentTimeMillis() + "." + getFileExtension(filePath));

//adding the file to reference


sRef.putFile(filePath)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
//dismissing the progress dialog
progressDialog.dismiss();

//displaying success toast


Toast.makeText(getApplicationContext(), "File Uploaded ",
Toast.LENGTH_LONG).show();

//creating the upload object to store uploaded image details

}
})
.addOnFailureListener(new OnFailureListener() {
@Override

60
public void onFailure(@NonNull Exception exception) {
progressDialog.dismiss();
Toast.makeText(getApplicationContext(), exception.getMessage(),
Toast.LENGTH_LONG).show();
}
})
.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>()
{
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
//displaying the upload progress
double progress = (100.0 * taskSnapshot.getBytesTransferred()) /
taskSnapshot.getTotalByteCount();
progressDialog.setMessage("Uploaded " + ((int) progress) + "%...");
}
});

UploadTask uploadTask = sRef.putFile(filePath);

Task<Uri> urlTask = uploadTask.continueWithTask(new


Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task)
throws Exception {
if (!task.isSuccessful()) {
throw task.getException();
}

// Continue with the task to get the download URL


return sRef.getDownloadUrl();
}

61
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
progressDialog.dismiss();
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
String downloadURL = downloadUri.toString();
rollNo=editTextRollNo.getText().toString();
Upload upload = new Upload(editTextName.getText().toString().trim(),
downloadURL,rollNo);
//rollNo+=1;
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String uid = user.getUid();
//adding an upload to firebase database

uploadId = mDatabase.push().getKey();

String getSpinnerValue=ArtistMainActivity.spinnerValue;

mDatabase.child(uid).child("Logs").child(getSpinnerValue).child("uploads").child(upl
oadId).setValue(upload);
//mDatabase.child(uid).child("uploads").child(uploadId).setValue(upload);
editTextName.getText().clear();
editTextRollNo.getText().clear();
imageView.setImageDrawable(null);
} else {
// Handle failures
// ...
}

62
}
});
}

else {
//display an error if no file is selected
}
}

Swipe Cards Code :-

here is our main feature, from the above snippet we get to know what happen if the user
swipe the left or user swipe the right.

 onLeftCardExit() shows that if the user swipe the card on the left direction then
entry will be added as absent in the firebase real-time database

 onRightCardExit() shows that if the user swipe the card on the right direction then
the entry will be added to a database as present.

date = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new


Date());

stringArray[m]=date;
m++;
dref =
FirebaseDatabase.getInstance().getReference().child("Records").child(uid).child("Logs
").child(getSwipeSpinnerValue).child("uploads");
dref1=FirebaseDatabase.getInstance().getReference("Records");

dref.addValueEventListener(new ValueEventListener() {

63
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

for(DataSnapshot snap: dataSnapshot.getChildren()){


firedb firedata = snap.getValue(firedb.class);
stringArray[1]="Katrina";
stringArray[n]=firedata.getDesc();
n++;
array.add(new Data(firedata.getImgurl(),firedata.getDesc()+" \n
"+firedata.getRollNo()));

//mapping each student with value 0

Map<String, Integer> Students = new HashMap<>();


Students.put(firedata.getDesc(),0);
Toast.makeText(SwipeMainActivity.this, "Data.desc: "+firedata.getDesc(),
Toast.LENGTH_SHORT).show();
}
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

flingContainer.setFlingListener(new SwipeFlingAdapterView.onFlingListener() {
@Override
public void removeFirstObjectInAdapter() {

64
int k=1;
int m=1;

@Override
public void onLeftCardExit(Object dataObject) {

String Stud_name = stringArray[k];


k++;

dref1.child(uid).child("Attendance").child(getSwipeSpinnerValue).child(date).child("
Absent").push().child("abname").setValue(Stud_name);
//dref1.child("Absent").child(Stud_UploadId).setValue("0");
array.remove(0);
myAppAdapter.notifyDataSetChanged();
m = k;

@Override
public void onRightCardExit(Object dataObject) {

String Stud_name = stringArray[m];


m++;

dref1.child(uid).child("Attendance").child(getSwipeSpinnerValue).child(date).child("P
resent").push().setValue(Stud_name);
// dref1.child("Present").child(Stud_UploadId).setValue("1");
array.remove(0);
myAppAdapter.notifyDataSetChanged();

65
k = m;

@Override
public void onAdapterAboutToEmpty(int itemsInAdapter) {

@Override
public void onScroll(float scrollProgressPercent) {

View view = flingContainer.getSelectedView();


view.findViewById(R.id.background).setAlpha(0);

view.findViewById(R.id.item_swipe_right_indicator).setAlpha(scrollProgressPercent <
0 ? -scrollProgressPercent : 0);
view.findViewById(R.id.item_swipe_left_indicator).setAlpha(scrollProgressPercent
> 0 ? scrollProgressPercent : 0);
}
});

Show My Student Activity :-

This code will help us to get all the student images with their names in our recycler view
which we have uploaded while creating new record.

i.e from here we can track the student who are there in our database under that particular
class.

66
mDatabase =
FirebaseDatabase.getInstance().getReference().child("Records").child(uid).child("Logs
").child(getSpinnerValue).child("uploads");

//adding an event listener to fetch values


mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
//dismissing the progress dialog
progressDialog.dismiss();

//iterating through all the values in database


for (DataSnapshot postSnapshot : snapshot.getChildren()) {
Upload upload = postSnapshot.getValue(Upload.class);
uploads.add(upload);
}
//creating adapter
adapter = new MyAdapter(getApplicationContext(), uploads);

//adding adapter to recyclerview


recyclerView.setAdapter(adapter);
}

@Override
public void onCancelled(DatabaseError databaseError) {
progressDialog.dismiss();
}
});

67
Changing Todays Attendance :-

This section of the code will help us to change the entry of the present or absent students.

so here dr1.chilid("abname") .removeValue() will remove the value from the absent node
in the database.

buttonAdd.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

TodaysSpinnerVal = spinnerGenres1.getSelectedItem().toString();

myref.child(TodaysSpinnerVal).child(startDate5).child("Absent").addValueEventList
ener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
studentList.clear();
for (DataSnapshot snap:dataSnapshot.getChildren())
{
Student student=snap.getValue(Student.class);
studentList.add(student);
}
StudentList adapter=new StudentList(TodaysAtt.this,studentList);
listViewArtists.setAdapter(adapter);
}

@Override

68
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});
}
});
private boolean updateArtist() {

DatabaseReference dR =
FirebaseDatabase.getInstance().getReference().child("Records").child(uid).child("Atte
ndance").child(TodaysSpinnerVal).child(startDate5).child("Present");
DatabaseReference dR1 =
FirebaseDatabase.getInstance().getReference().child("Records").child(uid).child("Atte
ndance").child(TodaysSpinnerVal).child(startDate5).child("Absent");

dR.push().setValue(aloName);

dR1.child("abname").removeValue();
dR1.child(aloName).setValue(null);
dR1.child(aloName).removeValue();

Toast.makeText(getApplicationContext(), "Record Updated",


Toast.LENGTH_LONG).show();
return true;
}

Iterating Through The Students Records:-

here we create on Hashmap table in the form of our keys and values.

69
If the value found in the present node in our database then the value section of our
hashmap is increased by 1 else it's remain constant or better we can say it remain 0.

buttonAdd.setOnClickListener(new View.OnClickListener() {

@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onClick(View view) {

List<String> dates = getDates(startDate1, endDate1);

Log.d("hello",total+" ");

for(final String date:dates)


checkDate.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.child(date).exists())
{
total+=1;
Log.d("hello",total+" ");
defRefrence.child(date).child("Present").addValueEventListener(new
ValueEventListener() {

@RequiresApi(api = Build.VERSION_CODES.O)
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot child: dataSnapshot.getChildren()) {
preList.add(child.getValue().toString());
Log.d("hello", child.getValue().toString());
}
for(String s : defStudents.keySet())
{
Integer i = defStudents.get(s);

if(preList.contains(s))
{
defStudents.put(s,i+1);
}
else
{
defStudents.put(s,i);
}

70
}
preList.clear();

for(Map.Entry m:defStudents.entrySet()){
Toast.makeText(MyDefaulter.this,"NATOOO : "+m.getKey()+"
"+m.getValue(),Toast.LENGTH_SHORT).show();
Log.d("hello","data: "+m.getKey()+" "+m.getValue());
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});
}
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(MyDefaulter.this,"Lolllll not
working",Toast.LENGTH_SHORT).show();
}
});

Using Formula For Calculating The Student Attendance:-

here we calculate the percentage of student attendance using the formula as:-

float MyPer=(i/o)*100;

so we get the percentage.

public void CheckPerAttendance()


{
defClass1= spinnerVal1.getSelectedItem().toString();

71
for(final Map.Entry m:defStudents.entrySet()){
float i= (int) m.getValue();
float o=total;
Log.d("hello", i+" ");
Log.d("hello", o+" ");
final float MyPer=(i/o)*100;

final muDefList myDeff=new muDefList((String) m.getKey(),MyPer);


myDefListRef.push().setValue(myDeff);
myDefListRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
swapList.clear();
for (DataSnapshot artistSnapshot : dataSnapshot.getChildren()){
muDefList artist=artistSnapshot.getValue(muDefList.class);
swapList.add(artist);
}
ArtistList adaptor=new ArtistList(MyDefaulter.this,swapList);
listViewDefaulters.setAdapter(adaptor);
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

calDefStudents.put((String) m.getKey(),MyPer);
Log.d("hello", MyPer+" ");
Toast.makeText(MyDefaulter.this,"Calculated percentage : "+m.getKey()+"
"+m.getValue(),Toast.LENGTH_SHORT).show();

72
Log.d("hello","Calculated percentage "+m.getKey()+" "+MyPer);

}
for(Map.Entry m:calDefStudents.entrySet()){
Toast.makeText(MyDefaulter.this,"NATOOO : "+m.getKey()+"
"+m.getValue(),Toast.LENGTH_SHORT).show();
Log.d("hello3","data: "+m.getKey()+" "+m.getValue());

}
}

5.3:-Testing approach

A test approach is the test strategy implementation of a project, defines how testing
would be carried out. Test approach has two techniques:

Proactive - An approach in which the test design process is initiated as early as possible
in order to find and fix the defects before the build is created.

Reactive - An approach in which the testing is not started until after design and coding
are completed.

Different Test approaches:

There are many strategies that a project can adopt depending on the context and some of
them are:

 Dynamic and heuristic approaches


 Consultative approaches
 Model-based approach that uses statistical information about failure rates.
 Approaches based on risk-based testing where the entire development takes place
based on the risk
 Methodical approach, which is based on failures.

73
 Standard-compliant approach specified by industry-specific standards.
 Factors to be considered:
 Risks of product or risk of failure or the environment and the company.
 Expertise and experience of the people in the proposed tools and techniques.
 Regulatory and legal aspects, such as external and internal regulations of the
development process.
 The nature of the product and the domain.

5.3.1:-Unit Testing
Unit testing focuses verification effort on the smallest unit of software design- the
software component or module. The unit test is white-box oriented. The unit testing
implemented in every module of student attendance management System.

By giving correct manual input to the system. The data are stored in database and
retrieved. If user needs required module to access input or get the output from the End
user. Any error will accrued the time will provide handler to show what type of error will
accrued.

Unit testing, a testing technique using which individual modules are tested to determine if
there are any issues by the developer himself. It is concerned with functional correctness
of the standalone modules.

Life cycle of unit testing

74
The main aim is to isolate each unit of the system to identify, analyze and fix the defects.

Unit Testing - Advantages:

Reduces Defects in the Newly developed features or reduces bugs when changing the
existing functionality.

Reduces Cost of Testing as defects are captured in very early phase.

Improves design and allows better refactoring of code.

Unit Tests, when integrated with build gives the quality of the build as well.

Unit Testing Techniques:

 Black Box Testing - Using which the user interface, input and output are tested.
 White Box Testing - used to test each one of those functions behavior is tested.
 Gray Box Testing - Used to execute tests, risks and assessment methods.

75
How I used this in my project:-

Here in the above image we can see that I have created a different units or modules if my
project so it’s easier for us to test and find the errors.

If start performing all the activities at the same time then it’s difficult for us to find and
debug if any error arise. So it’s always betted to go with the unit testing.

So we can find the defect in each unit and remove it and then integrate it.

5.3.2:- Integration Testing


INTEGRATION TESTING is a level of software testing where individual units are
combined and tested as a group. The purpose of this level of testing is to expose faults in
the interaction between integrated units. Test drivers and test stubs are used to assist in
Integration Testing.

Method

Any of Black Box Testing, White Box Testing and Gray Box Testing methods can be
used. Normally, the method depends on your definition of ‘unit’.

76
 Tasks
 Integration Test Plan
 Prepare
 Review
 Rework
 Baseline
 Integration Test Cases/Scripts
 Prepare
 Review
 Rework
 Baseline
 Integration Test
 Perform

When is Integration Testing performed?

Integration Testing is the second level of testing performed after Unit Testing and before
System Testing.

Who performs Integration Testing?

Developers themselves or independent testers perform Integration Testing.

Approaches

Big bang is a way to deal with Integration Testing where all or a large portion of the units
are joined together and tried at one go. This methodology is taken when the testing group
gets the whole programming in a pack. So what is the distinction between Big Bang
Integration Testing and System Testing? Indeed, the previous tests just the collaborations
between the units while the last tests the whole framework.

Top Down is a way to deal with Integration Testing where top-level units are tried first
and lower level units are tried well ordered after that. This methodology is adopted when

77
top-down improvement strategy is pursued. Test Stubs are expected to mimic lower level
units which may not be accessible amid the underlying stages.

Bottom Up is a way to deal with Integration Testing where base dimension units are tried
first and upper-level units well ordered after that. This methodology is adopted when base
up advancement strategy is pursued. Test pilots are expected to recreate larger amount
units which may not be accessible amid the underlying stages. Sandwich/Hybrid is an
approach to Integration Testing which is a combination of Top Down and Bottom Up
approaches.

How I used integration testing in my project:-

Once I am done with my unit testing, I started with my integration testing i.e

I have a some unit like this then once I am done with my unit testing I started integrating
the units in my project. So as soon as I integrate any unit with my project I took glance on
my project whether it’s working fine or not.

Or is there any issue arises after the integration of units.

So at integration testing my project look like this.

78
79
80
5.3.3:- Beta Testing

In programming advancement, a beta test is the second period of programming testing in


which an examining of the target group attempts the item out.

Beta is the second letter of the Greek letters in order. Initially, the term alpha test implied
the primary period of testing in a product improvement process. The principal stage
incorporates unit testing, part testing, and framework testing. Beta testing can be
considered "pre-discharge testing."

Beta testing is likewise now and then alluded to as client acknowledgment testing or end
client testing. In this period of programming advancement, applications are exposed to
true testing by the target group for the product. The encounters of the early clients are
sent back to the engineers who roll out conclusive improvements before discharging the
product financially.

For in-house testing, volunteers or paid guineas pigs utilize the product. For generally
dispersed programming, designers may make the test adaptation accessible for
downloading and free preliminary over the Web. Another reason for making
programming generally accessible along these lines is to give a see and perhaps make
some buzz for the last item.

81
5.4:-Modification and Improvements

After proper unit testing and the integration testing most of the major problems and error
that might occur in the future are removed.

Also it help us to improve the performance of the project, it help us in memory


management too i.e. while testing we search for the more efficient way of implementing
the one particular unit.

5.5:- Test Cases


1. First of all we have to check that user is registered or not if not then he have to fill
the form and register. Checking whether user entered a data in all fields or not.
2. Login page taking registered email-id and password from the user and validating
it. If the entered details are valid then the user is redirected to next page.
3. Create new log- In this we have to check that whether the student profile pic,
name and roll number is get properly uploaded in the database or not.
4. Mark Attendance- In this we have to check that user is properly getting referred to
the data of selected class or not.
5. Mark Attendance- Here, once we are done with the above test case we have to
check whether swipe cards are appearing on the screen or not and those cards are
properly getting swiped in the right or left direction.
6. Generate Defaulters- Under this section there is Change Todays record button if
user hits this button the will get the list of absent students names. So here we have
to check that onclick of the item whether dialogue box is appearing on the screen
or not to change the record.
7. Generate Defaulters- Under this section there is Generate Defaulter button here
we have to check if user hit this button then he will get the list of student name
with their overall attendance in percentage format or not.
8. Profile- This our last activity here we have to check that onclick of logout button
whether user is successfully logging out from the application or not.

82
CHAPTER 6:-RESULTS AND DISCUSSION

6.1:-Test Reports :-

Sr. Name Input Expected Actual Output Remark


No. Output
1. Login Page Valid Navigates to Navigates to Pass
information requested requested
page page
2. Login Page Invalid Message Message Pass
information showing login showing login
unsuccessful unsuccessful
for selected for selected
user user
3. Register Valid Navigates to Navigates to Pass
information The login The login
page page
4. Register Invalid Message Message Pass
information prompting prompting
that that
information is information is
invalid invalid
5. Create new Image,Name, Uploaded Uploaded Pass
log Roll number successfully successfully
6. Mark Select class, Successfully Successfully Pass
Attendance choose date redirected to redirected to
mark mark
attendance attendance
page page

83
7. Mark If student is Card is Card is Pass
Attendance present swipe properly get properly get
card right else swiped and swiped and
left. marked entry marked entry
in the in the
database database
8. Generate Select class List of absent List of absent Pass
defaulters - name and students is students is
Change date. generated. generated.
todays records And onclick And onclick
of them toast of them toast
will appear will appear
from there we from there we
can update can update
our student our student
attendance attendance
9. Generate Select the List will be List will be Pass
defaulters class name, generate with generate with
Starting date students name students name
and ending and their and their
date hit mark overall overall
the hit Per. attendance in attendance in
percentage percentage
10. Profile Show profile Displaying Displaying Pass
user profile user profile

84
6.2:- User Documentation
 First is our registration page for the new user here user have to fill all the details.

 Next is our login page were we have to put our email-id and password which we
enter at the registration page.

85
 Now once we successfully login into our application then the Home page will
open. Here we have to select which activity we have to perform.

If we want create a new log then hit on create new log.

If we want to mark the attendance or take the attendance of student then hit the
Mark attendance block.

If we want to generate defaulters or change the todays record then hit the
Generate defaulters block.

If we want logout from the application then hit the view profile block.

86
 If we hit the create new log block then the first screen will appear is

Here we have to select the class name for which we have to create a new records.
And hit the Add records.
 The next window will appear here you have to select Student profile picture , Roll
number and then hit the upload button

87
 Now we have mark attendance activity if we select this tab the next activity will
appear here we have to select the class name then hit the submit button. On the
next page student name, image and roll number will appear.

88
 If the student is present then we have to swipe the card in right direction else in a
left direction.

89
 If user hits the Generate defaulters block the next window will appear here we
have to select whether we have to change the todays record or Generate defaulter
percentage.

 If we select the change todays record the next window will appear here we have
to select the class name and date then click the hit me button.

90
 Now here we have to long press the student name from the list who’s record we
have to update.

 Now if we hit the Generate defaulter button then we get the students name and
there overall attendance percentage.

91
CHAPTER 7:-CONCLUSIONS

7.1:- Significance of the system


Developing this application is really very challenging task for us because till the date
there is no application with this swipe control attendance feature on the play-store and
app-store.

“Swipe Based Attendance System” is a Attendance Management Application


which is designed for the schools, colleges and for other departments. The main feature
of this application is the one swipe will mark the attendance of student, which makes it
more interactive. In this, user have to swipe right or left to mark the attendance this will
save a time of the user as well as the paper. Before this user have to manually mark the
attendance which is time consuming method i.e. If there are total 150 students in class it
is not feasible to callout one student name at a time and mark it manually in the sheet it’s
time consuming. And also user have to manage those sheet till the year end which is
more tedious task.

So this app will save the time of marking the attendance manually in the sheets
user can mark the attendance only by sliding either of the side which is faster and
reliable. Also all the data is stored in online database so there is no need manually
manage those data it’s safe and when the user require those he can retrieve it.

7.2:- Limitations of the system


There is no as such any limitation is the system its completely depends on the college or
school who is going to adopt this technology.

If they are fairly comfortable with the system i.e if our application is completely
satisfying the customers need then they won’t find any limitations in the system. So it’s
completely depends on who’s ging to use this application.

92
7.3:- Future scope of the project

The concept of this application is really awesome. In future there are chances that other
developers might like to update or modify the feature of this current application. Because
from all the side it’s beneficial for the customer as well as our community. Customer
means this application provides a better performance, ease of use, more interactive user
interface and beneficial for community means this application will help our community to
save the paper i.e. in this application we are storing everything in databases also we don’t
have to keep records of student like we use to do in the past.

93
REFERENCES

https://www.simplifiedcoding.net/

https://gist.github.com/discover

https://stackoverflow.com/

https://www.youtube.com/

https://www.androidtutorialpoint.com/material-design/

https://www.wikipedia.org/

https://www.tutorialspoint.com/

94
APPENDIX

95

Das könnte Ihnen auch gefallen