CANDIDATE’S DECLARATION
I hereby declare that the work which is being presented in this project work entitled
“INVENTORY MANAGEMENT SYSTEM” in partial fulfillment of the requirements for the
award of the degree of Bachelor Of Technology in Computer Science at
CT Institute Of Engineering Management And Technology is an authentic record of my own
work carried out during the period, Jan – May 2013 under the supervision and guidance of
internal guide. I have not submitted the matter embodied in this project work anywhere for the
award of any degree or diploma.
SONAM KUMARI
Inventory Management System
ACKNOWLEDGEMENT
It is my proud privilege to express my profound gratitude to the entire management of
CTIEMT and teachers of the institute for providing me with the opportunity to avail the
excellent facilities and infrastructure. The knowledge and values inculcated have proved to be
of immense help at the very start of my career. Special thanks to Hon’ble Founder, CT Institute
Of Engineering Management And Technology for having provided us an excellent
infrastructure at CTIEMT.
Thankful to the teaching and non teaching staff of CTIEMT who provided their full support in
completion of my work.
I would like to thank HCL Infosystems for providing me with an opportunity to pursue my
industrial training, as it is an important part of the B.Tech course and it is the one that exposes
you to the industry standards and makes you adapt yourself to the latest trends and
technologies. At the same time, it gives an experience of working on a project.
I feel pride and privileged in expressing my deep sense of gratitude to all those who have
helped me in presenting this assignment. I would be failing in my endeavor if I do not place my
acknowledgement.
SONAM KUMARI
HCL Infosystem Ltd. Page 2
Inventory Management System
ABSTRACT
A well planned, systematically executed industrial training helps a great deal in inculcating a
good work culture. It provides a linkage between students and the industry in order to develop
awareness of the industrial approach to problem solving based on broad understanding of
operations of the industrial organizations.
This project entitled “INVENTORY MANAGEMENT SYSTEM” has been designed towards
improving the Management of routine work in An enterprise by automating the usual working
process which includes registration of employees and maintaining a record of the devices used.
The project has been an enriching experience for me in the field of programming and
Enterprise Application development and integration.
The tools and technologies used for developing the software are Eclipse and database creation
and maintenance .
HCL Infosystem Ltd. Page 3
Inventory Management System
INDEX
S. No CONTENTS Page No
1 INTRODUCTION OF THE COMPANY 5-8
2 OVERVIEW OF THE PROJECT UNDERTAKEN 9-11
3 CHAPTER-01 (MODULES OF THE PROJECT) 12-15
4 CHAPTER-02 (SYSTEM ENVIRONMENT) 16-17
5 CHAPTER-03 (SYSTEM ANALYSIS) 18-20
6 CHAPTER-04 (SYSTEM DESIGN) 21-35
7 CHAPTER-05 (CODING) 36-75
8 CHAPTER-06 (TESTING) 76-77
9 CHAPTER-07 (IMPLEMENTATION) 78-82
10 CONCLUSION 83-84
11 BIBLIOGRAPHY 85
HCL Infosystem Ltd. Page 4
Inventory Management System
INTRODUCTION OF THE COMPANY
Overview
HCL Infosystems (HCLI) is one of the leading ICT system integrator and distribution company. It originated in 1976, It developed the first indigenous micro-computer at the same time as Apple and 3 years before IBM's PC – in 1978. This micro-computer virtually gave birth to the Indian computer industry. HCL's in-depth knowledge of Unix led to the development of a fine grained multi-processor Unix in 1988, three years ahead of Sun and HP.
Today, HCL sells more PCs in India than any other brand, runs Northern Ireland's largest BPO operation, and manages the network for Asia's largest stock exchange network apart from designing zero visibility landing systems to land the world's most popular airplane. And this it does across 23 countries and across 360 service locations in India.
HCLI has wide range of products and services such as IT products, solutions and related services, which include PCs, servers, imaging, voice and video solutions, networking products, TV and FM broadcasting solutions, communication solutions, system integration, ICT education and training, digital lifestyle solutions and peripherals.
The company has strategic alliance with leading companies like Intel, AMD, Microsoft, Bull, Toshiba, Nokia, Sun Microsystems, Ericsson, NVIDIA, SAP, Scansoft, SCO, EMC, Veritas, Citrix, CISCO, Oracle, Computer Associates, RedHat, Infocus, Duplo, Samsung and Novell.
It has four hardware manufacturing facilities -- two in Pondicherry, one in Chennai and one in Uttaranchal.
Products
HCL Infosystems portfolio of products covers the entire spectrum of the information technology needs of its customers. By virtue of the immense diversity of markets and customers that it address, HCL Infosystems products offerings include everything from high end enterprise level servers for mission critical applications to multimedia home computers.
Computing products -HCLI manufactures wide range of computer such as home PCs, notebooks, business PCs, business workstations and servers.
Storage solutions - The company manufactures wide range of storage solutions such as standalone drivers, HBA cards, EMC storage solutions etc catering wide range of consumers.
HCL Infosystem Ltd. Page 5
Inventory Management System
Office Imaging and telecom solutions - It has partnered with the best in the industry like Toshiba, Infocus, Duplo, etc to provide imaging solutions like projectors, plasma, visual presenter and interactive presentation systems. It has partnered with major players for providing voice, videoconferencing, audio conferencing and broadcast solutions according to the business needs.
The company develops POS, kiosk and customer service counter products. HCLI offers a complete range of digital lifestyle products and solutions through its various distribution channels and vast warehousing and logistics operations.
Recognition
The company’s manufacturing facilities have received various certifications such as ISO 9001:2000 and ISO 14001, ISO 13485:2003, TS 16949-2002 TUV.
It was awarded MAIT Level 2 - by European Foundation for Quality Management in the year 2001.
Vision
A global corporation enriching lives and enabling business transformation for our customers, with leadership in chosen technologies and markets. Be the first choice for employees and partners, with commitment to sustainability.
Mission
We enable business transformation and enrichment of lives by delivering sustainable world class technology products, solutions and services in our chosen markets thereby creating superior shareholder value.
Core Values
We shall uphold the dignity of every individual We shall honour all commitments We shall be responsible corporate citizens We shall be committed to Quality, Innovation and Growth in every endeavour
Relationships
Irrespective of the size of your business, partnering with us will help you succeed. Leveraging over three decades of experience in total technology solutions, it’s our commitment to help you touch newer heights of success.
We provide you access to HCL’s innovative technologies, marketing strategies and value added services. By working on every aspect of the ICT industry, we have the experience to create world class products and services to help you give the best to your customers.
HCL Infosystem Ltd. Page 6
Inventory Management System
Labs
India’s uniqueness to demand is being fulfilled by us, by nurturing innovation in offerings and processes for our customer’s strategic growth. We are creating for India from India, with a mission in mind - to offer value to customer that satisfies his unmet, unrealized or an unknown need to get him a competitive edge.
Advantage HCL
HCL's labs - Pioneers in design, development and building ICT products India's largest Hardware, System Integration, Networking Solutions & Distribution Company 3 decades of expertise in technology solutions Partners with leading global players to provide the best of solutions to end users The largest manufacturer of PCs and Laptops in India Largest direct sales, digital lifestyle product distribution and retail network Extensive service network that reach out to 4,000 towns
Benefits of a Proven Commitment from HCL Infosystems
At HCL Infosystems, partnerships are lifelong relationships that are mutually beneficial for all. We can help you enhance your business and reap the rewards of the mutual success. We offer differentiated technology and dedicated service support infrastructure as per the needs and requirements of your customers. We provide technology specializations that map to areas of significant business growth for your business and your customers.
Reliable IT Backbone
In a world where the right technology infrastructure is a prerequisite, we offer a reliable IT backbone to our partners. We provide a one-stop-shop for meeting end-to-end IT requirements, thus offering a smooth ICT management. Additionally, we offer industry leading technology, designed to deliver a price to performance advantage to help you provide increased benefits to your customers. Our high-quality products and services give you means to work in a smarter way and be more productive and competitive.
Differentiated Product Access
At HCL, we understand that different customers have different needs. We have constantly innovated to offer a range of products to cater to different requirements of the customers. We have pioneered the home PC market of India - we designed India’s first multimedia-enabled Beanstalk Media Centre PC for home users; we have developed Ezeebee and Busybee PCs and ME Laptops for personal productivity. We bring this exciting range of Desktops and Laptops through our vast network of neighbourhood partner outlets for buying convenience of the customers. Further these products are backed by HCL’s 24x7 Consumer Support Helpline. Enterprises have unique needs for their computing platforms and HCL’s range of business Desktops and Laptops come with unique features that enhance productivity while reducing TCO. For our Enterprise and SMB customers who buy directly from us, or through Enterprise HCL Infosystem Ltd. Page 7
Inventory Management System
Rate Contracts or through our vast network of Strategic Business Partners we offer customized built to order range of ME Business Laptops and Infiniti Desktops. HCL's manufacturing facilities are ISO 9001 - 2000 & ISO 14001 certified and adhere to stringent quality standards and global processes. HCL Desktops and Laptops are manufactured and marketed specially to withstand unique Indian terrain and conditions. HCL commits to manufacture “Green” PCs and Laptops that are RoHS compliant and adhere to stringent environment management standards. As market leaders in ICT arena we offer our partners the best of options.
Unparallel Support
When the situation calls for it, we can help you with our dedicated 24x7 HCL Touch service network. You can benefit from services offered through our offices in 170 cities, 505 points of presence, reaching 4,000 towns. Pre- and post-sales support from HCL specialists makes identifying the best solution for each sales opportunity even more predictable. This allows for our shared quest for excellence and commitment to serve customers better.
Extensive Marketing Support
HCL has closely seen the IT industry rise and has actively participated in its progress. We have picked up valuable marketing lessons in serving the IT needs of the Indian customers. We can help you to focus on some of the most critical marketing needs facing your business. Additionally, we can provide you a set of proven sales and marketing tools designed to help you generate new leads, increased demands for products and services and help you reach your business goals.
Structured for Ease and Value
Each element of HCL business partnership solutions are designed to reduce the costs of deployment, support and management. So whether it’s for you or your customers, we provide complete ICT solutions - all at a great value.
HCL Infosystem Ltd. Page 8
Inventory Management System
OVERVIEW OF THE PROJECT UNDERTAKEN
Project Name: INVENTORY MANAGEMENT
Introduction
The project deals with the development of an android application which implements the inventory management in the company. This project is specifically developed for the management of android devices (tablets) used by the employees working in the company. Our purpose is to keep record of all used and available devices based on QR code implementation. The technology being used to develop the application is Android.
Android Technology
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Android is a software platform and operating system for mobile devices based on the Linux operating system and developed by Google and the Open Handset Alliance. It allows developers to write managed code in a Java-like language that utilizes Google-developed Java libraries, but does not support programs developed in native code.
The unveiling of the Android platform on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 34 hardware, software and telecom companies devoted to advancing open standards for mobile devices. When released in 2008, most of the Android platform will be made available under the Apache free-software and open-source license.
Features in Android
Application Framework
It is used to write applications for Android. Unlike other embedded mobile environments, Android applications are all equal, for instance, an applications which come with the phone are no different than those that any developer writes. The framework is supported by numerous open source libraries such as openssl, SQLite and libc. It is also supported by the Android core libraries. From the point of security, the framework is based on UNIX file system permissions that assure applications have only those abilities that mobile phone owner gave at install time.
HCL Infosystem Ltd. Page 9
Inventory Management System
Dalvik Virtual Machine
It is extremely low-memory based virtual machine, which was designed especially for Android to run on embedded systems and work well in low power situations. It is also tuned to the CPU attributes. The Dalvik VM creates a special file format (.DEX) that is created through build time post processing. Conversion between Java classes and .DEX format is done by included “dx” tool.
Integrated Browser
Google made a right choice on choosing WebKit as open source web browser. They added a two pass layout and frame flattering. Two pass layout loads a page without waiting for blocking elements, such as external CSS or external JavaScript and after a while renders again with all resources downloaded to the device. Frame flattering converts founded frames into single one and loads into the browser. These features increase speed and usability browsing the internal via mobile phone.
Optimized Graphics
As Android has 2D graphics library and 3D graphics based on OpenGL ES 1.0, possibly we will see great applications like Google Earth and spectacular games like Second Life, which come on Linux version. At this moment, the shooting legendary 3D game Doom was presented using Android on the mobile phone.
SQLite
Extremely small (~500kb) relational database management system, which is integrated in Android. It is based on function calls and single file, where all definitions, tablets and data are stored. This simple design is more than suitable for a platform such as Android.
HandsetLayouts
The platform is adaptable to both larger, VGA, 2D graphics library, 3D graphics library based on OpenGLES 1.0 specifications, traditional smart phone layouts. An underlying 2D graphics engine is also included. Surface Manager manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications.
Data Storage
SQLite is used for structured data storage. SQLite is a powerful and lightweight relational database engine available to all applications.
Connectivity
Android supports a wide variety of connectivity technologies including GSM, CDMA, Bluetooth, EDGE, EVDO, 3G and Wi-Fi.
Messaging
SMS, MMS, and XMPP are available forms of messaging including threaded text messaging.
HCL Infosystem Ltd. Page 10
Inventory Management System
Web Browser
The web browser available in Android is based on the open-source WebKit applicaton framework. It includes LibWebCore which is a modern web browser engine which powers both the Android browser and an embedded web view.
Java Virtual Machine
Software written in Java can be compiled into Dalvik bytecodes and executed in the Dalvik virtual machine, which is a specialized VM implementation designed for mobile device use, although not technically a standard Java Virtual Machine.
Media Support
Android will support advanced audio/video/still media formats such as MPEG-4, H-264, MP3, and AAC, AMR, JPEG, PNG, GIF.
Android Hardware Support
Android is fully capable of utilizing video/still cameras, touchscreens, GPS, compasses, accelerometers, and, accelerated 3D graphics.
Development Environment
Includes a device emulator, tools for debugging, memory and performance profiling, a plugin for the Eclipse IDE. There are a number of hardware dependent features, for instance, a huge media and connections support, GPS, improved support for Camera and simply GSM telephony. A great work was done for the developers to start work with Android using device emulator, tools for debugging and plugin for Eclipse IDE.
HCL Infosystem Ltd. Page 11
Inventory Management System
CHAPTER 01
MODULES OF THE PROJECT
Different modules of the project include:
QR code Format QR code generator QR code scanner/reader Database Storage
QR code Introduction
QR code (abbreviated from Quick Response Code) is the trademark for a type of matrix barcode (or two-dimensional bar code) first designed for the automotive industry in Japan. Bar codes are optical machine-readable labels attached to items that record information related to the item. It was initially patented; however, its patent holder has chosen not to exercise those rights. Recently, the QR Code system has become popular outside the automotive industry due to its fast readability and greater storage capacity compared to standard UPC barcodes. The code consists of black modules (square dots) arranged in a square grid on a white background. The information encoded may be made up of four standardized types (“modes”) of data (numeric, alphanumeric, byte/binary, Kanji) or through supported extensions, virtually any type of data.
QR code generation
Encryption
Encrypted QR codes, which are not very common, have a few implementations. An Android app, for example, manages encryption and decryption of QR codes using the DES algorithm (56 bits).
Four-bit indicators are used to select the encoding mode and convey other information. Encoding modes can be mixed as needed within a QR symbol.
After every indicator that selects an encoding mode is a length field that tells how many characters are encoded in that mode. The number of bits in the field depends on the encoding and the symbol version.
HCL Infosystem Ltd. Page 12
Inventory Management System
Encoding modes
Indicator Meaning
0001 Numeric encoding (10 bits per 3 digits)
0010 Alphanumeric encoding (11 bits per 2 characters)
0100 Byte encoding (8 bits per character)
1000 Kanji encoding (13 bits per character)
0011 Structured append (used to split a message across multiple QR symbols)
0111 Extended Channel Interpretation (select alternate character set or encoding)
0101 FNC1 in first position (see Code 128 for more information)
1001 FNC1 in second position
0000 End of message
QR code Format
The format information records two things: the error correction level and the mask pattern used for the symbol. Masking is used to break up patterns in the data area that might confuse a scanner such as large blank areas or misleading features that look like the locator marks. The mask patterns are defined on a grid that is repeated as necessary to cover the whole symbol. Modules corresponding to the desk areas of the mask are inverted. The format information is protected from errors with a BCH code, and two complete copies are induced in each QR symbol.
HCL Infosystem Ltd. Page 13
Inventory Management System
The message data is placed from right to left in a zigzag pattern. In larger symbols, this is complicated by the presence of the alignment patterns and the use of multiple interleaved error-correction blocks.
QR code Scanner
QR code Scanner/Reader is used to decode the encrypted data from a QR code. The data encoded are fetched from the scanner. Scanner scans the code with the help of a webcam.
HCL Infosystem Ltd. Page 14
Inventory Management System
Database Storage
What is SQLite?
SQLite is an Open Source Database which is embedded into Android. SQLite supports standard relational database features like SQL syntax, transactions and prepared statements. In addition it requires only little memory at runtime (approx. 250 KByte).
SQLite supports the data types TEXT (similar to String in Java), INTEGER (similar to long in Java) and REAL (similar to double in Java). All other types must be converted into one of these fields before saving them in the database. SQLite itself does not validate if the types written to the columns are actually of the defined type, e.g. you can write an integer into a string column and vice versa.
SQLite in Android
SQLite is available on every Android device. Using an SQLite database in Android does not require any database setup or administration.
You only have to define the SQL statements for creating and updating the database. Afterwards the database is automatically managed for you by the Android platform.
Access to an SQLite database involves accessing the filesystem. This can be slow. Therefore it is recommended to perform database operations asynchronously, for example inside the AsyncTaskclass.
If your application creates a database, this database is by default saved in the directoryDATA/data/APP_NAME/databases/FILENAME.
The parts of the above directory are constructed based on the following rules. DATA is the path which theEnvironment.getDataDirectory() method returns. APP_NAME is your application name.FILENAME is the name you specify in your application code for the database.
HCL Infosystem Ltd. Page 15
Inventory Management System
CHAPTER 02
SYSTEM ENVIROMENT
2.1 Software Requirements
2.1.1 Supported Operating Systems
Windows XP (32-bit), Vista (32- or 64-bit), or Windows 7 (32- or 64-bit)
Mac OS X 10.5.8 or later (x86 only)
Linux ( Linux Ubuntu Hardy Heron)
2.1.2 Supported Development Environments
Eclipse IDE
Eclipse 3.4 (Ganymede) or 3.5 (Galileo)
Eclipse JDT plugin (included in most Eclipse IDE packages)
Several types of Eclipse packages are available for each platform. For developing
Android applications, we recommend that you install one of these packages:
Eclipse IDE for Java EE Developers
Eclipse IDE for Java Developers
Eclipse for RCP/Plug-in Developers
Eclipse Classic (versions 3.5.1 and higher)
JDK 5 or JDK 6 (JRE alone is not sufficient)
Android Development Tools plugin (optional)
2.1.3 Other development environments or IDEs
JDK 5 or JDK 6 (JRE alone is not sufficient)
Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows
HCL Infosystem Ltd. Page 16
Inventory Management System
2.2 Hardware Requirements
The Android SDK requires disk storage for all of the components that you choose to install.
The table below provides a rough idea of the disk-space requirements to expect, based on the
components that you plan to use.
Component type Approximate size Comments
SDK Tools 50 MB Required.
Android platform (each) 150 MB At least one platform is required.
SDK Add-on (each) 100 MB Optional.
USB Driver for Windows
10 MB Optional. For Windows only.
Samples (per platform) 10M Optional.
Offline documentation 250 MB Optional.
HCL Infosystem Ltd. Page 17
Inventory Management System
CHAPTER 03
SYSTEM ANALYSIS
In order to install the Android SDK, do as the following:
3.1 Android SDK Installation
First of all, we have to download the SDK from the following link
http://developer.android.com/sdk/index.html. Please notice that the SDK that come with the
Phone is 2.0.1. Therefore, we should not choose the build target as 2.1 for the program because
then we won’t be able to install the application on the Droid phone. Use the SDK 1.6.
After we agree to the terms of the SDK license, we click on the link that corresponds to the OS
(Linux, Mac OS X, and Windows) and download the zip file. It is recommended that we
download everything on Windows,
Unzip the archive at a suitable location in the machine. We will refer to this location as
$ANDROID HOME from now on. By default the files are unzipped into a folder called
android-sdk-<platform>-<release> <build> and have subdirectories tools, samples and docs
(Windows versions have another folder for the usb driver).
– On Linux, edit your .bash profile to add tools to your path export $PATH=$PATH:
$ANDROID HOME/tools
– On Mac, the process is similar to Linux. Create a .bash profile if you don’t have one already
– On Windows, right-click on “My Computer” and select Properties. Under the Advanced tab,
hit the Environment button. Double-click on Path in the window that comes up. Add the full
path to the tools directory here.
Remember that if you update your Android SDK, you also need to update the
paths that have been set.
3.2 JDK Installation
HCL Infosystem Ltd. Page 18
Inventory Management System
For JDK installation, we have to download JDK 6 Update 19 from the link
http://www.oracle.com/technetwork/java/javase/downloads/index.html. Please note that you are
required to install JDK and not just the JRE.
3.3 Eclipse Installation
Download “Eclipse IDE for Java Developers (92 MB)” from the following link
http://www.eclipse.org/downloads/. Unzip the downloaded file at an appropriate location.
NOTE: If you are using Linux, it is recommended that you use your package manager
(synaptic/apt-get for ubuntu and other debian based distros and yum for fedora and other redhat
based distros) to install eclipse. Also ensure that your version is Ganymede or Eclipse 3.4)
3.4 Install Android Development Tools
For the android development tools, go to Help -> Install New Software Click on Add and Add
https://dl-ssl.google.com/android/eclipse/ as URL
Now you will see Android Development Tools in the available software. Select and install this
package.
After the installation and restart, you need to update the preferences for ADT. This can be done
by going to Window -> Preferences (Eclipse -> Preferences on Mac), select Android. For the
SDK Location, click browse and find the location where the android sdk was unzipped. Click
Apply and then Ok.
On the toolbar, click on Android SDK and Android Manager, and then click on Available
Packages and select Android SDK 1.6 and Install.
Then in the left menu Virtual Devices -> New. Enter the following
Name: Android-1.6-Emulator
Target: Android 1.6
Size: 64 MB
Then click on Create AVD.
3.5 Motorola USB driver
Your operation system needs to install the USB driver so it can recognize the device. The
drivers provided here are for windows. If you are using any other OS, you need to look for the
proper driver to install.
HCL Infosystem Ltd. Page 19
Inventory Management System
3.6 Running an application
The Eclipse plug-in makes it very easy to run the applications. Begin by selecting the Run ->
Open Run Configurations menu entry.
Highlight the “Android Application” entry and click the icon in the top left corner ( the one
depicting a sheet of paper with a plus sign in the corner) or simply double-click the “Android
Application” entry.
We should have a new launcher entry name “New Configuration”. Change the name to
something more meaningful like “Hello Android”. The plugin will automatically scan the
project for Activity subclasses, and add each one it finds to the dropdown list under the
“Activity:” label.
Click the ”Apply” button. That’s it you’re done! Click the Run button, and the Android
Emulator should start. Once it’s booted up your application will appear.
HCL Infosystem Ltd. Page 20
Inventory Management System
CHAPTER 04
SYSTEM DESIGN
4.1 INTRODUCTION:
The purpose of the design phase is to plan a solution of the problem specified by the
Requirements document. This phase is the first step in moving from the problem domain to the
solution domain. In other words, starting with what is needed , design takes us toward how to
satisfy the needs. The design of a system is perhaps the most critical factor affecting the quality
of the software. The output of this phase is the designed document. This document is similar to
a blueprint or plan for the solution and is used later during implementation testing and
maintenance. System design, which is sometimes also called top level design, aims to identify
the modules that should be in the system, the specification of these modules and how they
interact with each other to produce the desired results. A system design methodology is a
systematic approach to create a design by application of a set of techniques and guidelines.
Input and output design
Input design is a part of overall system design, which requires very careful attention. If data
going into the system is incorrect, then the processing and output will magnify these errors.
Thus the designer has a number of clear objectives in the different stages of input design:
To produce a cost effective method of input.
To achieve the highest possible level of accuracy.
To ensure that input is acceptable to and understood by the user.
HCL Infosystem Ltd. Page 21
Inventory Management System
At the beginning of output design various types of outputs (external, internal,
operational, and interactive and turnaround) are defined. Then the format, content, location,
frequency, volume and sequence of the output are specified. The content of the output must
be defined in detail. The system analyst has two specific objectives at this stage.
To interpret and communicate the results of the computer part of a system to users
in a form that they can understand and which meets their requirements.
To communicate the output design specifications to programmers in a way, this is
unambiguous, comprehensive and capable of being translated into a programming
language.
HCL Infosystem Ltd. Page 22
Inventory Management System
SnapshotsMain Activity:
HCL Infosystem Ltd. Page 23
Inventory Management System
Enter Details:
HCL Infosystem Ltd. Page 24
Inventory Management System
Report Details:
HCL Infosystem Ltd. Page 25
Inventory Management System
Report Details:
HCL Infosystem Ltd. Page 26
Inventory Management System
Remove Details:
HCL Infosystem Ltd. Page 27
Inventory Management System
HCL Infosystem Ltd. Page 28
Inventory Management System
HCL Infosystem Ltd. Page 29
Inventory Management System
HCL Infosystem Ltd. Page 30
Inventory Management System
4.3 FUNCTIONALITIES DESCRIPTIONS
4.3.1 DATA FLOW DIAGRAM:
The data flow diagram reviews the current physical system, prepares input and output
specification, specifies the implementation plan etc. Four basic symbols are used to construct
data flow diagram. They are symbols that represent data source data flow and data
transformation and data storage. The points at which data are transformed are represented by
enclosed figures, usually circles, which are called nodes. Basic data flow diagram symbols are:
In the DFD, there are four symbols.1. A square defines a source (originator) or destination of system data.2. An arrow identifies data flow –data in motion. It is a pipeline through which information flows.3. A circle or a “bubble” represents a process that transforms incoming data flow(s) into outgoing data flow(s).4. An opened rectangle is a data store—data at rest, or a temporary repository of data. Define sources or destination
Define data flow.
Define a store process .
Defines a data
HCL Infosystem Ltd. Page 31
Inventory Management System
A few guidelines to aid the derivation of a DFD • The level 0 DFD should depict the software / system as a single bubble • Primary input and output should be noted. • Refinement should begin by isolating candidate processes, data objects and the stores to be represented in the next level. • All arrows and bubbles should be labeled with a meaningful name. • Information flow continuity must be maintained from level to level and • One bubble at a time should be refined.
The level 0 DFD (context) is expanded o level 1 DFD. The process represented in the 1 DFD can be further refined o level 2 DFD. Information flow continuity is maintained between levels. The refinement continues until each bubble performs a simple function. That is, until the process represented by the bubble performs a function that would be easily implemented as a program.The DFD serves two purposes:1. To provide an indication of data is transformed as they move through the system, and2. To depicts the functions (and sub functions) that transforms the data flow.DFD provide additional information that is during the analysis of the information domain and serves as a basis for the modeling of function.
LEVEL 0 DFD:
Master Database
HCL Infosystem Ltd. Page 32
ADMIN EMPLOYEES
Inventory Management System
LEVEL 1 DFD
AD e Employee Database
Report Database
Employee Database
LEVEL-2 DFD OF ENTER DETAILS
HCL Infosystem Ltd. Page 33
ADMINENTER DETAILS
REPORT DETAILS
REMOVE DETAILS
ADMIN SCAN SUBMIT
Inventory Management System
Employee Database
LEVEL-2 DFD OF REPORT DETAILS
Report Database
HCL Infosystem Ltd. Page 34
ADMIN SCAN ISSUED/RETURNED
Inventory Management System
LEVEL-2 DFD OF REMOVE DETAILS
Employee Database
HCL Infosystem Ltd. Page 35
ADMIN REMOVE SCAN
REMOVE
Inventory Management System
CHAPTER 05
Coding
Java Coding:
package com.example.inventorymtwo;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener
{
HCL Infosystem Ltd. Page 36
Inventory Management System
/*private static final String[] items = {"-Select-", "U1", "U2", "G1",
"Y1", "Y2", "Y3", "V1", "X1", "PENTA", "iPAD", "SKYTAB", "Micromax",
"A2", "OTHER", ""};
private static final String[] names = {"-Select-", "SELF", "Free", "KK",
"NARENDRA", "VIBHUTI", "SUNNY", "AMEY",
"KAPIL", "ASHISH", "ARUNESH", "VINEET", "SUNIL", "MANVENDRA",
"SAHIL", "FARAZ", "ARUSHI", "NIHARIKA", "SONAM", "MAHAK", "ANUJ",
"OTHER", ""};
*/
Spinner spin1, spin2, spin3;
private MasterDatabase db1,db2;
private DatabaseD dbm;
private DatabaseEName dbe;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
HCL Infosystem Ltd. Page 37
Inventory Management System
setContentView(R.layout.activity_main);
dbm = new DatabaseD(this);
List<NameDevice> items = dbm.getAllContacts();
int k =0;
String[] device = new String[items.size()];
for (NameDevice cn : items) {
if((cn.getName()).equals("New Device")){
}
else
{
device[k++] = cn.getName();
}
}
device[k++] = "";
dbe = new DatabaseEName(this);
List<NameEmp> emps = dbe.getAllContacts();
int h =0;
String[] ename = new String[emps.size() + 1];
for (NameEmp cn : emps) {
if((cn.getName()).equals("New Emp")){
}
HCL Infosystem Ltd. Page 38
Inventory Management System
else
{
ename[h++] = cn.getName();
}
}
ename[h++] = "Free";
ename[h++] = "";
spin1=(Spinner)findViewById(R.id.spinner1);
spin1.setOnItemSelectedListener(this);
ArrayAdapter<String> a1=new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,
device);
a1.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
spin1.setAdapter(a1);
spin2=(Spinner)findViewById(R.id.spinner2);
spin2.setOnItemSelectedListener(this);
ArrayAdapter<String> a2=new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,
HCL Infosystem Ltd. Page 39
Inventory Management System
device);
a2.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
spin2.setAdapter(a2);
spin3=(Spinner)findViewById(R.id.spinner3);
spin3.setOnItemSelectedListener(this);
ArrayAdapter<String> a3=new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,
ename);
a3.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
spin3.setAdapter(a3);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void scanNow(View view)
{
HCL Infosystem Ltd. Page 40
Inventory Management System
Intent intent1 = new Intent("com.google.zxing.client.android.SCAN");
intent1.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE",
"QR_CODE_MODE");
startActivityForResult(intent1, 0);
Log.d("test1", "button works!");
}
public void RemoveDevice(View view)
{
Intent intent2 = new Intent("com.google.zxing.client.android.SCAN");
intent2.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE",
"QR_CODE_MODE");
startActivityForResult(intent2, 1);
Log.d("test2", "button works!");
}
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{ boolean sinfo = false;
if (requestCode == 0)
{
if (resultCode == RESULT_OK)
{
String contents = intent.getStringExtra("SCAN_RESULT");
HCL Infosystem Ltd. Page 41
Inventory Management System
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
Log.i("xZing", "contents: "+contents+" format: "+format);
db1 = new MasterDatabase(this);
sinfo = db1.fetchserialinfo(contents);
if (sinfo == false){
Intent intent1 = new Intent(MainActivity.this,
EnterDetails.class);
intent1.putExtra("str1", contents);
startActivity(intent1);
}
else{
Intent intent2 = new Intent(MainActivity.this,
ReportDetails.class);
intent2.putExtra("str2", contents);
startActivity(intent2);
}
// Handle successful scan
}
else if (resultCode == RESULT_CANCELED)
{
// Handle cancel
Log.i("xZing", "Cancelled");
}
HCL Infosystem Ltd. Page 42
Inventory Management System
}
else if (requestCode == 1)
{
if (resultCode == RESULT_OK)
{
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
Log.d("xZing", "contents: "+contents+" format: "+format);
// Handle successful scan
db2= new MasterDatabase(this);
sinfo=db2.fetchserialinfo(contents);
if(sinfo==true){
Intent intent2 = new Intent(MainActivity.this, RemoveDetails.class);
intent2.putExtra("str2", contents);
startActivity(intent2);
}
else{
Toast.makeText(getApplicationContext(), "this device is not
present in database", Toast.LENGTH_SHORT).show();
}
}
HCL Infosystem Ltd. Page 43
Inventory Management System
else if (resultCode == RESULT_CANCELED)
{
// Handle cancel
Log.i("xZing", "Cancelled");
}
}
}
public void checkMStatus(View view) {
Intent intent = new Intent(MainActivity.this, ListViewActivityM.class);
String message1 = spin1.getSelectedItem().toString();
if (message1.equals("-Select-")){
Toast.makeText(getApplicationContext(), "Select a value from Spinner",
Toast.LENGTH_SHORT).show();
}
else{
intent.putExtra("msg1", message1);
startActivity(intent);
}
}
public void checkReport(View view) {
HCL Infosystem Ltd. Page 44
Inventory Management System
Intent intent = new Intent(MainActivity.this, ListViewActivityR.class);
String message2 = spin2.getSelectedItem().toString();
if (message2.equals("-Select-")){
Toast.makeText(getApplicationContext(), "Select a value from Spinner",
Toast.LENGTH_SHORT).show();
}
else{
intent.putExtra("msg2", message2);
startActivity(intent);
}
}
public void checkEStatus(View view) {
Intent intent = new Intent(MainActivity.this, ListViewActivityE.class);
String message3 = spin3.getSelectedItem().toString();
if (message3.equals("-Select-")){
Toast.makeText(getApplicationContext(), "Select a value from Spinner",
Toast.LENGTH_SHORT).show();
}
else{
intent.putExtra("msg3", message3);
startActivity(intent);
}
}
HCL Infosystem Ltd. Page 45
Inventory Management System
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
XML Coding:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/back" android:orientation="vertical" >
<ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="match_parent" >
<LinearLayout
HCL Infosystem Ltd. Page 46
Inventory Management System
android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" >
<TableLayout android:id="@+id/tableLayout1" android:layout_width="match_parent" android:layout_height= "match_parent" android:layout_weight="1" android:shrinkColumns="0" android:stretchColumns="1" >
<TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" >
<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="100dp" android:layout_weight="1" android:gravity="center" android:background="@drawable/inventory_img" /> </TableRow>
<TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "25px" > </TableRow>
<TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" >
<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal" >
<Button android:id="@+id/button1" android:layout_width="100dp"HCL Infosystem Ltd. Page 47
Inventory Management System
android:layout_height="90dp" android:layout_centerHorizontal="true" android:onClick="scanNow" android:background="@drawable/scan" /> </RelativeLayout> </TableRow>
<TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "50px" > </TableRow>
<TableRow android:id="@+id/tableRow5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "20px" android:gravity="center_vertical" >
<Spinner android:id="@+id/spinner1" android:layout_width="200dp" android:layout_height="50dp" android:layout_gravity="center" android:layout_weight="1" android:gravity="center" android:background="@drawable/spinner_shape" />
<Button android:id="@+id/button2" android:layout_width="120dp" android:layout_height="50dp" android:layout_gravity="left" android:layout_weight="1" android:background="@drawable/status_button" android:gravity="center" android:onClick="checkMStatus" android:text= "STATUS-M" android:padding="10dp" /> </TableRow>
<TableRow android:id="@+id/tableRow6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "20px" >
<Spinner android:id="@+id/spinner2"HCL Infosystem Ltd. Page 48
Inventory Management System
android:layout_width="200dp" android:layout_height="50dp" android:layout_gravity="center" android:gravity="center" android:background="@drawable/spinner_shape" />
<Button android:id="@+id/button3" android:layout_width="120dp" android:layout_height="50dp" android:layout_gravity="left" android:background="@drawable/status_button" android:gravity="center" android:onClick="checkReport" android:padding="10dp" android:text= "STATUS-R" /> </TableRow>
<TableRow android:id="@+id/tableRow7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "20px" >
<Spinner android:id="@+id/spinner3" android:layout_width="200dp" android:layout_height="50dp" android:layout_gravity="center" android:gravity="center" android:background="@drawable/spinner_shape" />
<Button android:id="@+id/button4" android:layout_width="120dp" android:layout_height="50dp" android:layout_gravity="left" android:background="@drawable/status_button" android:gravity="center" android:onClick="checkEStatus" android:padding="10dp" android:text= "STATUS-E" /> </TableRow>
<TableRow android:id="@+id/tableRow8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "40px" > </TableRow>
HCL Infosystem Ltd. Page 49
Inventory Management System
<TableRow android:id="@+id/tableRow9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "40px" > </TableRow>
<TableRow android:id="@+id/tableRow10" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "50px" >
<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal" >
<Button android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:background="@drawable/remove" android:onClick="RemoveDevice" android:padding="10dp" android:text= "REMOVE DEVICE" /> </RelativeLayout> </TableRow> </TableLayout> </LinearLayout> </ScrollView>
</LinearLayout>
Java Coding:
package com.example.inventorymtwo;
import java.text.SimpleDateFormat;
import java.util.Calendar;
HCL Infosystem Ltd. Page 50
Inventory Management System
import java.util.Date;
import java.util.List;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class EnterDetails extends Activity implements AdapterView.OnItemSelectedListener{
/*private static final String[] items = {"-Select-", "U1", "U2", "G1",
HCL Infosystem Ltd. Page 51
Inventory Management System
"Y1", "Y2", "Y3", "V1", "X1", "PENTA", "iPAD", "SKYTAB", "Micromax",
"A2", "OTHER", ""};*/
//private static final String[] deps = {"-Select-", "MOBILITY", "LEARNING", "R&D",
"OTHER"};
private DatabaseD dbm;
private DatabaseDep dbd;
Spinner spin1, spin2;
String message1, message2, message3, message4, message5, message6;
RadioButton rg1, rg2;
Calendar dateAndTime = Calendar.getInstance();
TextView textview1, textview2, textview3, textview4;
int mYear, mMonth, mDay;
boolean sinfo = false;
EditText edit1, edit2;
boolean m=true, n=true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
HCL Infosystem Ltd. Page 52
Inventory Management System
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.enter_details);
Intent intent2 = getIntent();
String content = intent2.getStringExtra("str1");
//SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date today = Calendar.getInstance().getTime();
message1 = df.format(today);
textview1 = (TextView) findViewById(R.id.textView4);
textview1.setText(content);
textview2 = (TextView) findViewById(R.id.textView6);
textview2.setText(message1);
textview3 = (TextView) findViewById(R.id.textView2);
textview3.setVisibility(View.GONE);
edit1 = (EditText) findViewById(R.id.editText1);
//edit.setEnabled(false);
//edit.setInputType(InputType.TYPE_NULL);
//edit.setFocusable(false);
edit1.setVisibility(View.GONE);
HCL Infosystem Ltd. Page 53
Inventory Management System
textview4 = (TextView) findViewById(R.id.textView9);
textview4.setVisibility(View.GONE);
edit2 = (EditText) findViewById(R.id.editText2);
edit2.setVisibility(View.GONE);
dbm = new DatabaseD(this);
List<NameDevice> items = dbm.getAllContacts();
int k =0;
String[] arr1 = new String[items.size()];
for (NameDevice cn : items) {
arr1[k++] = cn.getName();
}
dbd = new DatabaseDep(this);
List<NameDep> deps = dbd.getAllContacts();
int h =0;
String[] arr2 = new String[deps.size()];
for (NameDep cn : deps) {
arr2[h++] = cn.getName();
}
spin1=(Spinner)findViewById(R.id.spinner1);
HCL Infosystem Ltd. Page 54
Inventory Management System
spin1.setOnItemSelectedListener(this);
ArrayAdapter<String> aa=new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,
arr1);
aa.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
spin1.setAdapter(aa);
//spin1.setOnItemSelectedListener(new MyOnItemSelectedListener1());
spin2=(Spinner)findViewById(R.id.spinner2);
spin2.setOnItemSelectedListener(this);
ArrayAdapter<String> aaa=new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,
arr2);
aaa.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
spin2.setAdapter(aaa);
}
public void chooseDate(View v) {
new DatePickerDialog(EnterDetails.this, d,
dateAndTime.get(Calendar.YEAR),
HCL Infosystem Ltd. Page 55
Inventory Management System
dateAndTime.get(Calendar.MONTH),
dateAndTime.get(Calendar.DAY_OF_MONTH))
.show();
}
DatePickerDialog.OnDateSetListener d=new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
dateAndTime.set(Calendar.YEAR, year);
dateAndTime.set(Calendar.MONTH, monthOfYear);
dateAndTime.set(Calendar.DAY_OF_MONTH, dayOfMonth);
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
updateDisplay();
}
};
private void updateDisplay() {
String Month = String.format("%02d", (mMonth+1));
String Day = (String.format("%02d", mDay));
textview2.setText(new StringBuilder()
.append(mYear).append("-")
HCL Infosystem Ltd. Page 56
Inventory Management System
.append(Month).append("-")
.append(Day).append(""));
}
public void SubmitDetails(View view) {
Intent intent = new Intent(EnterDetails.this, MainActivity.class);
//message2 = spin1.getSelectedItem().toString();
textview1 = (TextView) findViewById(R.id.textView4);
message3 = textview1.getText().toString();
textview2 = (TextView) findViewById(R.id.textView6);
message4 = textview2.getText().toString();
//message5 = spin2.getSelectedItem().toString();
MasterDatabase db = new MasterDatabase(this);
/**
* CRUD Operations
* */
HCL Infosystem Ltd. Page 57
Inventory Management System
// Inserting Contacts
Log.d("Insert: ", "Inserting ..");
if(message3 != null && message3.length() != 0)
{
if(m == true){
message2 = spin1.getSelectedItem().toString();
if (message2.equals("-Select-")){
Toast.makeText(getApplicationContext(), "Select a value
from Spinner1", Toast.LENGTH_SHORT).show();
}
else if(message2.equals("New Device"))
{
message2 = edit1.getText().toString();
dbm = new DatabaseD(this);
sinfo = dbm.fetchnameinfo(message2);
if(sinfo == false){
m = false;
dbm.addContact(new NameDevice(message2));
Toast.makeText(getApplicationContext(), "Item
has been added", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(), "Item is
already present", Toast.LENGTH_SHORT).show();
}
HCL Infosystem Ltd. Page 58
Inventory Management System
//db.addContact(new InfoDevice(message2, message3,
message4, "Free", message5));
}
}
if (n == true){
message5 = spin2.getSelectedItem().toString();
if (message5.equals("-Select-")){
Toast.makeText(getApplicationContext(), "Select a value
from Spinner2", Toast.LENGTH_SHORT).show();
}
else if(message5.equals("New Dep"))
{
message5 = edit2.getText().toString();
dbd = new DatabaseDep(this);
sinfo = dbd.fetchnameinfo(message5);
if(sinfo == false){
n = false;
dbd.addContact(new NameDep(message5));
HCL Infosystem Ltd. Page 59
Inventory Management System
Toast.makeText(getApplicationContext(), "Dep
has been added", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(), "Dep is
already present", Toast.LENGTH_SHORT).show();
}
//db.addContact(new InfoDevice(message2, message3,
message4, "Free", message5));
}
}
{
if (message2.equals("-Select-") || message5.equals("-Select-")){
//Toast.makeText(getApplicationContext(), "Select a
value from Spinner", Toast.LENGTH_SHORT).show();
}
else
db.addContact(new InfoDevice(message2, message3,
message4, "Free", message5));
}
}
else
{
Toast.makeText(getApplicationContext(), "You Can't Be Added, As
You Didn't Enter Full Details!!! =)",
HCL Infosystem Ltd. Page 60
Inventory Management System
Toast.LENGTH_LONG).show();
//db.addContact(new Contact("Ssaacchhiinn", "sportsperson", "30-40",
"Male", 900000, 4.5f));
}
// Reading all contacts
Log.d("Reading: ", "Reading all contacts..");
List<InfoDevice> contacts = db.getAllContacts();
for (InfoDevice cn : contacts) {
String log = "Name: " + cn.getName() + " ,SerialNumber: " +
cn.getSerialNumber() + " ," +
"Date: " + cn.getDate() + " ,Status: " + cn.getStatus() +
" ,From: " + cn.getDepartment();
// Writing Contacts to log
Log.d("Name: ", log);
}
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
if (message2.equals("-Select-") || message5.equals("-Select-")){
//Toast.makeText(getApplicationContext(), "Select a value from
Spinner", Toast.LENGTH_SHORT).show();
}
else {
HCL Infosystem Ltd. Page 61
Inventory Management System
startActivity(intent);
}
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
if(arg0.equals(spin1)){
if ((arg0.getItemAtPosition(arg2)).equals("New Device"))
{
textview3.setVisibility(View.VISIBLE);
edit1 = (EditText) findViewById(R.id.editText1);
edit1.setVisibility(View.VISIBLE);
//edit1.setFocusable(true);
//edit.setEnabled(true);
//edit.setInputType(InputType.TYPE_CLASS_TEXT);
}
else
HCL Infosystem Ltd. Page 62
Inventory Management System
{
textview3.setVisibility(View.GONE);
edit1.setVisibility(View.GONE);
//edit1.setFocusable(true);
}
}
else if(arg0.equals(spin2)){
if((arg0.getItemAtPosition(arg2)).equals("New Dep")){
textview4.setVisibility(View.VISIBLE);
edit2=(EditText)findViewById(R.id.editText2);
edit2.setVisibility(View.VISIBLE);
}
else{
textview4.setVisibility(View.GONE);
edit2.setVisibility(View.GONE);
}
}
}
HCL Infosystem Ltd. Page 63
Inventory Management System
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
XML Coding:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/back" android:orientation="vertical" >
<ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="match_parent" >
<TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" >
<TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" >
<TextView android:id="@+id/textView8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:text= "ENTER DETAILS" android:textAppearance="?android:attr/textAppearanceLarge" /> </TableRow>
<TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" > </TableRow>
<TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content" >
HCL Infosystem Ltd. Page 64
Inventory Management System
<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text= "MODEL:" android:textAppearance="?android:attr/textAppearanceMedium" />
<Spinner android:id="@+id/spinner1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow>
<TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" >
<TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text= "ENTER MODEL:" android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" >
<requestFocus /> </EditText> </TableRow>
<TableRow android:id="@+id/tableRow5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" >
<TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text= "S.NO:" android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text= "Medium Text" android:textAppearance="?android:attr/textAppearanceMedium" /> </TableRow>
<TableRow android:id="@+id/tableRow6"
HCL Infosystem Ltd. Page 65
Inventory Management System
android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" >
<TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text= "DATE:" android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView android:id="@+id/textView6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:maxWidth="@dimen/standard_padding" android:textAppearance="?android:attr/textAppearanceMedium" />
<Button android:id="@+id/button2" style="?android:attr/buttonStyleSmall" android:layout_width="80dp" android:layout_height="40dp" android:layout_weight=".5" android:background="@drawable/images1" android:onClick="chooseDate" android:text= "Select Date" /> </TableRow>
<TableRow android:id="@+id/tableRow7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" >
<TextView android:id="@+id/textView7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text= "DEP(FROM):" android:textAppearance="?android:attr/textAppearanceMedium" />
<Spinner android:id="@+id/spinner2" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow>
<TableRow android:id="@+id/tableRow8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" >
<TextView android:id="@+id/textView9" android:layout_width="wrap_content" android:layout_height="wrap_content"
HCL Infosystem Ltd. Page 66
Inventory Management System
android:text= "ENTER DEP:" android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" >
<requestFocus /> </EditText> </TableRow>
<TableRow android:id="@+id/tableRow9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" > </TableRow>
<TableRow android:id="@+id/tableRow10" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" >
<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal" >
<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:onClick="SubmitDetails" android:text= "SUBMIT" /> </RelativeLayout> </TableRow> </TableLayout> </ScrollView>
</LinearLayout>
Java Coding:
package com.example.inventorymtwo;
import java.util.List;
import android.app.Activity;
HCL Infosystem Ltd. Page 67
Inventory Management System
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
public class RemoveDetails extends Activity implements
AdapterView.OnItemSelectedListener{
/*private static final String[] items = {"U1", "U2", "G1",
"Y1", "Y2", "Y3", "V1", "X1", "PENTA", "iPAD", "SKYTAB", "Micromax",
"A2", "OTHER"};*/
Spinner spin1;
TextView textview1;
String message1, message2;
private MasterDatabase db3;
private DatabaseD dbd;
HCL Infosystem Ltd. Page 68
Inventory Management System
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.remove_details);
Intent intent2 = getIntent();
String content = intent2.getStringExtra("str2");
db3 = new MasterDatabase(this);
dbd = new DatabaseD(this);
List<NameDevice> items = dbd.getAllContacts();
int k =0;
String[] arrdr = new String[items.size()];
for (NameDevice cn : items) {
arrdr[k++] = cn.getName();
}
spin1=(Spinner)findViewById(R.id.spinner1);
spin1.setOnItemSelectedListener(this);
ArrayAdapter<String> aa=new ArrayAdapter<String>(this,
HCL Infosystem Ltd. Page 69
Inventory Management System
android.R.layout.simple_spinner_item,
arrdr);
aa.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
spin1.setAdapter(aa);
textview1 = (TextView) findViewById(R.id.textView4);
textview1.setText(content);
InfoDevice contact2 = db3.getContact(content);
String msg1 = contact2.getName();
int k1 = searchStringInArray2 (arrdr, msg1);
spin1.setSelection(k1);
}
public void RemoveFromDatabase(View view) {
Intent intent = new Intent(RemoveDetails.this, MainActivity.class);
message1 = spin1.getSelectedItem().toString();
textview1 = (TextView) findViewById(R.id.textView4);
message2 = textview1.getText().toString();
HCL Infosystem Ltd. Page 70
Inventory Management System
MasterDatabase db = new MasterDatabase(this);
if(message2 != null && message2.length() != 0)
{
db.deleteContact(new InfoDevice(message1, message2, null, null, null));
}
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
public int searchStringInArray2 (String[] stringArray, String z) {
int m, n=0;
for (m=0; m<stringArray.length; m++) {
if (stringArray[m].matches (z))
{
n = m;
}
}
return n;
}
HCL Infosystem Ltd. Page 71
Inventory Management System
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
XML Coding:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/back" android:orientation="vertical" >
<ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="wrap_content" >
<LinearLayout android:layout_width="match_parent" android:layout_height= "match_parent" android:orientation="vertical" >
<TableLayout
HCL Infosystem Ltd. Page 72
Inventory Management System
android:layout_width="match_parent" android:layout_height="wrap_content" >
<TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" >
<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:text= "REMOVE DETAILS" android:textAppearance="?android:attr/textAppearanceLarge" /> </TableRow>
<TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" >
<TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text= "MODEL:" android:textAppearance="?android:attr/textAppearanceMedium" />
<Spinner android:id="@+id/spinner1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="2" android:gravity="center" /> </TableRow>
<TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" >
<TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text= "S.NO:" android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"
HCL Infosystem Ltd. Page 73
Inventory Management System
android:text= "Medium Text" android:textAppearance="?android:attr/textAppearanceMedium" /> </TableRow>
<TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" > </TableRow>
<TableRow android:id="@+id/tableRow5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" > </TableRow>
<TableRow android:id="@+id/tableRow6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" > </TableRow>
<TableRow android:id="@+id/tableRow7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" > </TableRow>
<TableRow android:id="@+id/tableRow8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" > </TableRow>
<TableRow android:id="@+id/tableRow9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" > </TableRow>
<TableRow android:id="@+id/tableRow10" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" > </TableRow>
<TableRow android:id="@+id/tableRow11" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop= "30px" >
<RelativeLayout
HCL Infosystem Ltd. Page 74
Inventory Management System
android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal" >
<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:background="#ffa500" android:onClick="RemoveFromDatabase" android:text= "REMOVE" /> </RelativeLayout> </TableRow> </TableLayout> </LinearLayout> </ScrollView></LinearLayout>
HCL Infosystem Ltd. Page 75
Inventory Management System
CHAPTER 06
TESTING
5.1 TESTING METHODOLOGIES:
Software testing can be looked upon as among the many process of software development
organization performance, that provide the best opportunity to correct any fault in the
developed system. System testing is a series of developed test where primary purpose is to fully
exercise the computer based system. Testing begins at the middle level and works towards the
integration of the entire candidate system. A good test is one that has high probability of
finding the yet undiscovered errors. Some of the testing methods used for testing the system
are:
5.1.1 UNIT TESTING
Unit Testing focuses on verification efforts on the smallest unit of software design of the
module. This is also known as module testing. The modules are tested separately. It is the set of
steps performed by an individual programmer prior to the integration of of the unit into larger
system. The unit testing is normally “White Box” oriented and the step can be conducted in
parallel for multiple modules. The tested modules must be up, starting with the lowest level
modules and testing one at a time. When this is finished, attention turns to those on the next
level that use the lower level ones. This Testing was carried out during the programming stage
itself. In this testing each module was found to be working satisfactorily as regard to the
expected output from the module.
5.1.2 INTEGRATION TESTING
Data can be lost across an interface; one module can have an adverse effect on another; sub
function when combined may not proceed the desired major function. Integration testing is
systematic testing for constructing the program structure, while at the same time conducting
test to uncover errors associated within the interface. The objective is to take unit tested
modules and build a program structure. All the modules are combined and tested as a whole.
Here correction is difficult because the isolation of cases is complicated by the vast expanse of
HCL Infosystem Ltd. Page 76
Inventory Management System
the entire program. Thus in the integration testing step, all errors are uncovered for the next
testing steps.
5.1.3 VALIDATION TESTING
At the culmination of integration testing, software is completely assembled as a package,
interfacing errors have been uncovered and corrected and a final series of software test begins-
Validation Test. Validation testing can be defined in many ways , but a simple definition is the
validation succeeds simple definition is the validation succeeds when the software function in a
manner that can be reasonably expected by the customer. When we provided some of the raw
data for searching then at the display table shown we were getting the same name continuously
with same values in the table which was the largest ASCII valued result for the same code.
So we used the ‘trim’ function and then corrected the result and later it produced the required
result. In the display table the different attributes were coming in a spaced manner and were not
coming parallel to the logo, we then divided that space into tables and solved it. There was a
problem in table joining for showing student’s institution name with the student display table.
We then solved it by using appropriate query and solved it.
5.1.4 OUTPUT TESTING
After performing the validation testing the next step is output testing of the proposed system,
since no system could be useful if it does not produce the required output in the specific format.
The output generated or displayed by the system under consideration is tested by asking the
users about the format required by them. Here the output format is considered in two ways. one
is onscreen and another is print out format. The output format on screen is found to be correct
as the format was system design phase according on to the user needs. For the hardcopy also,
the output comes out as the specified requirement of the user. Hence output testing does not
result any correction in the system
HCL Infosystem Ltd. Page 77
Inventory Management System
CHAPTER 07
IMPLEMENTATION IN JAVA
6.1 JAVA
James Gosling, Patrick Naughton, Chris Warth, Ed Frank, and Mike Sherdian conceived Java at Sun
Microsystems Inc. in 1991.Java is a technology that makes it easy to build distributed applications,
which are programs executed by multiple computers across a network. Being state of the art in network
programming, Java promises to expand the Internet from one arena for communications to a network on
which full-fledged applications can be run. It's break through technology will allow businesses to
deploy full-scale transaction services and real-time, interactive information content on the internet.
Java also simplifies the construction of Software Agents, programs that move across a network and
perform functions on remote computers on behalf of users.
Somewhat surprisingly, the original impetus for Java was not the Internet! Instead
the primary, motivation was the need for a platform-independent (i.e. Architecture neutral) language
that could be used to create software to be embedded in various consumer electronic devices, such as
microwave ovens and remote controllers. The trouble with C and C++ (and most other language) is that
they are designed to be compiled for a specific target. Although it is possible to compile a C++ program
for just about any type of CPU, to do so requires a full C++ compiler targeted for that CPU. The
program is that it compilers are expensive and time-consuming to create. An easier and more cost-
efficient solution was needed. In an attempt to find such a solution, Gosling and others began work on a
portable, platform-independent language that could be used to produce code that would run on a variety
of CPUs under differing environments. This effort ultimately led to the creation of Java.
Why Java is important to the Internet
The Internet helped catapult java to the forefront of programming, and java, in turn, has had a
profound effect on the Internet. The reason for this is quite simple: java expands the universe of objects
that can move about freely in cyberspace.
Java can be used to create two types of programs: applications and applets. An
application is a program that runs on your computer, under the operating system of the computer. An
applet is an application that designed to be transmitted over the Internet and executed by a Java-
compatible Web Browser. An applet is actually a tiny Java program, dynamically downloaded across
HCL Infosystem Ltd. Page 78
Inventory Management System
the network, just like an image, sound file, or video clip. The important difference is that an applet is an
intelligent program, not just an animation or media file. In other words, an applet is a program that can
react to user input and dynamically change-not just run the same animation or sound and over.
Preference of Java
Java works every where that is from the smallest device to super computers and thus
do not care about the operating system they run on and work on any kind of platform that support Java
Platform. The user wants applications that are not limited to the desktop or even to some local computer
network, but that can Integrate Internet component as well. They want their applications to be written
quickly and correctly in a manner that takes advantage of a world of ‘reuse of rebuilt software
components’.
Easy access to a growing universe of reusable software components should be
made and all the benefits should be in a truly portable manner so that applications written in one
platform will run without any modifications on any other. All the above benefits are being derived using
Java. Java is fully an object-oriented language where objects are being created and manipulated.
Usefulness of Java
Built in security.
Ease of development.
Light weight, distributed model that eliminate the software.
Low administrative maintenance cost.
Platform independence.
Easier to create.
The feature that is best known about Java is that it can be used to create programs which execute
World Wide Web pages. These programs are called”Applets”. Other features of JAVA include
provisions for linking our applications to databases using a JDBC (Java Data Base Connectivity) driver.
Creating our own controls using Java Beans, AWT (Abstract Window Toolkit) and JFC to provide a
good user interface.
The Java Platform
A platform is a hardware or software environment in which a program runs. The Java platform
differs from most other platforms in that it’s a software only platform that runs on top of the order,
hardware based platforms. Most other platforms are described as a combination of hardware and
operating system.
HCL Infosystem Ltd. Page 79
Inventory Management System
The Java platform has two components.
The Java Virtual Machine (JVM).
The Java Application Programming Interface (Java API).
Java VM is the base for the Java Platform and is ported onto various hardware-based
platforms.
The Java API is a large collection of ready-made software components that provide many
useful capabilities, such as Graphical User Interfaces (GUI) widgets. The Java API is grouped into
libraries (Packages) of related components. The following figure depicts a Java Program, such as
application or applet, that’s running on the Java Platform. As the figure shows, the Java API and Virtual
Machine insulates the Java program from hardware dependencies.
6.2 Features of Java
The Java can be characterized by all of the following buzzwords:
Simple and Powerful
The developer of Java based it on C++ programming language, but removed many of
the language features that are rarely or often used poorly. Specifically, Java differs from C++
in these ways:
· Java does not support the structure, union and pointer data types.
· Java does not support typedef or #define.
· Java differs in its handling of certain operators and does not permit operator
overloading.
· Java does not support multiple inheritances
· Java handles command line arguments differently from C or C++.
· Java has a string class as a part of java language package. This differs from the null
terminated array of characters as used in C or C++.
Unlike other programming systems that provide dozens of complicated ways to perform a
simple task, Java provides a small number of clear ways to achieve a given task.
Robust
HCL Infosystem Ltd. Page 80
Inventory Management System
Most programs in use today fail one of the two reasons: memory management or
Exceptional conditions. Thus the ability to create robust programs was given a high priority in
the design of Java. Java checks code both at compile time and runtime. Java virtually frees the
problem of memory management by managing memory allocation and automatic memory
deallocation by providing garbage collection for unused objects. Java also handles exceptional
conditions by providing object-oriented exception handling.
Secure
Since Java works in networked environments, the issue of security is one that should be
of concern to developers. Plans are in the work for Java to use public key encryption techniques
to authenticate data. In its present form, Java puts limits on pointers so that developers cannot
forge access to memory where not permitted. These aspects of Java enable a more secure
software environment.
O bject oriented
Java was not designed to be source-code compatible with any other language. Java team
gave a clean, usable, realistic approach to objects. The object model in Java is simple and easy
to extend, while simple types, such as integers, are kept as high performance non-objects.
Technically, Java's object-oriented features are those of C++ with extensions from objective C
for dynamic method resolution.
Portable
The quality of being architecture neutral allows for a great deal of portability.
However another aspect of portability is how the hardware interprets arithmetic operations. In
C or C++, source code may run slightly differently on different systems. In Java this has been
simplified. These consistencies make it possible to have the assurance that any result on one
computer with Java can be replicated on another.
HCL Infosystem Ltd. Page 81
Inventory Management System
Interpreted and high performance.
When the Java compiler translates the Java source file to byte codes, this byte code
class file can be run on any machine that has a Java interpreter or a Java enable browser. This
allows the Java code to be written independently of the user's platforms. Interpretation also
eliminates the compile and run cycle for the client because the byte codes are not specific to a
given machine. The byte code can be interpreted on any system that has a Java Virtual Machine
(JVM).
Architecturally neutral
The main issue for the Java designers was that of code longevity and portability. The Java
designers worked hard in attaining their goal “Write once; run anywhere, anytime, forever” and
as a result the Java Virtual Machine developed. Since Java is Architectural neutral it generates
byte code that resembles machine code, and is not specific to any processor.
Multithreaded
Java was designed to meet the real world requirements of creating interactive, networked
programs. To achieve this, Java support Multithreaded programming, which allows the user to
write programs that perform many functions simultaneously.
Dynamic language
Unlike C++ code, which often requires complete recompilation if a parent class is changed,
Java uses a method of interface to relieve this dependency. The result is that Java programs can
allow for new methods instance variables .
HCL Infosystem Ltd. Page 82
Inventory Management System
CONCLUSION
The goal of this thesis is to describe, characterize and categorize the new mobile operating platform Android. While working on this elaboration that made positive as well as negative experience, which shall be reviewed in the following conclusion. At the same time it helps the reader to decide which mobile operating system might be convenient for him. The elaboration is divided in a more theoretical part where technical features are considered and a more practical part where an implementation of a simple application helps to assess Android. The systematic assessment of the technical features as well as features like openness of standards comes to the result that Androidis superior to its competitive systems. When the system is further developed it could become a threat to the other two systems and make them superfluous. The previous chapter demonstrates the comfortable way in which applications can be developed on the Android platform. Also in this part we came to the conclusion that Android has advantages in comparison with Symbian OS. The good information organization, the very useful examples, the well organized API and the innovative life-cycle of applications made it very easy to start developing on that system. As an overall conclusion it can be said, that the Android mobile operating system seems to be a good decision for an operating system on every cell phone. It meets all the requirements a mobile operating system has to meet in the future but practical experience in the real world is indispensable.
7.1 MAIN ADVANTAGES
• The mobile platform Android is an open platform.• The installation of Android is possible on every cell phone.• The installation of the whole environment to develop Android applications is possible on every operating system.• The emulator of the Android platform has a modern design and is easy to use.• Google offers a very good documentation as well as many examples which cover the most basic and important techniques used to get in touch with Android and the application development on it.• Android offers a real database which is SQLite.• Android uses the standardized and open programming language Java.• Android supports all established techniques and standards for media, communication and data transfer..
HCL Infosystem Ltd. Page 83
Inventory Management System
7.2 : MAIN DISADVANTAGES
• No experience with Android in the “real world”.
• Not many efficient applications available
• The market leader is not present in the “Open Handset Alliance”.
• The openness regarding the source code could be a problem concerning security.
7.3 : FUTURE PROSPECTS
In the present Master Thesis technical features of mobile operating systems were usedto compare the Android platform with other mobile platforms like Symbian OS or Windows Mobile. For a future look not only actual techniques, standards and methods have to be considered. Also trends and user needs should be of interest. Which is the most important technology that is used at the moment and which will influence the future of normal and wireless communication most? These questions have to be answered if one wants to know where the future of cell phones and operating systems will be used for protection. The message “Internet is the future” which is as true now as it was in the past will most likely be the biggest challenge for cell phones and mobile operating systems in the future. the complete internet will have to take place on the cell phone as it does on the personal computer today. More cell phones than personal computers circulate around the world which shows the enormous potential of the mobile market. A successful operating system, which Andorid wants to be, has to focus on such a trend. It has to meet all possibilities of the internet, even if it is a webbrowser, connectivity standards or special applications.
HCL Infosystem Ltd. Page 84
Inventory Management System
BIBLOGRAPHY
-> [GO2008-1] GoogleSecurity and Permissions in Android
http://code.google.com/android/devel/security.html
-> [GO2008-2] GoogleWhat is Andorid?
http://code.google.com/android/what-is-android.html
-> How-To Work With Google Android Database.http://sqliteman.com/
-> Wrox Professional Android 2 Application Development by Reto Meier.
-> http://mobiforge.com/developing/story/using-google-maps-android
-> http://developer.android.com/index.html
HCL Infosystem Ltd. Page 85