Platform Based Handyman Services
Platform Based Handyman Services
Platform Based Handyman Services
CHAPTER 1
INTRODUCTION
CHAPTER 1
INTRODUCTION
1.1 ABSTRACT
How often your Mom asked you to fix the Faucets, Fans, lights, etc Literally 100’s of times
right? If you are an engineer (even Computer Science Engineer) then I am sure you might also
had heard a statement, “If you can’t fix home appliances then you are not a real engineer.” At
least I hear this a lot. Real problem behind this is the shortage of Handyman against high
demand for home services. This can be solved by creating a platform like Handyman Services
for Handyman which can be described as Handyman Services for Home Services or Handyman
Services for Handyman Services.
1.2 BACKGROUND
Nowadays to create a safer and improved quality of service is important, with these
considerations in mind, in-home service application i.e., Platform based handyman service
application prevent a negative incident from occurring, many in-home service providers are
leveraging employee ensure the safety of the public as it provide background information of
the service provider.
1.3 SCOPE
To develop an application for better results, reasonable cost, user friendly, easy availability of
service provider and to reduce the time.
1.5 MOTIVATION
Nowadays to create a safer and improved quality of service is important, with these
0considerations in mind, in-home service application i.e., Platform based handyman service
application prevent a negative incident from occurring, many in-home service providers are
leveraging employee ensure the safety of the public as it provide background information of
the service provider. Hence therefore there is a need of better methodologies for providing in-
home services.
1.6 OBJECTIVES
➢ The main objective of this application is to help users to easily obtain home based
services in less time.
CHAPTER 2
LITERATURE SURVEY
CHAPTER 2
LITERATURE SURVEY
Disadvantages:
• Searching for a service provider for home based services is currently a difficult
task.
• There is no application where users can easily get information or contact details
of the home based service providers.
The proposed work is an all all-in-one help application that can be used to hire services to your
doorstep for any kind of help related to plumbing, repairing, maintenance, mechanic, medical,
and everything else. The application acts as an Handyman Services based model. When the
user requests the application for details of the required service men, the application connects
with the respective service men and provides the details of the nearby service men. For
example, if user needs details of a plumber and requests the application, the application
provides the details of the plumbers who are present in the nearby location.
Advantages:
• This application helps the users to easily get contact details of the service
providers for home services.
• The service provider can easily locate the house of the user as he will be
provided the exact location details of the house.
▪ Simple
▪ Architecture neutral
▪ Object oriented
▪ Portable
▪ Distributed
▪ High performance
▪ Interpreted
▪ Multithreaded
▪ Robust
▪ Dynamic
▪ Secure
With most programming languages, you either compile or interpret a program so that you can
run it on your computer. The Java programming language is unusual in that a program is both
compiled and interpreted. With the compiler, first you translate a program into an intermediate
language called Java byte codes —the platform-independent codes interpreted by the
interpreter on the Java platform. The interpreter parses and runs each Java byte code instruction
on the computer. Compilation happens just once; interpretation occurs each time the program
is executed. The following figure illustrates how this works.
You can think of Java byte codes as the machine code instructions for the Java Virtual
Machine (Java VM). Every Java interpreter, whether it’s a development tool or a Web browser
that can run applets, is an implementation of the Java VM. Java byte codes help make “write
once, run anywhere” possible. You can compile your program into byte codes on any platform
that has a Java compiler. The byte codes can then be run on any implementation of the Java
VM. That means that as long as a computer has a Java VM, the same program written in the
Java programming language can run on Windows 2000, a Solaris workstation, or on an iMac.
A platform is the hardware or software environment in which a program runs. We’ve already
mentioned some of the most popular platforms like Windows 2000, Linux, Solaris, and Mac
OS. Most platforms can be described as a combination of the operating system and hardware.
The Java platform differs from most other platforms in that it’s a software-only platform that
runs on top of other hardware-based platforms.
The Java platform has two components:
• The Java Virtual Machine (Java VM)
The Java API is a large collection of ready-made software components that provide many
useful capabilities, such as graphical user interface (GUI) widgets. The Java API is grouped
into libraries of related classes and interfaces; these libraries are known as packages. The next
section, What Can Java Technology Do? Highlights what functionality some of the packages
in the Java API provide.
The following figure depicts a program that’s running on the Java platform. As the figure
shows, the Java API and the virtual machine insulate the program from the hardware.
• The essentials: Objects, strings, threads, numbers, input and output, data
structures, system properties, date and time, and so on.
• Internationalization: Help for writing programs that can be localized for users
worldwide..
• Security: Both low level and high level, including electronic signatures, public
and private key management, access control, and certificates.
TM
• Software components: Known as JavaBeans , can plug into existing
component architectures.
Swings
After learning AWT, lets now see what's Swing? Well, Swing is important to develop Java
programs with a graphical user interface (GUI). There are many components which are used
for the building of GUI in Swing. The Swing Toolkit consists of many components for the
building of GUI. These components are also helpful in providing interactivity to Java
applications. Following are components which are included in Swing toolkit:
• list controls
• buttons
• labels
• tree controls
• table controls
All AWT flexible components can be handled by the Java Swing. Swing toolkit contains far
more components than the simple component toolkit. It is unique to any other toolkit in the
way that it supports integrated internationalization,a highly customizable text package,
rich undo support etc. Not only this you can also create your own look and feel using Swing
other than the ones that are supported by it. The customized look and feel can be created using
Synth which is specially designed. Not to forget that Swing also contains the basic user
interface such as customizable painting, event handling, drag and drop etc.
2.2.2 ANDROID
Android is a buzzword which change the smartphone view from past few years. It holds the
largest part of the smartphone world and which is growing larger and larger every day. Figure
2.2 shows the logo of Android Operating System.
Android is an operating system based on the Linux kernel, and designed primarily for
touchscreen mobile devices such as smartphones and tablet computers. Initially developed by
Android, Inc., which Google backed financially and later bought in 2005, android was unveiled
in 2007 along with the founding of the Open Handset Alliance a consortium of hardware,
software, and telecommunication companies devoted to advancing open standards for mobile
devices. The user interface of Android is based on direct manipulation, using touch inputs that
loosely correspond to real world actions, like swiping, tapping, pinching and reverse pinching
to manipulate on-screen objects. Internal hardware such as accelerometers, gyroscopes and
proximity sensors are used by some applications to respond to additional user actions, for
example adjusting the screen from portrait to landscape depending on how the device is
oriented. Android allows users to customize their home screens with shortcuts to applications
and widgets, which allow users to display live content, such as emails and weather information,
directly on the home screen. Applications can further send notifications to the user to inform
them of relevant information, such as new emails and text messages.
Android is popular with technology companies which require a ready-made, low-cost and
customizable operating system for high-tech devices. Despite being primarily designed for
phones and tablets, it also has been used in televisions, games consoles, digital cameras and
other electronics. Android's open nature has encouraged a large community of developers and
enthusiasts to use the open-source code as a foundation for community driven projects, which
add new features for advanced users or bring Android to devices which were officially released
running other operating systems.
As of May 2012, Android became the most popular mobile OS, having the largest installed
base, and is a market leader in most countries including the United States; there it has had the
highest installed base of mobile phones for years. In the third quarter of 2013, Androids share
of the global smartphone shipment market led by Samsung products was 81.3%, the highest
ever. Android's Linux kernel has further architecture changes by Google outside the typical
Linux kernel development cycle. Certain features that Google contributed back to the Linux
kernel, notably a power management feature called wakelocks, were rejected by mainline
kernel developers partly because they felt that Google did not show any intent to maintain its
own code.
Google announced in April 2010 that they would hire two employees to work with the Linux
kernel community, but Greg Kroah-Hartman, the current Linux kernel maintainer for the stable
branch, said in December 2010 that he was concerned that Google was no longer trying to get
their code changes included in mainstream Linux. Some Google Android developers hinted
that the Android team was getting fed up with the process, because they were a small team and
had more urgent work to do on Android.
Android software development is the process by which new applications are created for the
Android operating system. Applications are usually developed in the Java programming
language using the Android Software Development Kit, but other development tools are
available.
The Android Software Development Kit (Android SDK) provides all necessary tools to
develop Android applications. This includes a compiler, debugger and a device emulator, as
well as its own virtual machine to run Android programs.The Android SDK includes a mobile
device emulator, a virtual mobile device that runs on your computer. The emulator lets you
develop and test Android applications without using a physical device.
Enhancements to Android's SDK go hand in hand with the overall Android platform
development. The SDK also supports older versions of the Android platform in case developers
wish to target their applications at older devices. Development tools are downloadable
components, so after one has downloaded the latest version and platform, older platforms and
tools can also be downloaded for compatibility testing.
CHAPTER 3
SYSTEM ANALYSIS
CHAPTER 3
SYSTEM ANALYSIS
In the existing system, if users need to hire someone for their home based services (like
plumbing, repairing, maintenance, mechanic, medical, etc. they have to search for their contact
numbers. Users have to contact others to get details about the service men. This is difficult and
time consuming.
• Searching for a service provider for home based services is currently a difficult task.
• There is no application where users can easily get information or contact details of the
home based service providers.
The proposed work is an all all-in-one help application that can be used to hire services to your
doorstep for any kind of help related to plumbing, repairing, maintenance, mechanic, medical,
and everything else. The application acts as an Handyman Services based model. When the
user requests the application for details of the required service men, the application connects
with the respective service men and provides the details of the nearby service men. For
example, if user needs details of a plumber and requests the application, the application
provides the details of the plumbers who are present in the nearby location
• This application helps the users to easily get contact details of the service providers for
home services.
• The service provider can easily locate the house of the user as he will be provided the
exact location details of the house.
Feasibility studies aim to objectively and rationally uncover the strengths and weaknesses of
the existing business or proposed venture, opportunities and threats as presented by
the environment, the resources required to carry through, and ultimately the prospects for
success.
▪ Economic feasibility
▪ Technical feasibility
▪ Social feasibility
When the economic feasibility of the water quality monitoring on IOT technologyproject being
developed it was found that the income for the administrator (water department or CPCB)
through the proposed system (water quality monitoring system) was more than the
development cost of the system (investment). The proposed system only invests on the censors,
arduino and hardware. Proposed system reduce the manual work and laboratory work to check
the quality of water by reducing the investment compare to existing system.Thus the proposed
project is economically feasible.
The system provides attractive and easy graphical user interface. The application is designed
in a better manner and user friendly and thus the system is easily accessible.
The existing system has more disadvantages on monitoring quality of water like laboratory can
change readings, manual work is more, and time lapse so by proposed system the operation
will be online and water quality monitoring is done in real time will eradicate the disadvantages
of existing system.Therefore the project is operationally feasible.
To develop this water quality monitoring system one should have the knowledge of visual
studio framework, winforms.NET 4.0, C#, asp.net, MY SQL server, JAVA. From the user
prospective it just requires a UI as WINFORMS and an efficient internet connection. This
makes the project technically feasible
CHAPTER 4
SYSTEM REQUIREMENT
SPECIFICATION
CHAPTER 4
4.1 INTRODUCTION
Requirement analysis is basically an understanding end user or target customers system
requirement prior to any actual design or development work. Good requirement analysis
practices reduce project risk and help the project running smoothly. Requirements are a
description of how a system should behave or a description of system properties or attributes.
The hardware interface involves defining the optimal characteristics of the hardware such that
any software that is built over it will execute successfully. Software requirement specification
is an official statement of what is required for the system developers. It is a detailed, precise
description of the system requirements, which acts as a basis for the contract between client
and software developers.
Software requirement specification establishes the basis for an agreement between customers
and contractors or suppliers (in market driven projects, these roles may be played by the
marketing and development divisions) on what the software product is to do as well as what it
is not expected to do. Software requirements specification permits a rigorous assessment of
requirements before design can begin and reduces later redesign. It should also provide a
realistic basis for estimating product costs, risks and schedules.
The software requirement specification document enlists enough and necessary requirements
that are required for the project development. To derive the requirements we need to have
clear and thorough understanding of the products to be developed or being developed. This is
achieved and refined with detailed and continuous communications with project team and
customer till the completion of the software.
A functional requirement document defines the functionality of a system or one of its subsystems. It
also depends upon the type of software, expected users and the type of system where the software
is used .Functional user requirements may be high-level statements of what the system should do but
functional system requirements should also describe clearly about the system services in detail.
1 Admin
2 User
3 Service provider
Admin:
User:
Service Provider:
Non-functional requirements are constraints that must be adhered to during development. They
limit what resources can be used and set bounds on aspects of the software’s quality. One of
the most important things about non-functional requirements is to make them verifiable. The
verification is normally done by measuring various aspects of the system and seeing if the
measurements confirm to the requirements.
Usability
Efficiency
▪ Our application takes less time to accomplish a particular task such as placing
orders which also reduces time complexity.
Reliability
▪ The application provides many modules and each module is developed satisfy
the non-functional requirements of the customers.
Maintainability
To be used efficiently, all computer software needs certain hardware components or other
software resources to be present on a computer. These prerequisites are known as
(computer) system requirements and are often used as a guideline as opposed to an absolute
rule. Most software defines two sets of system requirements: minimum and recommended.
With increasing demand for higher processing power and resources in newer versions of
software, system requirements tend to increase over time. Industry analysts suggest that this
trend plays a bigger part in driving upgrades to existing computer systems than technological
advancements. A second meaning of the term of System requirements is a generalization of
this first definition, giving the requirements to be met in the design of a system or sub-system.
Typically an organization starts with a set of Business requirements and then derives the
System requirements from there.
RAM : 8GB
API level : 15 to 25
CHAPTER 5
SYSTEM DESIGN
CHAPTER 5
SYSTEM DESIGN
Design process is nothing but the representation of the systems, or is a process of producing a
mode which will be used to develop or build the system. The input for the design process is the
SRS and output is “Design of proposed system”, while the SRS is entirely in the problem
domain, design is the step in moving from problem domain to the final solution for satisfying
the requirements. Thus it is essentially a blue for a solution for the system.
Software design sites as the technical kernel of the software engineering process and is applied
regardless of the development that is used. Once the software requirements are specified,
software design is the first of three technical activities design, coding and testing.
System design deals with transforming the customer requirements as described in the SRS
document into a form that is implemented using a programming language.
➢ Interface among the different modules identifies the call relationship and data
invocation relationship among modules.
System architecture gives an overall idea of how the software utilizes various services. The
data’s from the sensors dump to cloud and CPCB will access the data, monitor the quality of
water and take respective actions
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 diagrams. They are symbols that represent
data source, data flows, and data transformations and data storage. The points at which data are
transformed are represented by enclosed figures, usually circles, which are called nodes.
Symbol Name
Entity
Data flow
Process
An important part of the Unified Modelling Language (UML) is the facilities for drawing use
case diagrams. Use cases are used during the analysis phase of a project to identify and partition
system functionality. They separate the system into actors and use cases.
Symbol Name
Actor
Association
System
System
LOGIN
AUTHORIZE
SERVICE
PROVIDER
CHANGE
PASSWORD
ADMIN
LOGOUT
System
Login
Register
Edit Profile
View Request
Change Password
Logout
System
LOGIN
REGISTER
EDIT PROFILE
SEARCH FOR
SERVICES
LOGOUT
CHAPTER 6
IMPLEMENTATION
CHAPTER 6
IMPLEMENTATION
Software design sits at the technical kernel of the software engineering process and is applied
regardless of the development paradigm and area of application. Design is the first step in the
development phase for any engineered product or system. The designer’s goal is to produce a
model or representation of an entity that will later be built. Beginning, once system requirement
have been specified and analyzed, system design is the first of the three technical activities -
design, code and test that is required to build and verify software.
The importance can be stated with a single word “Quality”. Design is the place where quality
is fostered in software development. Design provides us with representations of software that
can assess for quality. Design is the only way that we can accurately translate a customer’s
view into a finished software product or system. Software design serves as a foundation for all
the software engineering steps that follow. Without a strong design we risk building an unstable
system – one that will be difficult to test, one whose quality cannot be assessed until the last
stage.
During design, progressive refinement of data structure, program structure, and procedural
details are developed reviewed and documented. System design can be viewed from either
technical or project management perspective. From the technical point of view, design is
comprised of four activities – architectural design, data structure design, interface design and
procedural design. The most creative and challenging face of the system development is
System Design. It provides the understanding and procedural details necessary for
implementing the system recommended in the feasibility study. Design goes through the logical
and physical stages of development.[27]
In designing a new system, the system analyst must have a clear understanding of the
objectives, which the design is aiming to full fill. The first step is to determine how the output
is to be produced and in what format. Second, input data and master files have to be designed
to meet the requirements of the proposed output. The operational phases are
process of applying various techniques and principles for defining a device, a process or a
system in sufficient detail to permit its physical realization. Thus system design is a solution
to “how to” approach to the creation of a new system. Thus, important phase provides the
understanding and the procedural details necessary for implementing the system
recommended in the feasibility study. The design step provides a data design, architectural
design, and a procedural design.
The system development life cycle (SDLC), also referred to as the application development
life cycle, is a term used in software engineering, information systems and software
engineering to describe a process for planning, creating, testing and deploying an information
system. The system development life cycle concept applies to a range of hardware and
software configuration, as a system can be composed of hardware only, software only, or a
combination of both.
To manage this, a number of system development life cycle (SDLC) models have been
created: waterfall, fountain and spiral, build and fix, rapid prototyping, incremental and
synchronize and stabilize. The oldest of these and the best known, is the water fall: a sequence
of stages in which the output of each stage becomes the input for next. This stage can be
characterized and divided up in different ways, including the following:
• Integration and testing: Brings all the pieces together into a special testing
environment, then checks for errors, bugs and interoperability.
According to software Engineering the approach adopted to develop this project is the iterative
waterfall model. The iterative waterfall model is the systematic approach that begins at the
feasibility study phase and progress through analysis, design, coding, testing, integration and
maintenance. Feedback paths are there in each phase to its preceding phase as show in the Fig
4.1 waterfall model to allow the correction of the errors committed during a phase that are
detected in later phase.
CHAPTER 7
SYSTEM TESTING
CHAPTER 7
SYSTEM TESTING
Software testing is performed to verify that the completed software package functions
according to the expectations defined by the requirements/specifications. The overall objective
is not to find every software bug that exists, but to uncover situations that could negatively
impact the customer, usability and/or maintainability.
▪ Finding defects which may get created by the programmer while developing
the software.
▪ To prevent defects.
▪ To make sure that the end result meets the business and user requirements.
This method is named so because the software program, in the eyes of the tester, is like a
white/transparent box; inside which one clearly sees. Internal software and code working
should be known for this type of testing. Tests are based on coverage of code statements,
branches, paths, conditions. Also known as structural testing and Glass box Testing.
Internal system design is not considered in this type of testing. Tests are based on requirements
and functionality. This method is named so because the software program, in the eyes of the
tester, is like a black box; inside which one cannot see. Black box testing is a testing technique
that ignores the internal mechanism of the system and focuses on the output generated against
any input and execution of the system. It is also called functional testing.
Unit Testing is a level of the software testing process where individual units/components
of a software/system are tested. The purpose is to validate that each unit of the software
performs as designed.
Integration Testing is a level of the software testing process where individual units are
combined and tested as a group. The purpose of this level of testing is to expose faults in the
interaction between integrated units.
System Testing is a level of the software testing process where a complete, integrated
system/software is tested. The purpose of this test is to evaluate the system’s compliance with
the specified requirements. System Testing is a level of the software testing process where a
complete, integrated system/software is tested.
Acceptance Testing is a level of the software testing process where a system is tested for
acceptability. The purpose of this test is to evaluate the system’s compliance with the business
requirements and assess whether it is acceptable for delivery.
Acceptance testing or User Acceptance Testing (UAT) is a level of the software testing process
where a system is tested for acceptability. The purpose of this test is to evaluate the system’s
compliance with the business requirements and assess whether it is acceptable for delivery.
User Acceptance Testing (UAT) is performed by Users or on behalf of the users to ensure that
the Software functions in accordance with the Business Requirement Document. UAT focuses
on the following aspects:
• All functional requirements are satisfied.
• All performance requirements are achieved.
• Other requirements like transportability, compatibility, error recovery etc. are
satisfied.
• Acceptance criteria specified by the user is met.
The purpose of regression testing is to confirm that a recent program or code change has not
adversely affected existing features. Regression testing is nothing but full or partial selection
of already executed test cases which are re-executed to ensure existing functionalities work
fine. This testing is done to make sure that new code changes should not have side effects on
the existing functionalities. It ensures that old code still works once the new code changes are
done.
Regression testing is the process of testing changes to computer programs to make sure that
the older programming still works with the new changes. Regression testing is a normal part
of the program development process and, in larger companies, is done by code testing
specialists Before a new version of a software product is released, the old test cases are run
against the new version to make sure that all the old capabilities still work. The reason they
might not work is because changing or adding new code to a program can easily introduce
errors into code that is not intended to be changed.
All the test cases mentioned above passed successfully. No defects encountered.
CHAPTER 8
SYSTEM SCREENSHOT
CHAPTER 9
CONCLUSION AND FUTURE
ENHANCEMENT
CHAPTER 10
10.1 CONCLUSION
The proposed paper shows the flow, structure and working of the handy man system. is user
friendly i.e. easy to use. It is free of cost on android store. Thus , it is time a time saving as well
as cost efficient application. So , we can conclude that the proposed system can be used to
reduce human efforts and luxuriate human lives, hand in hand, with the modern technology
“Platform based Handyman Services” is a customized Mobile Application which uses the state
of the art technologies like Android SDK (Software Development Kit), Eclipse, Java and
MySQL used for Android Application Development. This application provides domestic home
services where users can be served for electrical services, International Journal of Computer
Applications (0975 – 8887) Volume 148 – No.6, August 2016 plumbing services and carpentry
services. Unlike the existing “FacilityKart” application, this application uses GPS to fetch the
users’ location and assigns nearest service provider from his existing location dynamically.
Thus this application seems to be more dynamic, effective and efficient than the existing system
This application can be further enhanced by allowing the users of the application to drag and
drop to another location on the maps. This facility can be used by the user in case if the user
wants the service request to be accomplished at another location than his current location. For
this there is a need to integrate the maps into this application. Another useful enhancement can
be made by providing more service types to the user. Lastly, since this application is built only
for the Android users, this application can also be implemented for other platform like iOS and
Windows.
CHAPTER 11
BIBLIOGRAPHY
[2] “A public safety application of GPS-enabled smartphones and the android operating
system”-Systems, Man and Cybernetics, 2009. SMC 2009. IEEE International
Conference-Whipple, J.Inf. Syst. Eng. Dept., Southwest Res. Inst., San Antonio, TX,
USA Arensman, W. ;Boler, M.S.
[4] “An improvement of the shortest path algorithm based on Dijkstra algorithm“Computer
and Automation Engineering (ICCAE), 2010 The 2nd International Conference on
(Volume:2 ). Ji-xian Xiao Coll. of Sci., Hebei Polytech. Univ., Tangshan, China Fang-
Ling Lu.
[5] “Developing anAndroid based learning application for mobile devices”, Telematics and
Information Systems (EATIS), 2012 6th Euro American Conference, de Clunie,
G.T.Fac. de Ing. de Sist., Computacionales, Univ. Tecnol. de Panama, Panama City,
Panama Serrao, T. ; Monteiro Braz, J.R.-. Serr o, T. Rangel, N. Castillo, A. G mez, B.
Rodrguez, . de Barraza, . Riley, J.
• http://programmingbydoing.com/
• http://stackoverflow.com/questions/tagged/java
• https://www.javacodegeeks.com/
• http://funprogramming.org/
• http://www.vogella.com/android.html
• http://mylifewithandroid.blogspot.ca/
• http://www.technotalkative.com/android/
• https://thenewcircle.com/s/post/1017/android_bootcamp_series_2012_video_tutorial
• http://www.lynda.com/Mobile-training-tutorials/55-0.html?utm_medium=ldc-
partner&utm_source=SSPRC&utm_content=10848&utm_campaign=CD15021&bid=
10848&aid=CD15021