Uploaded by rishitasingh2018

android-project-report

advertisement
lOMoARcPSD|23936599
Android Project report
Computer science (Institute of Engineering and Technology)
Studocu is not sponsored or endorsed by any college or university
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
INDUSTRIAL TRAINING MIDTERM
REPORT
ATTENDOPEDIA
Submitted in partial fulfilment of the requirements for the award of
Degree of Bachelor of Technology in Computer Science Engineering
SUBMITTED BY
MANINDER KAUR
University Roll No. 1608481
SUBMITTED TO
Ms. SUKHWANT KAUR (Assistant Professor)
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
IET BHADDAL TECHNICAL CAMPUS BHADDAL, ROPAR
2016-2020
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
INDUSTRAIL TRAINING MIDTERM REPORT
TABLE OF CONTENTS
List of Figures........................................................................................................ii
List of Tables........................................................................................................iii
Abbrevaitions....................................................................................................iv-v
1. Software Training.......................................................................................1-14
1.1. Introduction to Java..............................................................................1-5
1.2. Android.................................................................................................5-14
2. Industrial Training Project......................................................................15-20
2.1. Project Introduction..........................................................................15-17
2.2. System analysis & design..................................................................17-20
3. Conclusion.......................................................................................................21
4. References.......................................................................................................22
i
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
INDUSTRAIL TRAINING MIDTERM REPORT
LIST OF FIGURES
Figure 1.1.1 : Features of java..............................................................................2
Figure 1.1.2 : Platform Independent....................................................................2
Figure 1.1.3 : Security...........................................................................................3
Figure 1.2.1 : Android Features...........................................................................6
Figure 1.2.2 : Categories of Android Application..............................................6
Figure 1.2.3 : Versions of Android.......................................................................7
Figure 1.2.4 : Android Architecture....................................................................9
Figure 1.2.5 : Android Activity Architecture....................................................10
Figure 1.2.6 : Android Core Building Blocks....................................................11
Figure 1.2.7 : Android Emulator………………................................................12
Figure 1.2.8 : Compiling and packaging process..............................................13
Figure 2.1.1 : Iterative and Incremental development.....................................17
Figure 2.2.2.1 : Data Flow Diagram Level-0.....................................................18
Figure 2.2.2.2 : Data Flow Diagram Level-1....................................................19
Figure 2.2.2.3 : Flowchart of the Project..........................................................19
ii
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
INDUSTRAIL TRAINING MIDTERM REPORT
LIST OF TABLES
Table 1.1.1 : Data Types of Java…...................................................................4-5
Table 2.2.3.1 : Class Table…..............................................................................20
Table 2.2.3.2 : Subject Table…..........................................................................20
Table 2.2.3.3 : Student Table…..........................................................................20
Table 2.2.3.4 : Attendance Table…....................................................................20
iii
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
INDUSTRAIL TRAINING MIDTERM REPORT
ABBREVAITIONS
A
API- Application Program Interface
APK- Android Package
AVD- Android Virtual Device
D
DVM- Dalvik Virtual Machine
H
HTTP- Hyper Text Transfer Protocol
I
IDEN- Integrated Digital Enhanced Network
J
JDK- Java Development Kit
JRE- Java Runtime Environment
JVM- Java Virtual Machine
O
OOPS- Object Oriented Programming Systems
S
SDK- Software Development Kit
SSL- Secure Sockets Layer
iv
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
INDUSTRAIL TRAINING MIDTERM REPORT
W
WORA- Write Once Run Anywhere
X
XML- Extensible Markup Language
v
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 1
SOFTWARE TRAINING
CHAPTER-1
SOFTWARE TRAINING
1.1 INTODUCTION TO JAVA
Java is a programming language created by James Gosling from Sun Microsystems (Sun) in
1991. The first publicly available version of Java (Java 1.0) was released in 1995. Sun
Microsystems was acquired by the Oracle Corporation in 2010. Over time new enhanced versions
of Java have been released. The current version of Java is Java 1.7 which is also known as Java
7. From the Java programming language, the Java platform evolved. The Java platform allows
software developers to write program code in other languages than the Java programming
language and still runs on the Java virtual machine. The Java platform is usually associated with
the Java virtual machine and the Java core libraries.
Java Virtual machine
The Java virtual machine (JVM) is a software implementation of a computer that executes
programs like a real machine. The Java virtual machine is written specifically for a specific
operating system, e.g. for Linux a special implementation is required as well as for Windows.
Java Runtime Environment vs. Java Development Kit
A Java distribution comes typically in two flavours, the Java Runtime Environment (JRE) and
the Java Development Kit (JDK). The Java runtime environment (JRE) consists of the JVM and
the Java class libraries and contains the necessary functionality to start Java programs. The JDK
contains in addition the development tools necessary to create Java programs. The JDK consists
therefore of a Java compiler, the Java virtual machine, and the Java class libraries.
Features of Java
The main objective of Java programming language creation was to make it portable, simple and
secure programming language. Apart from this, there are also some awesome features which play
important role in the popularity of this language. The features of Java are also known as
java buzzwords.
A list of most important features of Java language are given below:
Simple: Java is very easy to learn and its syntax is simple, clean and easy to understand.
According to Sun, Java language is a simple programming language because:
o
Java syntax is based on C++ (so easier for programmers to learn it after C++).
o
Java has removed many confusing and rarely-used features e.g. explicit pointers, operator
overloading etc.
o
There is no need to remove unreferenced objects because there is Automatic Garbage
Collection in java.
1
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 1
SOFTWARE TRAINING
Object-oriented: Java is object-oriented programming language. Everything in Java is an
object. Object-oriented means we organize our software as a combination of different types of
objects that incorporates both data and behaviour. Object-oriented programming (OOPs) is a
methodology that simplifies software development and maintenance by providing some rules.
Basic concepts of OOPs are: Object, Class, Inheritance, Polymorphism, Abstraction,
Encapsulation.
Fig 1.1.1 Features of java
Platform Independent:
Fig 1.1.2 Platform Independent
2
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 1
SOFTWARE TRAINING
Java is platform independent because it is different from other languages like C, C++ etc. which
are compiled into platform specific machines while Java is a write once, run anywhere language.
A platform is the hardware or software environment in which a program runs.
Java code can be run on multiple platforms e.g. Windows, Linux, Sun Solaris, Mac/OS etc. Java
code is compiled by the compiler and converted into bytecode. This bytecode is a platformindependent code because it can be run on multiple platforms i.e. Write Once and Run Anywhere
(WORA).
Secured: Java is best known for its security. With Java, we can develop virus-free systems. Java
is secured because:
o
No explicit pointer
o
Java Programs run inside virtual machine sandbox
Fig 1.1.3 Security
o
Classloader: Class loader in Java is a part of the Java Runtime Environment (JRE) which
is used to dynamically load Java classes into the Java Virtual Machine. It adds security
by separating the package for the classes of the local file system from those that are
imported from network sources.
o
Bytecode Verifier: It checks the code fragments for illegal code that can violate access
right to objects.
o
Security Manager: It determines what resources a class can access such as reading and
writing to the local disk.
These securities are provided by java language. Some security can also be provided by
application developer through SSL, JAAS, Cryptography etc.
Robust: Robust simply means strong. Java is robust because:
o
It uses strong memory management.
o
There is lack of pointers that avoids security problems.
o
There is automatic garbage collection in java which runs on the Java Virtual Machine to
get rid of objects which are not being used by a Java application anymore.
o
There is exception handling and type checking mechanism in java. All these points make
java robust.
3
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 1
SOFTWARE TRAINING
Architecture-neutral: Java is architecture neutral because there are no implementation
dependent features e.g. size of primitive types is fixed. In C programming, int data type occupies
2 bytes of memory for 32-bit architecture and 4 bytes of memory for 64-bit architecture. But in
java, it occupies 4 bytes of memory for both 32 and 64 bit architectures.
Portable: Java is portable because it facilitates you to carry the java bytecode to any platform. It
doesn't require any type of implementation.
High-performance: Java is faster than other traditional interpreted programming languages
because Java bytecode is "close" to native code. It is still a little bit slower than a compiled
language (e.g. C++). Java is an interpreted language that is why it is slower than compiled
languages e.g. C, C++ etc.
Distributed: Java is distributed because it facilitates users to create distributed applications in
java. RMI and EJB are used for creating distributed applications. This feature of Java makes us
able to access files by calling the methods from any machine on the internet.
Multi-threaded: A thread is like a separate program, executing concurrently. We can write Java
programs that deal with many tasks at once by defining multiple threads. The main advantage of
multi-threading is that it doesn't occupy memory for each thread. It shares a common memory
area. Threads are important for multi-media, Web applications etc.
Dynamic: Java is a dynamic language. It supports dynamic loading of classes. It means classes
are loaded on demand. It also supports functions from its native languages i.e. C and C++. Java
supports dynamic compilation and automatic memory management (garbage collection).
Data Types in Java
Data types specify the different sizes and values that can be stored in the variable. There are two
types of data types in Java:
1. Primitive data types: The primitive data types include Integer, Character, Boolean, and
Floating Point.
2. Non-primitive data types: The non-primitive data types include Classes, Interfaces, and
Arrays.
Java Primitive Data Types: In Java language, primitive data types are the building blocks of
data manipulation. These are the most basic data types available in Java language. Java is a
statically-typed programming language. It means, all variables must be declared before its use.
That is why we need to declare variable’s type and name.
There are 8 types of primitive data types: Boolean data type, byte data type, char data type,
short data type, int data type, long data type, float data type, double data type
Data Type
Boolean
Char
Default Value
False
'\u0000'
4
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
Default size
1 bit
2 bytes
lOMoARcPSD|23936599
CHAPTER 1
SOFTWARE TRAINING
Byte
Short
Int
Long
Float
Double
0
0
0
0L
0.0f
0.0d
Table 1.1.1 Data types of Java
1 byte
2 bytes
4 bytes
8 bytes
4 bytes
8 bytes
1.2 ANDROID
Android is an open source and Linux-based Operating System for mobile devices such as
smartphones and tablet computers. Android was developed by the Open Handset Alliance, led
by Google, and other companies. Android offers a unified approach to application development
for mobile devices which means developers need only develop for Android, and their
applications should be able to run on different devices powered by Android.
The first beta version of the Android Software Development Kit (SDK) was released by Google
in 2007 where as the first commercial version, Android 1.0, was released in September 2008. On
June 27, 2012, at the Google I/O conference, Google announced the next Android version, 4.1
Jelly Bean. Jelly Bean is an incremental update, with the primary aim of improving the user
interface, both in terms of functionality and performance.
Features of Android
Android is a powerful operating system competing with Apple 4GS and supports great features.
Few of them are listed below −
➢ Beautiful UI: Android OS basic screen provides a beautiful and intuitive user interface.
➢ Connectivity: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE,
NFC and WiMAX.
➢ Storage: SQLite, a lightweight relational database, is used for data storage purposes.
➢ Messaging: SMS and MMS
➢ Web browser: Based on the open-source Web Kit layout engine, coupled with Chrome's
➢
➢
➢
➢
V8 JavaScript engine supporting HTML5 and CSS3.
Multi-touch: Android has native support for multi-touch which was initially made
available in handsets such as the HTC Hero.
Multi-tasking: User can jump from one task to another and same time various application
can run simultaneously.
GCM: Google Cloud Messaging (GCM) is a service that lets developers send short
message data to their users on Android devices, without needing a proprietary sync
solution.
Android Beam: A popular NFC-based technology that lets users instantly share, just by
touching two NFC-enabled phones together.
5
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 1
SOFTWARE TRAINING
Fig 1.2.1 Android Features
Android Applications: Android applications are usually developed in the Java language using
the Android Software Development Kit. Once developed, Android applications can be packaged
easily and sold out either through a store such as Google Play, Slide ME, Opera Mobile Store,
Mobango, F-droid and the Amazon Appstore.
There are many android applications in the market. The top categories are −
Fig 1.2.2 Categories of Android Application
Android versions: These will help you to identify on which version you should make your
application. All these versions have a percentage chart across the whole globe according to a
survey, which will help you to identify the maximum used android version to maximize your
application benefits and provide it to the maximum users.
•
•
Android 1.0 (2008) - No Version Name
Android 1.1 2009) - Petit Four
6
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 1
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
SOFTWARE TRAINING
Android 1.5 (2009) - Cupcake
Android 1.6 (2009) - Donut
Android 2.0 - 2.1 (2009) - Eclair
Android 2.2 - 2.2.3 (2010) - Froyo
Android 2.3 - 2.3.7 (2010) - Gingerbread
Android 3.0 - 3.2.6 (2011) - Honeycomb
Android 4.0 - 4.0.4 (2011) - Ice Cream Sandwich
Android 4.1 - 4.3.1 (2012) - Jelly Bean
Android 4.4 - 4.4.4 (2013) - KitKat
Android 5.0 - 5.1.1 (2014) - Lollipop
Android 6.0 - 6.0.1 (2015) - Marshmallow
Android 7.0 - 7.1.2 (2016) - Nougat
Android 8.0 - 8.1 (2017) - Oreo
Android 9.0 (2018) - Pie
Android 10 (2019) - Android 10
Interestingly, the first version of Android didn't adhere to a dessert name convention. This didn't
start until 1.1 which was the Petit Four. Since then it has gone in alphabetical order. It has now
been announced that Android will no longer be using desserts as part of its naming convention.
The latest version of the software will simply be known as Android 10.
Fig 1.2.3 Versions of Android
Android Architecture: Android operating system is a stack of software components which is
roughly divided into five sections and four main layers as shown below in the architecture
diagram.
7
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 1
SOFTWARE TRAINING
Linux kernel: At the bottom of the layers is Linux - Linux 3.6 with approximately 115 patches.
This provides a level of abstraction between the device hardware and it contains all the essential
hardware drivers like camera, keypad, display etc. Also, the kernel handles all the things that
Linux is really good at such as networking and a vast array of device drivers, which take the pain
out of interfacing to peripheral hardware.
Libraries: On top of Linux kernel there is a set of libraries including open-source Web browser
engine Web Kit, well known library libc, SQLite database which is a useful repository for storage
and sharing of application data, libraries to play and record audio and video, SSL libraries
responsible for Internet security etc.
Android Libraries: This category encompasses those Java-based libraries that are specific to
Android development. Examples of libraries in this category include the application framework
libraries in addition to those that facilitate user interface building, graphics drawing and database
access. A summary of some key core
Android libraries available to the Android developer is as follows −
•
•
•
•
•
•
•
•
•
android.app − Provides access to the application model and is the cornerstone of all
Android applications.
android.content − Facilitates content access, publishing and messaging between
applications and application components.
android.database − Used to access data published by content providers and includes
SQLite database management classes.
android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.
android.os − Provides applications with access to standard operating system services
including messages, system services and inter-process communication.
android.text − Used to render and manipulate text on a device display.
android.view − The fundamental building blocks of application user interfaces.
android.widget − A rich collection of pre-built user interface components such as
buttons, labels, list views, layout managers, radio buttons etc.
android.webkit − A set of classes intended to allow web-browsing capabilities to be built
into applications.
Having covered the Java-based core libraries in the Android runtime, it is now time to turn our
attention to the C/C++ based libraries contained in this layer of the Android software stack.
Android Runtime: This is the third section of the architecture and available on the second layer
from the bottom. This section provides a key component called Dalvik Virtual Machine which
is a kind of Java Virtual Machine specially designed and optimized for Android.
The Dalvik VM makes use of Linux core features like memory management and multi-threading,
which is intrinsic in the Java language. The Dalvik VM enables every Android application to run
in its own process, with its own instance of the Dalvik virtual machine. The Android runtime
also provides a set of core libraries which enable Android application developers to write
Android applications using standard Java programming language.
Application Framework: The Application Framework layer provides many higher-level
services to applications in the form of Java classes. Application developers are allowed to make
use of these services in their applications.
8
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 1
SOFTWARE TRAINING
The Android framework includes the following key services −
•
•
•
•
•
Activity Manager − Controls all aspects of the application lifecycle and activity stack.
Content Providers − Allows applications to publish and share data with other
applications.
Resource Manager − Provides access to non-code embedded resources such as strings,
colour settings and user interface layouts.
Notifications Manager − Allows applications to display alerts and notifications to the
user.
View System − An extensible set of views used to create application user interfaces.
Applications: You will find all the Android application at the top layer. You will write your
application to be installed on this layer only. Examples of such applications are Contacts Books,
Browser, Games etc.
Fig 1.2.4 Android Architecture
Android Activity: An activity represents a single screen with a user interface just like window
or frame of Java. Android activity is the subclass of ContextThemeWrapper class.
If you have worked with C, C++ or Java programming language then you must have seen that
your program starts from main() function. Very similar way, Android system initiates its
program with in an Activity starting with a call on onCreate() callback method. There is a
sequence of callback methods that start up an activity and a sequence of callback methods that
tear down an activity as shown in the below Activity life cycle diagram:
9
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 1
•
•
•
•
•
•
•
SOFTWARE TRAINING
onCreate(): This is the first callback and called when the activity is first created.
onStart(): This callback is called when the activity becomes visible to the user.
onResume(): This is called when the user starts interacting with the application.
onPause(): The paused activity does not receive user input and cannot execute any code
and called when the current activity is being paused and the previous activity is being
resumed.
onStop(): This callback is called when the activity is no longer visible.
onDestroy(): This callback is called before the activity is destroyed by the system.
onRestart(): This callback is called when the activity restarts after stopping it.
Fig 1.2.5 Android Activity Architecture
Android Core Building Blocks
An android component is simply a piece of code that has a well-defined life cycle e.g. Activity,
Receiver, Service etc.
10
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 1
SOFTWARE TRAINING
The core building blocks or fundamental components of android are activities, views, intents,
services, content providers, fragments and AndroidManifest.xml.
Activity
An activity is a class that represents a single screen. It is like a Frame in AWT.
View
A view is the UI element such as button, label, text field etc. Anything that you see is a view.
Intent: Intent is used to invoke components. It is mainly used to:
• Start the service
• Launch an activity
• Display a web page
• Display a list of contacts
• Broadcast a message
• Dial a phone call etc.
Fig 1.2.6 Android Core Building Blocks
Service
Service is a background process that can run for a long time.
There are two types of services local and remote. Local service is accessed from within the
application whereas remote service is accessed remotely from other applications running on the
same device.
Content Provider
Content Providers are used to share data between the applications.
11
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 1
SOFTWARE TRAINING
Fragment
Fragments are like parts of activity. An activity can display one or more fragments on the screen
at the same time.
AndroidManifest.xml
It contains information about activities, content providers, permissions etc. It is like the web.xml
file in Java EE.
Android Virtual Device (AVD)
It is used to test the android application without the need for mobile or tablet etc. It can be created
in different configurations to emulate different types of real devices.
Android Emulator
Android Emulator is used to run, debug and test the android application. If you don't have the
real device, it can be the best way to run, debug and test the application.
It uses an open source processor emulator technology called QEMU.
The emulator tool enables you to start the emulator from the command line. You need to write:
emulator -avd <AVD NAME>
In case of Eclipse IDE, you can create AVD by Window menu > AVD Manager > New.
In the given image, you can see the android emulator, it displays the output of the hello android
example.
Fig 1.2.7 Android Emulator
Dalvik Virtual Machine | DVM
As we know the modern JVM is high performance and provides excellent memory management.
But it needs to be optimized for low-powered handheld devices as well.
12
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 1
SOFTWARE TRAINING
The Dalvik Virtual Machine (DVM) is an android virtual machine optimized for mobile
devices. It optimizes the virtual machine for memory, battery life and performance. Dalvik is a
name of a town in Iceland. The Dalvik VM was written by Dan Bornstein. The Dex compiler
converts the class files into the .dex file that run on the Dalvik VM. Multiple class files are
converted into one dex file.
Fig 1.2.8 Compiling and packaging process
The javac tool compiles the java source file into the class file. The dx tool takes all the class
files of your application and generates a single .dex file. It is a platform-specific tool.
The Android Assets Packaging Tool (aapt) handles the packaging process.
AndroidManifest.xml file in android
The AndroidManifest.xml file contains information of your package, including components of
the application such as activities, services, broadcast receivers, content providers etc.
It performs some other tasks also:
•
•
•
It is responsible to protect the application to access any protected parts by providing
the permissions.
It also declares the android api that the application is going to use.
It lists the instrumentation classes. The instrumentation classes provide profiling and
other informations. These informations are removed just before the application is
published etc.
This is the required xml file for all the android application and located inside the root directory.
Elements of the AndroidManifest.xml file
<manifest>
manifest is the root element of the AndroidManifest.xml file. It has package attribute that
describes the package name of the activity class.
13
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 1
SOFTWARE TRAINING
<application>
application is the subelement of the manifest. It includes the namespace declaration. This
element contains several subelements that declares the application component such as activity
etc.
The commonly used attributes are of this element are icon, label, theme etc.
android:icon represents the icon for all the android application components.
android:label works as the default label for all the application components.
android:theme represents a common theme for all the android activities.
<activity>
activity is the subelement of application and represents an activity that must be defined in the
AndroidManifest.xml file. It has many attributes such as label, name, theme, launchMode etc.
android:label represents a label i.e. displayed on the screen.
android:name represents a name for the activity class. It is required attribute.
<intent-filter>
intent-filter is the sub-element of activity that describes the type of intent to which activity,
service or broadcast receiver can respond to.
<action>
It adds an action for the intent-filter. The intent-filter must have at least one action element.
<category>
It adds a category name to an intent-filter.
14
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 2
INDUSTRIAL TRAINING PROJECT
CHAPTER-2
INDUSTRIAL TRAINING PROJECT
2.1 Project Introduction
Nowadays, mobile devices have become a way of life for students especially in higher education.
Computers are now replaced by compact smart phones that can fit into pocket and can be carried
anywhere. Attendopedia is an application for taking daily attendance in schools and colleges. It
provides minimal error in report generation of a particular student’s attendance. The main motive
behind this software is to replace the traditional pen and register system. Another reason for
developing this software is to generate the report automatically at the end of the session or in the
between of the session. Smart phones are based on operating systems like blackberry, IOS and
Android. To design this project, smart phones with Android operating system are chosen because
penetration rate of Android OS is 70 percent. It is an open source and free ware operating system.
The application is compatible with all Android versions starting from 5.0 Lollipop.
Attendopedia has been built to eliminate the time and effort wasted in taking attendances in
schools and colleges. It also greatly reduces the amount of paper resources needed in attendance
data management. This is an android mobile app. It’s built to be used for school/college faculty
so that they may take student attendance on their phones. This system has a single entity namely,
Teacher. Teacher can login using credentials. They can view the assigned classes. Teacher need
to select class and course for taking attendance. After selecting class name teacher will get two
sub category show attendance and take attendance. Attendance of students based on dates will
be listed in show attendance, and in take attendance teacher will let the list of students where
she/he has to mark and submit the attendance.
The system is divided into following modules:
Add Class and Course Assigned: Once this App is installed on your phone, it allows user to
add class and courses assigned to them so that when they are going to take attendance that can
choose class whose attendance they are going to take.
Student Attendance List Creation: After adding classes it allows user to create a student
attendance sheet consisting of name, roll number, phone number from navigation bar.
Attendance Marking: The faculty has the list on their phone now. He/she may see the list call
roll numbers and select absent id the student is absent or select present if student is present.
Drawbacks of the Existing System:
•
•
•
•
•
Manual maintenance of data
Searching for any correspondence is difficult.
Lack of SMS facility
No attendance percentage calculation
Portability
Objective of the Study
•
To design and develop the android based mobile based attendance maintenance system.
15
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 2
•
INDUSTRIAL TRAINING PROJECT
To implement the development system.
Feasibility Study
This system is feasible because of the following reasons:
➢
Economically Feasibility: This software is economic from school or colleges point of
view. It is cost effective as use of paper has been eliminated. It is time effective since
evaluation of attendance and report generation is done in less amount of time with
minimal errors.
➢ Technical feasibility: This software is technically feasible since there are no extra
hardware requirements. The only requirement is an android smartphone with minimum
version 5.0 jelly Lollipop.
➢ Behavioural Feasibility: This software is very simple to use. The user doesn’t need any
special training to use this software. The software has been designed keeping the user’s
point of view.
Characteristics of the Proposed System
In this proposed Android based attendance system, it is designed in such a way that it is less time
consuming, safe and easy to implement because:
➢ User Friendly: - This software is user friendly as it is simple to use and the user doesn’t
need any special training to use this software. Data evaluation, data storing and retrieval
is easy and doesn’t need any heavy calculation or method. The UI is simple and easy to
understand.
➢ Easy and Fast report generation: Reports are generated automatically fast in an easy
way after each month for the teacher to keep a track on the student’s attendance record
and notify the students with minimum attendance to attend classes.
➢ Minimal paper work: There is no paper work required. Data are stored automatically in
the system. Evaluation are done automatically. Hence it is cost effective too.
➢ Time Saving: Data storing, data retrieval, data evaluation is done at minimum time hence
it is time saving producing data with minimal errors.
Project Lifecycle
The iterative waterfall model and incremental development model are being used to develop the
project. In which progress is seen as flowing steadily downwards (like a waterfall) through the
phases of software implementation. This means that any phase in the development process begins
only if the previous phase is complete. And after completing implementation we can deploy
application even before testing for customer review and feedback. In the iterative waterfall
approach does the process can go back to the previous phase to handle changes in requirement.
The waterfall approach is the earliest approach that was used for software development.
16
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 2
INDUSTRIAL TRAINING PROJECT
Fig 2.1.1 Iterative and Incremental development
Methodology Used
Our project Attendopedia is based on some concepts and methodologies that we devised during
our initial study and visualization of the project. We have planned our project keeping in mind
the Object-Oriented Concepts that can be applied to the project. The project is strongly supported
at the back end by Java-the most popular and successful object oriented programming language.
The front end is developed using Extensible Mark-up Language (XML). For the database
connectivity we are using SQLite database. It is a light weight database which is pre-installed
with every android device and is capable of handling and managing various queries, cursors and
more.
The initial idea was to improve the attendance system which is being in use for the past decades.
The idea was to develop an application which would be portable enough so as to carry it to the
classrooms as an attendance register. This stuck us with an idea of developing an android
application which can be easily installed in an Android enabled cell-phone and be used
seamlessly by a teacher while taking the roll calls.
In this process we designed a database for the application. It contains various tables like addclass,
addsubject, addstudent and attendance for various purposes. These tables hold data for particular
purposes which shall be dealt later.
The flow includes the addition of subjects and classes by the teacher and then adding the students
to the respective classes. When class and subject become ready then they are visible in the
selection area for giving attendance. The attendance can be checked periodically, month wise or
as desired by the teacher. The final attendance can then be used for various purposes.
2.2 System Analysis & Design
17
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 2
INDUSTRIAL TRAINING PROJECT
2.2.1 Requirement Specification
➢ Hardware Requirement:
•
Laptop or PC
i3 Processor Based Computer or higher
8 GB RAM
1 TB Hard Disk
•
Android Phone or Tablet
1.2 Quad core Processor or higher
1 GB RAM
➢ Software Requirement:
•
Laptop or PC
Windows 7 or higher.
JDK (Java Development Kit)
Android Studio
•
Android Phone or Tablet
Android v5.0 or Higher
2.2.2 DFD/Flowcharts
DFD
•
DFD Level- 0
Fig 2.2.2.1 Data Flow Diagram Level-0
18
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 2
•
INDUSTRIAL TRAINING PROJECT
DFD Level- 1
Fig 2.2.2.2 Data Flow Diagram Level-1
Flowchart
Fig 2.2.2.3 Flowchart of the Project
19
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 2
INDUSTRIAL TRAINING PROJECT
2.2.3 Database Tables
The database used in this project is a SQLite database named “College Attendance”. It contains
the following tables according to the schema:
➢ addclass(for the teacher to add class to whom he/she teaches)
o class_name
Sr no.
Class_name
Number
Varchar
Table 2.2.3.1 Class Table
➢ addsubject(for the teacher to store subjects which he/she teaches)
o subjectid
o subject_name
Subjectid.
Subject_name
Number
Varchar
Table 2.2.3.2 Subject Table
➢ students(table for storing the student details in the following order- studentid, class,
name, roll, phone number)
o studentid
o select_class
o student_name
o roll_no
o ph_number
Studentid
Select_class
Student_name
Roll_no
Ph_number
number
Varchar
Text
Varchar
Number
Table 2.2.3.3 Student Table
➢ attendance( table for storing studentid, date, class, subject, present)
o studentid
o date
o class
o subject
o present
Studentid
Date
Class
Subject
Present
number
Number
Varchar
Varchar
Boolean
Table 2.2.3.4 Attendance Table
20
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 3
CONCLUSION
CHAPTER-3
CONCLUSION
The Attendopedia project is developed by using Android studio to fully meet the objective of
college attendance management system. Marking attendance through this system is quite easy.
In this project I add all the features like add class, add subject, add student. I performed all the
function according to school and colleges system. Proper design implementation of this project
is done.
Generating attendance report and saving application data on any external device feature of this
project is pending and I will complete the project with these features on project submission day.
Finally, I want to conclude that this project is very helpful and this application is basically used
to access the details about the student attendance and generate reports. This project offers user to
enter data through simple and attractive UI.
21
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
lOMoARcPSD|23936599
CHAPTER 4
REFERENCES
CHAPTER-4
REFERENCES
➢
➢
➢
➢
➢
➢
➢
➢
➢
➢
➢
Web Resource: http://www.stackoverflow.com
Web Resource: http://developer.android.com/index.html
Web Resource: https://www.ripublication.com/ijcir17/ijcirv13n3_08.pdf
Android API: http://developer.android.com/reference/packages.html
Web Resource: https://ijarcce.com/upload/2018/january-18/IJARCCE%2032.pdf
Abdullah, Hamsa A., Israa A. Mohson, and Ether S. Mohamad Ali. "Student Attendance
Management System." i-Manager's Journal on Information Technology 4, no. 2 (2015):
7.
Shoewu, O, O.M. Olaniyi, and A. Lawson. 2011. “Embedded Computer-Based Lecture
Attendance Management System”. African Journal of Computing and ICT (Journal of
IEEE Nigeria Computer Section). 4(3):27 – 36.
Kadry, S. and M. Smaili. 2010. “Wireless Attendance Management System Based on
Iris Recognition”.
Cheng, K., L. Xiang, T. Hirota, and K. Ushijimaa. 2005. “Effective Teaching for Large
Classes with Rental PCs by Web System WTS”. Pro. Data Engineering Workshop
(DEWS2005), 1D – d3 (in Japanese).
Chikkerur, S.S. 2005. “Online Fingerprint Verification System”. M.Sc. Thesis. SUNY:
Buffalo, NY.
Saraswat, C. et al. 2010. “An Efficient Automatic Attendance System using Fingerprint
Verification Technique”. International Journal on Computer Science and Engineering.
2(02):264-269.
22
Downloaded by Unnati Singh (salonisinghappu@gmail.com)
Download