android-attendance-management-system-documentation
android-attendance-management-system-documentation
PROJECT REPORT ON
MANDANGAD
(CONDUCTED BY UNIVERSITY OF MUMBAI)
(2022-2023)
UNIVERSITY OF MUMBAI
CERTIFICATE
This is to certify that the project work entitled “ANDROID ATTENDANCE
MANAGEMENT SYSTEM” is bonified work of Mr. AVADHUT ANANT
KELASKAR bearing Seat No:4022586 submitted in partial fulfilment of the requirement
of the degree of BACHELOR OF SCIENCE in Information Technology by The
VISHWABHUSHAN BHARATRATRATNA DR. BABASAHEBAMBEDKAR
COLLEGE, AMBADAVE during 2022-23.
ABSTRACT
The Android Attendance Management System is a mobile application that is designed
to automate the process of tracking and managing attendance on an Android device. The
application is developed to replace the traditional manual system of attendance management,
which is prone to errors and time-consuming. The application is designed to be user-friendly
and efficient, with features such as biometric authentication, real-time monitoring of
attendance, and automated reporting.
The application will be developed using modern Android development tools and
technologies, including Android Studio, SQLite database, and Java programming language.
The project team will follow a structured software development lifecycle methodology to
ensure the application is developed in a timely and efficient manner, with quality and user
requirements in mind.
ACKNOWLEDGEMENT
The Project Title Android Attendance Management System is prepared by of T.Y.
BSc Information Technology, V.B.D.B.A College, Ambadave. This has been prepared under
the program for Degree Course.
The other person that needs very special mention is our project guide Prof.
Rajendra Raut. He has been the driving force behind the enthusiasm and the hard work
throughout this project.
I would also like to thank our other teachers, faculty members and friends for
being helping in project. Their valuable inputs helped us in this project better.
TABLE OF CONTENTS
Sr Topic Name Page
No No
1 Introduction
1.1 Background 1
1.2 Objective 2
1.3 Purpose and Scope 3
2 System Analysis 4
2.1 Existing System 5-6
2.2 Proposed System 7-8
2.3 Requirement Analysis 10
2.4 Hardware Requirement 10
2.5 Software Requirement 10-15
2.6 Feasibility study 16
3 System Design
3.1 Module Division 17
3.2 ER diagram 19-20
3.3 UML Diagrams 21-27
7 References 50
Introduction
Background
1|Page
Objectives
• To develop a mobile application that automates the process of tracking and managing
attendance on an Android device, enabling employees or students to mark their attendance
using their Android devices.
• To provide a user-friendly and efficient attendance management system that streamlines the
attendance tracking process, reducing errors and improving overall productivity.
• To provide real-time monitoring of attendance and automate the reporting of attendance data,
enabling managers or faculty members to make data-driven decisions.
• To ensure the security and privacy of attendance data by storing it securely on the institution's
server.
• To develop the application using modern Android development tools and technologies,
ensuring that the application is compatible with the latest Android devices and operating
systems.
• To provide support and maintenance for the application, ensuring that it continues to function
correctly and remains up-to-date with the latest technological advancements.
Overall, the objectives of the Android Attendance Management System project are to provide
a valuable tool for educational institutions to manage attendance data efficiently and
effectively, improving overall productivity and reducing the associated time and costs.
2|Page
The application can store students and their attendance on database which is taken by
teachers. The Android Attendance Management System can provide numerous benefits
including improved accuracy in attendance tracking, reduced teacher’s workload, and
increased efficiency in the management of attendance data. It can also help to identify
attendance patterns and assist in monitoring the performance of students.
The scope of a blood bank management system is broad and includes the following:
• Teachers Management: The system will mange the data of teachers and give access to
the teachers as admin.
• Students Management: The system manages the details of students including their
name, class, academic year etc.
• Status Management: The system manages the status of student whether he or she is
active or inactive.
• Attendance Management: The system manages the daily attendance of students and
also store this data in database.
• Records Management: The system displays and stores the attendance data and the data
can be exported to excel sheets.
3|Page
System Analysis
System analysis is a process of gathering and interpreting facts, diagnosing problems
and the information about the Attendance Management System to recommend improvements
on the system. It is a problem-solving activity that requires intensive communication between
the system users and system developers. System analysis or study is an important phase of
any system development process. The system is studied to the minutes’ detail and analysed.
The system analyst plays the role of the interrogator and dwells deep into the working of
the present system. The system is viewed as a whole and the input to the system are
identified. The outputs from the organizations are traced to the various processes. System
analysis is concerned with becoming aware of the problem, identifying the relevant and
decisional variables, analysing and synthesizing the various factors and determining an
optimal or at least a satisfactory solution or program of action.
A detailed study of the process must be made by various techniques like interviews,
questionnaires etc. The data collected by these sources must be scrutinized to arrive to a
conclusion. The conclusion is an understanding of how the system functions. This system is
called the existing system. Now the existing system is subjected to close study and problem
areas are identified. The designer now functions as a problem solver and tries to sort out the
difficulties that the enterprise faces. The solutions are given as proposals. The proposal is then
weighed with the existing system analytically and the best one is selected.
The proposal is presented to the user for an endorsement by the user. The proposal is
reviewed on user request and suitable changes are made. This is loop that ends as soon as the
user is satisfied with proposal. Preliminary study is the process of gathering and interpreting
facts, using the information for further studies on the system. Preliminary study is problem
solving activity that requires intensive communication between the system users and system
developers. It does various feasibility studies. In these studies, a rough figure of the system
activities can be obtained, from which the decision about the strategies to be followed for
effective system study and analysis can be taken.
4|Page
EXISTING SYSTEM
The existing system for attendance management is a traditional manual system that
involves the use of paper registers or attendance sheets to record attendance data. The process
involves the teacher or faculty member taking attendance at the beginning of each class or
session, with students either marking their attendance manually or the teacher calling out their
names and recording their attendance.
The attendance data is then manually compiled and entered into a spreadsheet or
database for further processing and reporting. The process is often time-consuming, prone to
errors, and can cause inconvenience to both the teacher or faculty member and the students.
The manual system also lacks real-time monitoring and reporting capabilities, making it
difficult for managers or faculty members to make data-driven decisions based on attendance
data.
The existing system for attendance management also poses security and privacy risks,
as the attendance sheets or registers can be lost, damaged, or tampered with, compromising
the integrity of the attendance data.
Overall, the existing system for attendance management is inefficient, error-prone, and
time-consuming. It lacks the capabilities of modern attendance management systems, such as
real-time monitoring, automated reporting, and customizable attendance policies. The
traditional manual system of attendance management is becoming increasingly obsolete in
today's fast-paced and technology-driven world. Hence, a more modern and efficient
attendance management system is needed, such as the Android Attendance Management
System, to address these challenges and improve overall productivity and efficiency.
5|Page
o Inefficient reporting: The existing system lacks real-time monitoring and automated
reporting capabilities, making it difficult for managers or faculty members to make
data-driven decisions based on attendance data.
o Limited accessibility: The manual system of attendance management is limited to a
physical location, making it difficult for employees or students to mark attendance
remotely.
o Lack of security: The manual system of attendance management poses security and
privacy risks, as attendance sheets or registers can be lost, damaged, or tampered
with, compromising the integrity of the attendance data.
o Difficult to customize: The existing system lacks customizable attendance policies,
making it difficult for organizations or educational institutions to set attendance rules
and parameters that meet their specific requirements.
6|Page
PROPOSED SYSTEM
The Android Attendance Management System for students is a mobile application
designed to automate and streamline the process of tracking and managing student attendance
records in educational institutions.
system will have a user-friendly interface that will allow teachers to take attendance
by simply tapping on the student's name in the app. It will also have a feature to allow teacher
to mark their attendance if they are attending online classes.
The system will generate daily and monthly attendance reports, and that can be stored
on excel sheets making it easier for teachers and administrators to track attendance records
and identify students with poor attendance.
7|Page
Identification of need
The old manual system was suffering from a series of drawbacks. Since whole of the
system was to be maintained with hands the process of keeping, maintaining and retrieving
the information was very tedious and lengthy. The records were never used to be in a
systematic order. there used to be lots of difficulties in associating any particular transaction
with a particular context.
The reason behind it is that there is lot of information to be maintained and have to be
kept in mind while running the education organization for this reason we have provided
features Present system is partially automated (computerized), actually existing system is
quite manual as one has to enter data with pen and paper mode.
• Documents and reports that must be provided by the new system: there can also be
few reports, which can help management in decision-making and cost controlling,
but since these reports do not get required attention, such kind of reports and
information were also identified and given required attention.
• Details of the information needed for each document and report.
• The required frequency and distribution for each document.
• Probable sources of information for each document and report.
8|Page
9|Page
Requirements Analysis
10 | P a g e
FRONT END
Android Studio:
11 | P a g e
XML:
XML is also widely used in Android development to define user interface layouts and
to store application data. In Android, XML files are used to describe the layout and content of
user interface elements, such as buttons, text views, and images. These XML files are
typically stored in the "res" (resources) directory of an Android application project.
One of the main advantages of using XML for Android UI design is that it separates the
presentation of the user interface from the code that controls its behaviour. This makes it
easier to modify the user interface without affecting the underlying code, and also allows
designers and developers to work on different parts of the application independently.
For example, an Android XML layout file might define a layout with a text view and a
button. The XML file specifies the position, size, and appearance of these elements, as well as
any text or images that they display. The code that controls the behaviour of the button, such
as what happens when it is clicked, is typically implemented in a separate Java file.
XML is also used in Android to store and manage application data. This is often done
using XML-based data storage formats such as Shared Preferences or XML data files. Shared
Preferences are used to store small amounts of key-value data, such as user preferences or
settings, while XML data files can be used to store more complex data structures such as lists
or databases.
12 | P a g e
BACKEND
Java:
Java is one of the primary programming languages used for developing Android
applications. Android applications are built using the Java programming language and run on
the Android operating system, which is based on the Linux kernel.
13 | P a g e
SQLITE:
SQLite is a popular open-source database engine that is widely used in Android app
development. It is a lightweight, high-performance database engine that is designed to be embedded
in applications.
Here are some key features of SQLite in Android:
1. Relational Database: SQLite is a relational database engine, which means that it
stores data in tables with rows and columns. This allows developers to organize
and manage data efficiently.
2. Built-In Support: Android includes built-in support for SQLite, which means that
developers do not need to install any additional software to use it. They can
simply include the SQLite library in their Android app and start using it.
3. SQL Syntax: SQLite uses SQL (Structured Query Language) for data
manipulation and retrieval. This means that developers who are familiar with
SQL can easily work with SQLite in their Android apps.
4. Lightweight: SQLite is a lightweight database engine that has a small memory
footprint. This makes it ideal for use in mobile apps, where resources such as
memory and CPU power are limited.
5. Transaction Support: SQLite supports transactions, which means that
developers can group multiple database operations together and ensure that
they are all completed successfully or none of them are completed at all. This
can help to prevent data inconsistencies and improve application reliability.
6. Content Provider: Android provides a content provider framework that allows
developers to share data between applications. SQLite can be used as a data
source for content providers, which means that data can be accessed and
shared across multiple applications.
14 | P a g e
15 | P a g e
FEASIBILITY STUDY
After doing the project Android Attendance Management System, study and analysing
all the existing or required functionalities of the system, the next task is to do the feasibility
study for the project. All projects are feasible - given unlimited resources and infinite time.
Feasibility study includes consideration of all the possible ways to provide a solution to the
given problem. The proposed solution should satisfy all the user requirements and should be
flexible enough so that future changes can be easily done based on the future upcoming
requirements.
A. Economic Feasibility:
This is a very important aspect to be considered while developing a project. We decided the
technology based on minimum possible cost factor.
All hardware and software cost have to be borne by the organization.
Overall, we have estimate that the benefits the organization is going to receive from the
proposed system will surely overcome the initial costs and the running cost for system.
B. Technical Feasibility:
This included the study of function, performance and constraints that may affect the ability to
achieve an acceptable system. For this feasibility study, we studied complete functionality to
be provided in the system, as described in the System Requirement Specification (SRS), and
checked if everything was possible using different type of frontend and backend platform.
C. Operational Feasibility
No doubt the proposed system is fully GUI based that is very user friendly and all inputs to be
taken all self-explanatory even to a layman. Besides, a proper training has been conducted to
let know the essence of the system to the users so that they feel comfortable with new system.
As far our study is concerned the clients are comfortable and happy as the system has cut
down their loads and doing.
16 | P a g e
System Design
MODULES DIVISION
17 | P a g e
GANTT CHART
Phase Sub phase Expected Actual Date Remarks
Date of of
Completion Completion
Preliminary
Investigation
Organizational
Overview
System Description
Feasibility Study
System Analysis
Collection of System
Requirements
Modelling Events
Modelling
classes/objects
Identifying Activities
& Sequences
System
Designing
Designing Database
Tables
Components,
Package &
Deployment
considerations
System Coding
Program Coding
Testing &
Validations
System Integration
System
Implementation
Project Review
by Guide
Feedback for
Improving,
correcting &
Modifying
The Project
Project Report
Submission
18 | P a g e
ER Diagrams contain different symbols that use rectangles to represent entities, ovals to
define attributes and diamond shapes to represent relationships.
ER Model stands for Entity Relationship Model is a high-level conceptual data model
diagram. ER model helps to systematically analyse data requirements to produce a well-
designed database. The ER Model represents real-world entities and the relationships between
them. Creating an ER Model in DBMS is considered as a best practice before implementing
your database.
ERD Diagram allows you to communicate with the logical structure of the database to users
19 | P a g e
ER DIAGRAM
This is the ER diagram for Android Attendance Management System that shows how the
modules are related with each other. From this we can easily conclude that how the admin each and
every module.
20 | P a g e
UML DIAGRAMS
A UML use case diagram is the primary form of system/software requirements for a new
software program underdeveloped. Use cases specify the expected behaviour (what), and not
the exact method of making it happen (how). Use cases once specified can be denoted both
textual and visual representation (i.e. use case diagram). A key concept of use case modelling
is that it helps us design a system from the end user's perspective. It is an effective technique
for communicating system behaviour in the user's terms by specifying all externally visible
system behaviour
21 | P a g e
CLASS DIAGRAM:
Class diagram is a static diagram. It represents the static view of an application. Class
diagram is not only used for visualizing, describing, and documenting different aspects of a
system but also for constructing executable code of the software application.
Class diagram describes the attributes and operations of a class and also the constraints
imposed on the system. The class diagrams are widely used in the modelling of object-
oriented systems because they are the only UML diagrams, which can be mapped directly
with object-oriented languages.
22 | P a g e
ACTIVITY DIAGRAM
Activity diagram is basically a flowchart to represent the flow from one activity to
another activity. The activity can be described as an operation of the system.
The control flow is drawn from one operation to another. This flow can be sequential,
branched, or concurrent. Activity diagrams deal with all type of flow control by using
different elements such as fork, join, etc.
Activity is a particular operation of the system. Activity diagrams are not only used for
visualizing the dynamic nature of a system, but they are also used to construct the executable
system by using forward and reverse engineering techniques. The only missing thing in the
activity diagram is the message part.
23 | P a g e
UPDATE/DELETE Records:
24 | P a g e
LEVEL-0
25 | P a g e
LEVEL-1
LEVEL-2
26 | P a g e
SEQUENCE DIAGRAM
27 | P a g e
Export Attendance:
package com.example.attendancemanagementsystemfinal;
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import android.Manifest;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
28 | P a g e
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
Spinner SpinnerAcademicYear,SpinnerClass,SpinnerSubject;
DbHelper3 db3;
Button Submit;
Dialog;
29 | P a g e
String
StuClassName[],StuSubject[],StuAcademicYear[],SelectedAcademicYear,SelectedClassNam
e,SelectedSubject,ExcelName1,SeletectedFolder;
static {
System.setProperty(
"org.apache.poi.javax.xml.stream.XMLInputFactory",
"com.fasterxml.aalto.stax.InputFactoryImpl"
);
System.setProperty(
"org.apache.poi.javax.xml.stream.XMLOutputFactory",
"com.fasterxml.aalto.stax.OutputFactoryImpl"
);
System.setProperty(
"org.apache.poi.javax.xml.stream.XMLEventFactory",
"com.fasterxml.aalto.stax.EventFactoryImpl"
);
Button ExcelNameSubmit,ExcelNameBack;
EditText txtExcelName;
@Override
super.onCreate(savedInstanceState);
30 | P a g e
setContentView(R.layout.activity_export_attendance);
SpinnerAcademicYear=(Spinner) findViewById(R.id.SpinnerAcademicYear3);
SpinnerClass=(Spinner) findViewById(R.id.SpinnerClass2);
SpinnerSubject=(Spinner) findViewById(R.id.SpinnerSubject2);
Submit=(Button) findViewById(R.id.BtnExportAttendance1);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
startActivity(intent);
finish();
});
dialog=new Dialog(ExportAttendanceActivity.this);
dialog.setContentView(R.layout.excelfilename);
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.L
ayoutParams.WRAP_CONTENT);
dialog.setCancelable(false);
ExcelNameSubmit=dialog.findViewById(R.id.btnSubmitExcelName);
ExcelNameBack=dialog.findViewById(R.id.btnExcelNameBack);
txtExcelName=dialog.findViewById(R.id.txtExcelName);
list.add("Roll NO");
31 | P a g e
list.add("Name");
list.add("Class");
list.add("Subject");
list.add("Date");
list.add("Status");
db3=new DbHelper3(this);
Cursor c1 = db3.getStudentAcademicYear();
c1.moveToFirst();
StuAcademicYear[i] = c1.getString(0);
c1.moveToNext();
SpinnerAcademicYear.setAdapter(adb1);
Cursor c2 = db3.getStudentClass();
c2.moveToFirst();
StuClassName[i] = c2.getString(0);
c2.moveToNext();
32 | P a g e
SpinnerClass.setAdapter(adb2);
SpinnerAcademicYear.setOnItemSelectedListener(new
AdapterView.OnItemSelectedListener() {
@Override
SelectedAcademicYear=String.valueOf(SpinnerAcademicYear.getSelectedItem());
@Override
});
SpinnerClass.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
SelectedClassName=String.valueOf((SpinnerClass.getSelectedItem()));
Cursor c5 = db3.getStudentSubjectWithClass(SelectedClassName);
c5.moveToFirst();
StuSubject[i1] = c5.getString(0);
c5.moveToNext();
33 | P a g e
SpinnerSubject.setAdapter(adb7);
@Override
});
SpinnerSubject.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
SelectedSubject=String.valueOf(SpinnerSubject.getSelectedItem());
@Override
});
Submit.setOnClickListener(new View.OnClickListener() {
@Override
34 | P a g e
if
(getApplicationContext().checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_S
TORAGE)== PackageManager.PERMISSION_GRANTED) {
String[] permission =
{Manifest.permission.WRITE_EXTERNAL_STORAGE};
if (permission==null)
Toast.makeText(ExportAttendanceActivity.this,"Permission to access
internal or external storage is declined please grant the
permission!",Toast.LENGTH_LONG).show();
else {
dialog.show();
} else {
requestStoragePermission();
if(requestStoragePermission()) {
dialog.show();
else{
Toast.makeText(ExportAttendanceActivity.this,"Permission to access
internal or external storage is declined please grant the
permission!",Toast.LENGTH_LONG).show();
}
35 | P a g e
} else {
});
ExcelNameSubmit.setOnClickListener(new View.OnClickListener() {
@Override
ExcelName1=String.valueOf(txtExcelName.getText());
importData();
dialog.dismiss();
});
ExcelNameBack.setOnClickListener(new View.OnClickListener() {
@Override
dialog.dismiss();
});
@Override
startActivity(intent);
finish();
Cursor
c=db3.getStudentAttendance(SelectedAcademicYear,SelectedClassName,SelectedSubject);
if (c.getCount()>0)
try {
createxlFile(c);
else{
Cell cell=null;
37 | P a g e
Sheet sheet=null;
sheet=wb.createSheet(ExcelName1);
Row row=sheet.createRow(0);
cell=row.createCell(0);
cell.setCellValue("RollNo");
cell=row.createCell(1);
cell.setCellValue("FullName");
cell=row.createCell(2);
cell.setCellValue("Class");
cell=row.createCell(3);
cell.setCellValue("Subject");
cell=row.createCell(4);
cell.setCellValue("Date");
cell=row.createCell(5);
cell.setCellValue("Status");
sheet.setColumnWidth(0,(20*200));
sheet.setColumnWidth(1,(30*200));
sheet.setColumnWidth(2,(30*200));
sheet.setColumnWidth(3,(30*200));
sheet.setColumnWidth(4,(30*200));
sheet.setColumnWidth(5,(30*200));
int i=0;
if (c.moveToFirst()) {
38 | P a g e
do {
StuRollno = c.getString(c.getColumnIndexOrThrow("RollNO"));
StuName = c.getString(c.getColumnIndexOrThrow("fullname"));
Class1 = c.getString(c.getColumnIndexOrThrow("Class"));
Subject = c.getString(c.getColumnIndexOrThrow("Subject"));
Date = c.getString(c.getColumnIndexOrThrow("Date"));
AttendanceStatus = c.getString(c.getColumnIndexOrThrow("Attendance_Status"));
Row row1=sheet.createRow(i+1);
cell=row1.createCell(0);
cell.setCellValue(StuRollno);
cell=row1.createCell(1);
cell.setCellValue(StuName);
cell=row1.createCell(2);
cell.setCellValue(Class1);
cell=row1.createCell(3);
cell.setCellValue(Subject);
cell=row1.createCell(4);
cell.setCellValue(Date);
cell=row1.createCell(5);
cell.setCellValue(AttendanceStatus);
sheet.setColumnWidth(0,(20*200));
sheet.setColumnWidth(1,(30*200));
sheet.setColumnWidth(2,(30*200));
39 | P a g e
sheet.setColumnWidth(3,(30*200));
sheet.setColumnWidth(4,(30*200));
sheet.setColumnWidth(5,(30*200));
i++;
while (c.moveToNext());
String fileName=ExcelName1+".xlsx";
String path=
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS
) +File.separator+folderName+File.separator+fileName;
File file=new
File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUME
NTS)+ File.separator+folderName);
if(!file.exists()){
boolean f=file.mkdirs();
FileOutputStream fileOutputStream=null;
try{
fileOutputStream=new FileOutputStream(path);
wb.write(fileOutputStream);
40 | P a g e
String s=e.toString();
Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();
try{
fileOutputStream.close();
}catch(Exception ex){
ex.printStackTrace();
else{
FileOutputStream fileOutputStream=null;
try{
fileOutputStream=new FileOutputStream(path);
wb.write(fileOutputStream);
String s=e.toString();
Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();
try{
fileOutputStream.close();
}catch(Exception ex){
ex.printStackTrace();
41 | P a g e
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(ExportAttendanceActivity.this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
PERMISSION_REQUEST_MEMORY_ACCESS);
return true;
}else {
return false;
}}
42 | P a g e
DATABASE SCHEMAS
Teacher Registration:
Field Name Data Type Description
Full Name TEXT Name of Teacher
Username TEXT User Name of Teacher
Phone No TEXT Phone no of Teacher
Password TEXT Password for Teachers
Student Data:
Field Name Data Type Description
Roll No INTEGER Roll No of Student
Full Name TEXT Full Name of Student
Class TEXT Class Name of Student
Subject Name TEXT Subject Name of Student
Status TEXT Status of Student
Attendance Data:
Field Name Data Type Description
Academic Year TEXT Academic year of Student
Class TEXT Class Name of Student
Roll No TEXT Roll No of Student
Full Name TEXT Full Name of Student
Subject TEXT Subject of Student
Date TEXT Date of Attendance
Attendance Status TEXT Attendance Status of Student
43 | P a g e
Testing approaches
Testing is the process of executing a program to find errors. To make our software perform
well it should be error-free. If testing is done successfully it will remove all the errors from
the software.
1. UNIT TESTING
Unit testing is a method of testing individual units or components of a software application.
Unit tests are usually automated and are designed to test specific parts of the code, such as a
particular function or method. Unit testing is done at the lowest level of the software
development process, where individual units of code are tested in isolation.
• It helps me to identify bugs early in the development process, before they become
more difficult and expensive to fix.
• It helps me to ensure that the individual units of the software are working as
intended
• It helps me to ensure that changes to the code do not introduce new bugs.
• It makes the code more modular and easier to understand and maintain.
• It helps me to improve the overall quality and reliability of the software.
2. INTEGRATION TESTING
Integration testing is a method of testing how different units or components of a software
application interact with each other. It is used to identify and resolve any issues that may arise
when different units of the software are combined. Integration testing is typically done after
unit testing and before functional testing, and is used to verify that the different units of the
software work together as intended
• It helps to identify and resolve issues that arise when different units of the
software are combined.
• It helps to ensure that the different units of the software work together as
intended.
• It helps to improve the overall reliability and stability of the software.
• It’s important to keep in mind that Integration testing is essential for complex
systems where different components are integrated together.
44 | P a g e
45 | P a g e
46 | P a g e
47 | P a g e
Conclusion
This system can provide more efficient, effective way to manage attendance data and
provide more compressive way to store attendance data as it provides a facility to store data in
excel sheet.
As it has been so much hectic work to be take attendance manually with pen and paper
mode and also it causes to be error prone system. Our system can solve this problem by
making it automatic and because of this our system is less error prone compare to the existing
system.
This application is made using android development tool so that it can be portable and
because of it will be used by any teacher who has an android device.
The system provides easy and fast way to take attendance and stores data digitally
which make it more reliable, efficient and secure and also it successfully solves the drawbacks
of existing system.
And it also makes attendance easy to maintain and due to having an option to export
attendance data to excel sheet is will make is easy to manage and store the data. And also, it is
more reliable, secure and user friendly.
48 | P a g e
Future Work
My system is can be improved in future it can have some future enhancement that can cause
to have more efficient system:
1. My system has for now one access i.e. Teacher but in future we can add one
more access for student. The student will have access to check its attendance,
its dashboard so that he or she can improve their attendance.
2. One module can be added that is a dashboard which will display the individual
student’s attendance percentage and how he or she is improving its attendance.
3. For now, there is option for importing and exporting excel sheet to students and
attendance data but we can also add other options for this like QR code and so
on.
4. In future AI can also be implemented in my project so that teachers can get
more effective insights from the student’s attendance.
5. The SMS service can be added which will send message to the parents if the
attendance of their child’s drops below the cap of attendance.
49 | P a g e
References
➢ https://openai.com/blog/chatgpt
➢ www.google.com
➢ https://developer.android.com/studio
➢ https://en.wikipedia.org/wiki/Attendance
➢ https://www.stackoverflow.com
➢ www.youtube.com/@BeeCoder
➢ Android Tutorial - GeeksforGeeks
➢ How to Implement a RecyclerView | Guide for Android Developers (thedroidsonroids.com)
➢ Head First Android Development: A Brain-Friendly Guide
➢ Android Programming for Beginners
50 | P a g e