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)