Project Report
Project Report
NO CONTENTS
1 INTRODUCTION
1.1 ABOUT THE PROJECT
2 SYSTEM STUDY
2.1 EXISTING SYSTEM
2.2 DISADVANTAGE EXISTING SYSTEM
2.3 PROPOSED SYSTEM
2.4 ADVANTAGE OF PROPOSED SYSTEM
2.5 PROBLEM DEFINITION AND DESCRIPTION
3 SYSTEM ANALYSIS
3.1 PACKAGE SELECTED
3.2 RESOURCE REQUIRED
3.3 FESIBILITY STUDY
3.4 DATAFLOW DIAGRAM
4 SYSTEM DESIGN
4.1 ARCHITECTURAL DESIGN
4.2 INPUT/OUTPUT FORM DESIGN
4.3 TABLES
4.4 NORMALIZATION
4.5 E-R DIAGRAM
5 SYSTEM DEVELOPMENT
5.1 FUNCTIONAL DOCUMENTATION
6 TESTING
6.1 TYPE OF TESTING
6.2 TEST DATA & OUTPUT
7 USER MANUAL
7.1 HARWARE REQUIREMENT
7.2 SOFTWARE REQUIREMENT
8 CONCLUSION
8.1 SUMMARY OF THE PROJECT
8.2 FUTURE POSSIBILITIES
BIBLIOGRAPHY
APPENDIX
> SAMPLE CODE
> SAMPLE OUPUT
1. INTRODUCTION
1. High burden,
2. Losing of data problem can be occurred easily.
Our system is a user-friendly, flexible and full featured android attendance management
tool, which allows controlling student attendance by automatically timekeeping and attendance
tracking. Android attendance management system primarily focuses on building an efficient and user-
friendly Android mobile application for an Attendance Monitoring using the Advanced database
called Google’s firebase database. The application will be installed on the professor’s phone as well
as student’s phone which runs android OS. It intends to provide an interface to the professor who will
require minimal details to input for marking of attendance of a particular class of students. Apart from
that, the application would support strong user authentication and quick transmission of data.
• Security of data.
• Greater efficiency.
• Better service.
Hardware Specification
RAM : 4 GB
MONITOR : LCD COLOR
HARD DISK : 40 GB
KEYBOARD : Multimedia Keyboard
MOUSE : Optical Buttons
Software Specification
Feasibility study is made to see if the project on completion will serve the purpose of
the organization for the amount of work, effort and the time that spend on it. Feasibility study lets the
developer foresee the future of the project and the usefulness. A feasibility study of a system proposal
is according to its workability, which is the impact on the organization, ability to meet their user needs
and effective use of resources. Thus, when a new application is proposed it normally goes through a
feasibility study before it is approved for development.
The document provides the feasibility of the project that is being designed and lists
various areas that were considered very carefully during the feasibility study of this project such as
Technical, Economic and Operational feasibilities. The following are its features:
TECHNICAL FEASIBILITY
The system must be evaluated from the technical point of view first. The assessment
of this feasibility must be based on an outline design of the system requirement in the terms of input,
output, programs and procedures. Having identified an outline system, the investigation must go on to
suggest the type of equipment, required method developing the system, of running the system once it
has been designed.
The project should be developed such that the necessary functions and performance
are achieved within the constraints. The project is developed within latest technology. Through the
technology may become obsolete after some period of time, due to the fact that never version of same
software supports older versions, the system may still be used. So, there are minimal constraints
involved with this project. The system has been developed using Java the project is technically feasible
for development.
ECONOMIC FEASIBILITY
The developing system must be justified by cost and benefit. Criteria to ensure
that effort is concentrated on project, which will give best, return at the earliest. One of the factors,
which affect the development of a new system, is the cost it would require.
The following are some of the important financial questions asked during preliminary
investigation:
BEHAVIORAL FEASIBILITY
The project would be beneficial because it satisfies the objectives when developed and
installed. All behavioural aspects are considered carefully and conclude that the project is
behaviourally feasible.
Data Flow Diagram (DFD) is one of the best ways if documenting the entire functionality of
the system. For any system, which will have some data inflows, processing and data outflows from
the system can be documented or represented effectively by the means of the data flow diagram. It is
a diagrammatic representation of the system.
LEVEL 0 DFD
Admin Details Admin
Login
details
Login Student Details
Student
Login process
LEVEL 1 DFD
Add Details
Staff details
Administrator Staff
Login Staff
Add login
details
verify
validate
Login Login
4.DESIGN
4.1 ARCHITECTURAL DESIGN
4.2 INPUT AND OUTPUT FORM DESIGN
ADMIN LOGIN
Admin login helps to enter into the admin area where the admin can add/remove staff and
students details.
STAFF LOGIN
Through the staff login the staff can take attendance for various classes and students. They
can also view the report of the students attendance reports.
STUDENT LOGIN
Students can view their attendance report details according to the date, class and period.
This is the admin home page where the admin can add/remove staff and students, generate
databases for everyday and can change the password for him.
4.3 TABLES
Table Design
Table: Admin, Staff, Student Login
Primary: Username
Field Name Data Type Constrains Description
Username Varchar(20) Not Null Primary Key
Password Varchar(20) Not Null
Table: Attendance
Primary: Staff id
Field name Data Type Constrains Description
Staff ID Varchar (20) Not Null
Class NVarchar (50) Not Null
Period No NVarchar (50) Not Null
4.4 NORMALIZATION
NORMALIZED FORM
STAFF ID STAFF NAME CLASS NAME SUBJECT
Add Student
admin staff Add Teacher View/edit Attendance
Add Staff
Logout
Login Admin Home
Student
Student Home
Staff home
Logout
Logout
View Report
Take Attendance View Report
5. SYSTEM DEVELOPMENT
Admin
Login
Staff Details
Student Details
Staff
Login
Attendance Details
Class Details
Student
Login
Attendance Details
Module Description
Admin
Login
The login module is used for maintain security part of the project using userid
And password. Admin has unique username and password.
Staff Details
This module helps to store the staff details such as staff id, staff name, class
names which are taking by the staff.
Student Details
Student module helps to store the staff details such as student id, student name,
class names which are taking by the staff.
Class Details
In this module the classes details are stored according to the students
departments.
Staff
Login
The login module is used for maintain security part of the project using userid
And password. Admin has unique username and password.
Attendance Details
This module is used for maintain students attendance details by class vice and
period vice.
Class Details
In this module the classes details are stored according to the staffs who are
taking classes.
Student
Login
The login module is used for maintain security part of the students using
student id and password.
Attendance Details
This module is used for students to view their attendance reports by date and
period vice.
Front End
XML is the abbreviation for Extensible Markup Language and is an established data exchange
format. An XML document consists of elements, each element has a start tag, content and an end
tag. An XML document must have exactly one root element (i.e., one tag which encloses the
remaining tags). XML differentiates between capital and non-capital letters.
An XML file must be well-formed. This means that it must apply to the following conditions:
▪ An XML document always starts with a prolog (see below for an explanation of what a
prolog is)
▪ Every opening tag has a closing tag.
▪ All tags are completely nested.
An valid XML file is well-formed and must contain a link to an XML schema and be valid
according to that schema.
XML ELEMENTS
An XML document always starts with a prolog which describes the XML file. This prolog
can be minimal, e.g. <?xml version="1.0"?>. It can also contain other information, e.g. the encoding
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>.
A tag which does not enclose any content is know as an "empty tag", for example <flag/>.
JAVA
The Java programming language contains several methods for processing and writing XML.
Older Java versions supported only the DOM API (Document Object Model) and the SAX (Simple
API for XML) API.
In DOM you access the XML document over an object tree. DOM can be used to read and write XML
files.
SAX (Simple API for XML) is a Java API for sequential reading of XML files. SAX can only read
XML documents. SAX provides an event driven XML Processing following the Push-Parsing model.
In this model you register listeners in the form of Handlers to the Parser. These are notified through
call-back methods.
Both DOM and Sax are older APIs and I recommend not using them anymore.
Stax (Streaming API for XML) is an API for reading and writing XML Documents. It was introduced
in Java 6.0 and is considered superior to SAX and DOM.
Java Architecture for XML Binding (JAXB) is a Java standard that allows to convert Java objects to
XML and vice versa. JAXB defines a programmer API for reading and writing Java objects to from
XML documents. It also defines a service provider which allows the selection of the JAXB
implementation. JAXB applies a lot of defaults thus making reading and writing of XML via Java
very easy.
The following explains the Stax interface; for an introduction to JAXB, please see JAXB tutorial.
If you are familiar with Linux and concept of process, then it's easy to understand how android
applications runs. By default, Each Android application is assigned a unique user id by the Android
operating system. After starting an android application, they run in their own process, inside their
own virtual machine.
Android operating system manages the starting and shutting down the application process, whenever
required. This means each android application runs in isolation with other, but they can certainly
request access to hardware and other system resources. If you are familiar with mobile application
development, may be in J2ME, then you may know about permissions. So when an android
application is installed or started, it requests necessary permission required to connect the internet,
phone book and other system resources. The user explicitly provides grant these permissions, or it
may deny.
All these permissions are defined in the manifest file of Android application. Unlike Java Manifest
file, Android manifest is an XML file, which lists all the components of apps, and settings for those
components.
Similar to Java, a good thing about Android is that it manages certain task on behalf of the developer,
one of them is creating activity object. Activities are managed by System, when you want to start an
activity, you call startActivity() method which takes an Intent object. In response to this call, System
can either create new activity object or reuse an existing one.
Just like Garbage collection in Java, manages a critical task or reclaiming memory, Android manages
the starting, stopping, creating and destroying of apps by themselves. You may think it's restrictive,
but it's not. Android provides life-cycle events, which you can override to interact with this process.
BACKEND
Firebase – NoSql Database
Store and sync data with our NoSQL cloud database. Data is synced across all clients in
realtime, and remains available when your app goes offline.
The Firebase Realtime Database is a cloud-hosted database. Data is stored as JSON and synchronized
in realtime to every connected client. When you build cross-platform apps with our iOS, Android,
and JavaScript SDKs, all of your clients share one Realtime Database instance and automatically
receive updates with the newest data.
Key Capabilities
Realtime - Instead of typical HTTP requests, the Firebase Realtime Database uses data
synchronization—every time data changes, any connected device receives that update within
milliseconds. Provide collaborative and immersive experiences without thinking about networking
code.
Offline - Firebase apps remain responsive even when offline because the Firebase Realtime
Database SDK persists your data to disk. Once connectivity is reestablished, the client device receives
any changes it missed, synchronizing it with the current server state.
Accessible from Client Devices - The Firebase Realtime Database can be accessed directly
from a mobile device or web browser; there’s no need for an application server. Security and data
validation are available through the Firebase Realtime Database Security Rules, expression-based
rules that are executed when data is read or written.
Scale across multiple databases - With Firebase Realtime Database on the Blaze pricing
plan, you can support your app's data needs at scale by splitting your data across multiple database
instances in the same Firebase project. Streamline authentication with Firebase Authentication on
your project and authenticate users across your database instances. Control access to the data in each
database with custom Firebase Realtime Database Rules for each database instance.
The Realtime Database provides a flexible, expression-based rules language, called Firebase
Realtime Database Security Rules, to define how your data should be structured and when data can
be read from or written to. When integrated with Firebase Authentication, developers can define who
has access to what data, and how they can access it.
The Realtime Database is a NoSQL database and as such has different optimizations and functionality
compared to a relational database. The Realtime Database API is designed to only allow operations
that can be executed quickly. This enables you to build a great realtime experience that can serve
millions of users without compromising on responsiveness. Because of this, it is important to think
about how users need to access your data and then structure it accordingly.
6.Testing
6.1. Types of Testing Done:
UNIT TESTING:
The first test in the development process is the unit test. The source code is normally divided
into modules, which in turn are divided into smaller units called units. These units have specific
behaviour. The test done on these units of code is called unit test. Unit test depends upon the language
on which the project is developed. Unit tests ensure that each unique path of the project performs
accurately to the documented specifications and contains clearly defined inputs and expected results.
Functional and reliability testing in an Engineering environment. Producing tests for the behaviour of
components (nodes and vertices) of a product to ensure their correct behaviour prior to system
integration.
SYSTEM TESTING:
Several modules constitute a project. If the project is long-term project, several developers
write the modules. Once all the modules are integrated, several errors may arise. The testing done at
this stage is called system test. System testing ensures that the entire integrated software system
meets requirements. It tests a configuration to ensure known and predictable results. System testing
is based on process descriptions and flows, emphasizing pre-driven process links and integration
points.
FUNCTIONAL TESTING:
Functional test can be defined as testing two or more modules together with the intent of
finding defects, demonstrating that defects are not present, verifying that the module performs its
intended functions as stated in the specification and establishing confidence that a program does what
it is supposed to do.
INTEGRATION TESTING:
Testing in which modules are combined and tested as a group. Modules are typically code
modules, individual applications, source and destination applications on a network, etc. Integration
Testing follows unit testing and precedes system testing. Testing after the product is code complete.
Betas are often widely distributed or even distributed to the public at large in hopes that they will buy
the final product when it is released.
WHITE BOX TESTING:
Testing based on an analysis of internal workings and structure of a piece of software. This
testing can be done sing the percentage value of load and energy. The tester should know what exactly
is done in the internal program. Includes techniques such as Branch Testing and Path Testing. Also
known as Structural Testing and Glass Box Testing.
Monitor : VGA/SVGA
Website Reference
1. www.android.com
2. firebase.google.com
3. www.androidhive.info