You are on page 1of 25

Attendance Manager

CHAPTER 1

INTRODUCTION

Attendance Management has been one of the most important way to record and track the
presence of students in schools, colleges and institutes. It is used in different forms in
various organization to record the presence of their human resources, which helps the
organization in generating their month-end payroll, and other activities. The attendance
can be managed with the help of both manual and automated systems. Biometric-based
system, card-based system is some of the examples of automated attendance system.

In this project the attempt has been made to record the attendance through Android
mobile devices. The main aim of this project is to build an Android mobile application for
the students which can be used to track and manage their attendance. The application
stores the attendance in SQLite database and the students can view and update the
attendance whenever required. The application is also helpful in evaluating the minimum
attendance eligibility criteria of a student. The purpose of developing an application to
keep the student’s life a little bit more organized. The application can be installed in any
android mobile devices and can work even in the offline mode.

The application uses Android application development toolkit and many inbuilt
functionalities of android environment. Android is a Linux-based operating system
developed for smart phones or tablet computers. It is a stack of software that includes
operating system, middleware and libraries and APIs written in C. The Android
application is developed in Java-like language using the Android software development
kit (SDK). The integrated development environment (IDE) which is officially supported
for Android apps development and used in this project is Android Studio, which uses the
Android Development Tools (ADT) plugin.

Page | 1
Attendance Manager

1.1 What is Android?


Android is a Linux-based mobile operating system developed by Google, designed
primarily for touch screen mobile devices such as smart phones and tablets. It is a stack of
software which includes OS, middleware, libraries and APIs written in C. It is an open-
source mobile OS, meaning that is free to any cell phone mobile network and thus allow
the manufacturers and the developers to freely develop and modify their applications in
Java-like language that utilizes Google-developed Java libraries. The Android
applications are developed using the Android software development kit (SDK). The SDK
includes a comprehensive set of development tools which includes a debugger, software
libraries, a handset-based emulator which is based on QEMU (Quick EMUlator). The
integrated development environment (IDE) which is officially supported for Android apps
development is Android Studio which uses the Android Development Tools (ADT)
plugin. The following are the several features which help in the development of Android
applications:

1.2 Features of Android


1.2.1 Application Framework
Android application framework is supported by number of open source libraries like
OpenSSL, SQLite, and Libc. The application framework is also supported by the Android
core libraries. The framework is based on UNIX file system permissions which ensures
security as the applications can have only those abilities that mobile phone owner give at
the time of installation. The application framework enables the reuse and replacement of
components.

1.2.2 Dalvik Virtual Machine (DVM)


Dalvik is a process virtual machine used in Google’s Android operating system. It is a
low memory based virtual machine which is especially designed for Android to run on the
embedded systems and work efficiently in low power. The programs are commonly
written in Java and are compiled into bytecode (by JVM). This bytecode is then translated
from JVM .class files to .dex file (Dalvik executable) before the installation of application
on a device.

Page | 2
Attendance Manager

1.2.3 SQLite
Android OS contains the SQLite database management classes which is used by an
application to maintain its own private database. SQLite is a relational database
management system contained in C programming library. It is mostly preferred as
embedded database for local or client storage in application software. It has many
bindings to the programming languages.

1.2.4 Linux Kernel


Android uses Linux version 2.6 for the core system services like memory management,
process management, security and network stack. The Linux kernel also acts as an
abstraction layer between the hardware and the software stack.

1.3 Objective
To design and develop the android-based Student attendance mobile application to keep
track of attendance in mobile devices for easy and proper evaluation of attendance.
1. Develop and implement an attendance manager application.
2. To create an Android mobile application to provide a User Interface to interact with the
application.

1.4 Motivation
The attendance Management System is one of the most important system used in every
organization to keep the track of attendance. The conventional methods being followed
for taking attendance requires a lot of paper works. It is also very hectic and very tedious
task to do and thus handling and maintaining the previous system is very tough as it is not
automated. Thus, there is a need to automate the system by building the android
application to reduce the manual efforts needed in storing the records and maintaining it.
The students can mark themselves and the records are being stored in the SQLite
databases. The attendance system through mobile devices is fully automated and is very
easy to use the system and does not need any external efforts to store and manage the
attendance.

Page | 3
Attendance Manager

CHAPTER 2

GENERAL DESCRIPTION

2.1 Introduction
The attendance manager application offers an ease in working, managing and daily
functions of the system in a very easy way through an intuitive interface making it easy
for every student to utilize it fully and is virtually maintenance free.

2.2 Product Perspective


The attendance manager application simplifies the method of recording attendance and
managing it through mobile devices. The system can be deployed in every student’s
mobile phones and can take their attendance themselves for their respective classes and
store it in the database. The application focus on the easy way of storing and uploading
attendance in the database with the help of mobile phones.

2.3 User Characteristics


The application has single user i.e. the students of the. The summary of the permissions
enjoyed by the user are:

• The application opens up to a page consisting of different menu items in a


dashboard to perform different action.
• The students can get the details of the of the respective courses enrolled by him.
• The students can get the details of attendance of the respective courses enrolled by
him.
• The students can take attendance/mark absent for their respective subjects and
store the details in the database.
• The students can add the different subjects on clicking of a button which helps
them to keep the track of their attendance in the form of pie graph.

Page | 4
Attendance Manager
• The application is also able to predict the attendance percentage by counting the
no of classes attended and the no of classes missed.

• The application is also being able to notify and remind user about the upcoming
classes on the specific date and time.

• The app is also able to show the current system date and time helping the students
about the particular events on that specific day.

• The application lets the user set the minimum attendance criteria with the help of a
sliding bar built inside the app.

Page | 5
Attendance Manager

CHAPTER 3

SPECIFICATION REQUIREMENTS

3.1 Mobile Requirements

• Processor :Processor Z2520 1.2GHz,or faster processor


• RAM :3GB (Recommended) or more
• Mobile :Android Mobile
• Version :Android Jelly Bean or above

3.2 System Requirements

• IDE :Android Studio


• OS :Windows 7 or above/Mac OS
• Hard disk :2 GB & 4 GB (500 MB for IDE + 1.5 GB for SDK and emulator)
• DB Browser for SQLite Database

Page | 6
Attendance Manager

CHAPTER 4
LAYOUTS/ACTIVITY

4.1. Splash Activity


• This is the first screen of the application.
• This screen will be visible for 3-5 seconds as soon as the user clicks on the App
icon in the mobile.
• It consists of the App icon with the Title which can be called as splash screen.
• This is build using the relative layout from the XML file of this activity.

• Splash screen contains an image element and it will be displayed for few seconds.
• Splash Screen is used to display the logo of the app and is generally used for
introduction of the application.

Fig. 4.1.1

Page | 7
Attendance Manager
4.2 Dashboard Activity
• The second screen will be the Home page/Dashboard of the App.
• Dashboard consists of four image Buttons and one Floating Button each button
takes to different activity.
• Dashboard contains different sections in a Linear layout and Text Fields and each
section has different functionality.
• The four buttons are Calendar, Subjects, Timetable and Predictor.
• The Floating activity lets the user add the different subjects.
• The Text Field shows the current system date and time and also display the
notification to the user about the upcoming events on that specific date.
• It has the navigation drawer which is built above the dashboard activity to choose
three options i.e. one option is of rating the app according to the users liking and
the second option is settings activity of and app and the third activity is of sharing
the app to the multiple users with the help of different platforms.
• The button on the toolbar lets user jump to setting activity
• If back button is pressed in home screen, it takes the user outside of the
application.

Fig. 4.2.1
Page | 8
Attendance Manager
4.3 Calendar Activity
• This activity has consisted of the calendar view which lets the user record their
attendance on a particular date.
• The user can choose the different course from the list which is stored in a spinner.
Once the subject is selected, it will remind the user about the upcoming classes on
a specific time.
• The user can click on the time to record their attendance and is welcomed with
three options in the alert dialog box. After choosing one of the options the user
response is recorded and saved in database.
• The different response is recorded in different colors for the ease of the user to
discriminate easily and to remember more precisely.
• The little help icon at the bottom of the app show the user how to interact with
each item.

Fig. 4.3.1

Page | 9
Attendance Manager
4.4 Subjects Activity
• This activity consists a list view of all the subjects.
• On clicking the particular subjects, the user is directed to a new screen/activity
which shows the user his overall attendance percentage in the form of pie graph
and also the necessary information’s.
• The onclick function is being implemented by on click listener.
• This activity also consists of a little help button at the top of the toolbar to which
lets user know how to interact with each item.

Fig. 4.4.1 Fig. 4.4.2

Page | 10
Attendance Manager
4.5 Timetable Activity
• This activity consists of the weekdays in the form of cuboid buttons.
• The user can click on any of these buttons of a particular day to view the no. of
classes for that specific day.
• The subjects in this activity are shown in the form of list view with their classes
timings.
• This activity also consists of a little help button at the top of the toolbar to which
lets user know how to interact with each item.
• If the user clicks on any of the subject, a alert dialog will pop out which lets user
to delete the particular subject.

Fig. 4.5.1

Page | 11
Attendance Manager
4.6 Predictor Activity
• This activity lets user predict his/her attendance by inputting the no of classes
attended and the no of classes missed.
• This activity consists of three different items: The first one being spinner which
lets the user choose the particular subjects from the list of the item. The second
one being the material number picker which offers user to input the no of classes
attended and the no of classes missed in an integer format.
• The activity also contains a predict button which predict the student’s attendance.
• Once the subject is selected, the input is set and the button is pressed, it shows the
current percentage and the predicted percentage of the subject being selected.
• The activity also consists of a little help button at the top of the toolbar to which
lets user know how to interact with each item.

Fig. 4.6.1

Page | 12
Attendance Manager
4.7 Add Subject Activity
• This activity is launched when the user clicks on the floating button in the
dashboard and then selects the add subject button.
• Once the add subject button is clicked the user is being provided with five buttons
i.e. SUBJECT, DAY, START TIME, END TIME and OK buttons.
• Each of these buttons performs different tasks.
• Subject button lets user enter the subject name.
• Day button allows user to input the day.
• Start Time allows user to input the start time of a course/subject.
• End Time allows user to input the end time of a course/subject.
• Ok button adds the subject in the database, and once all the inputs are given
correctly, a toast message is displayed to let the user know that the inputs are
correctly entered in database otherwise “Something Wrong” is displayed in toast.

Fig. 4.7.1

Page | 13
Attendance Manager
4.8 Navigation Drawer Activity
• The Navigation Drawer activity is present on the top of Dashboard activity.
• This activity is opened when the user clicks on the Hamburger icon on the top of
the toolbar or sliding across the dashboard items.
• The Navigation Drawer contains a section called header which displays the image
contained in the ImageView attribute.
• The header section also shows the name of the app.
• There are total three items in the Navigation Drawer: “Rate Us!”, “Settings” and
“Share”.
• Each of these items perform different actions. The first one asks for the feedback
from the user. The second one takes user to the new activity and the third one lets
user share the app across different users through different sharing platforms.

Fig. 4.8.1 Fig. 4.8.2

Page | 14
Attendance Manager
4.9 Settings Activity
• The settings activity can be launched either from the Navigation Drawer activity
or by clicking the Actionbar (three-dots) options present in the toolbar in the
Dashboard activity.
• The activity contains the two toggle buttons and the sliding bar.
• The first toggle button lets the user set a reminder for the particular class/event.
• The second toggle button lets the user set a class notification.
• There are two text fields with SET TIME which is enabled on clicking the
corresponding buttons and lets user select the time to remind or notify him/her.
• The sliding bar present in the activity allows user to set the minimum attendance
criteria for a subject.

Fig. 4.9.1

Page | 15
Attendance Manager

CHAPTER 5
IMPLEMENTATION

5.1 Android Concepts Used


5.1.1. Apps and APK Files
Apps are nothing but the software’s that run on the android based system example apps in
the Google play store. Because the android platform is built for mobile devices, a typical
android app is designed for a smart phone or a tablet PC running on android devices.

APK’s are the installable software’s for the android devices. Some apps come from play
store which are installed directly into the device but whereas APK’s are to be installed in
a manual way into the device.

5.1.2. Activities
Activity is a screen with the user interface on it like the frame or the window. This
consists of call back methods to run an activity to stop it that are available in the manifest
file of the application in studios.

5.1.3. Layouts and XML Files


Layouts define the User Interface structure of the application like that of the activities. All
elements in the layout are built using a hierarchy of view and view group objects.
A view is one which helps in drawing something that the user can see and interact. But
the View group is invisible container that has the structure of layouts and other view
groups.

5.1.4. Intents
Android intents are the objects of the activity in the application to the operating system to
ensure the operating system that another action should be required. Intents are often used
to move or link from the existing activity to the next activity by sending the parameters.

Page | 16
Attendance Manager
5.1.5. Widgets
Android widgets are used to interact with the application. These can be TextField,
EditText, Buttons, etc.

5.1.6 Broadcast Receiver


A broadcast receiver is a component which allows a component to register for a system or
application event. It enables the system to deliver events to the app outside of a regular
user flow, allowing the app to respond to system-wide broadcast announcements.

5.1.7 Alarm Manager


Android AlarmManager in android, lets user schedule your application to run at a specific
time in the future. It works whether your phone is running or not. The Android
AlarmManager holds a CPU wake lock that provides guarantee not to sleep the phone
until broadcast is handled.

5.2 SQLite Database Connectivity


USER DATABASE
Queries on Create
Create table query used for Subject Activity List, Timetable Activity List, Predictor
Activity and for Calendar Activity.
Subject Table

void createDB() {
mydatabase = openOrCreateDatabase("SubjectsDB", MODE_PRIVATE, null);
mydatabase.execSQL("CREATE TABLE IF NOT EXISTS " +
"subject(id INTEGER PRIMARY KEY AUTOINCREMENT,subjects varchar,days
varchar,start varchar,end varchar);");

mydatbase. execSQL Execute a single SQL statement that is NOT a SELECT or any
other SQL statement that returns data. In your example, to create the table, you would call
db.execSQL(DATABASE_CREATE) which would execute your table create statement
on your application's SQLite database.

The above query Creates the table in the following model: -


Page | 17
Attendance Manager
id subjects days start end

Attendance Table
mydatabase = openOrCreateDatabase("SubjectsDB", MODE_PRIVATE, null);
mydatabase.execSQL("CREATE TABLE IF NOT EXISTS " + "attendance(id
INTEGER PRIMARY KEY AUTOINCREMENT, subid int, date varchar, status
int, FOREIGN KEY (subid) REFERENCES subject(id));");
The above query Creates the table in the following model: -
Subject Table
Id subjects days start end

Attendance Table
id subid date status

Queries on Insert

Insert query used for Subject Activity List, Timetable Activity List, Predictor Activity
and for Calendar Activity.

mydatabase.execSQL("INSERT INTO subject(subjects,days,start,end) VALUES


('" +subject_input+"','"+day_input+"','"+start_input+"','" +end_input+"');");

Queries on select

Select query used for Subject Activity List, Timetable Activity List, Predictor Activity
and for Calendar Activity.
rawQuery() directly accepts an SQL select statement as input. The method returns
'Cursor' object which points to one row of the query result.

MainActivity
resultSet = mydatabase.rawQuery("SELECT * FROM subject WHERE days='" +
day + "';", null);

Page | 18
Attendance Manager
Predictor Class
resultSet = mydatabase.rawQuery("SELECT * FROM subject WHERE subjects='"
+ spinner_subject + "';", null);

5.3 Connectivity Between Layouts


In this project, there are around 10 activity. All the activity is interconnected using Intents
and get activated by the buttons i.e. by pressing the buttons which is from the
component’s tools will move to other activity.
Here is the flow of the project-
1. First, the splash screen will start, this will be there for 3-5 seconds after that
another activity gets invoked i.e. Dashboard activity.
2. In dashboard activity, there are around 5 buttons, 2 Text Fields, a hamburger icon
and an option menu in the action bar.
3. By clicking the round Floating button, a second buttons pop ups which will take
you to the add event activity where the user is asked to input all the details of a
particular subjects to record the attendance in that corresponding subject.
4. By pressing any one of the buttons you will be migrated to the other page. By
pressing the calendar button, you will be moved to calendar activity.
5. In the calendar activity all the subject details and the record of the attendance will
be displayed.
6. By pressing the subjects button, you will be moved to the subjects activity which
will display all the subject names and clicking on any subject will invoke the new
activity where the overall attendance percentage will be shown in pie graph
whereas long pressing on any subjects provide the user with an option to delete or
edit the subjects.
7. By pressing the timetable button, you will be moved to the timetable activity
which will display all the timetable for the week and provides user the name of the
subjects with all the details of the classes when user clicks on any day. The long
pressing on any subjects provide the user with an option to delete the subjects.
8. By pressing the predict button, you will be moved to the predictor activity which
will predict the students attendance percentage if he/she wish to attend and miss
the certain no of classes. The user can choose the subjects from the list which is
stored inside a spinner. The application displays the predicted percentage and the
current percentage when the user clicks the predict button.

Page | 19
Attendance Manager
9. By clicking the hamburger icon, you will be moved to Navigation Drawer which
contains the different menu items and each item perform certain actions.
10. Rate Us menu is to rate the application out of 5 stars opens in a dialog box.
11. Settings menu will take you to the settings activity where you can set reminder,
class notification and the minimum attendance criteria.
12. By clicking the share button, you will be able to share the application.

This is the flow of my project “ATTENDANCE MANAGER”

Page | 20
Attendance Manager

CHAPTER 6

SAMPLE OUTPUT

Page | 21
Attendance Manager

Page | 22
Attendance Manager

Page | 23
Attendance Manager

CHAPTER 7

CONCLUSION
The attendance system through mobile devices is a very effective tool which can be
used to a great extent. The system is portable and can be easily installed and used
on any mobile phones supporting Android OS.
The use of this system can result in a reduction of number of hours spent in feeding
the attendance details in the SQLite database. It also provides an interface which
is easy to understand by the users and greatly helps in adapting to the use of this
system.

7.1 Future Scope


The system can be further enhanced and several other functionalities can be added.
The system can be made login dependent. The present system can be enhanced by adding
faculty characteristics also.
We can enhance the system by implementing online mode login feature using Firebase.
The feature to update the attendance at a later stage can also be implemented. The system
can also, be enhanced by using voice recognition feature of the Android.

Page | 24
Attendance Manager

CHAPTER 8

BIBLIOGRAPHY

[1] Android. Android Developer Webpage. http://www.developers.android.com.

[2] Visual Paradigm International. Visual Paradigm for UML 10.1 Community
Edition. http://www.visual-paradigm.com.

[3] Gabriel Fielding. Android tutorial webpage. http://www.androidhive.info.

Page | 25