0% found this document useful (0 votes)
40 views56 pages

Vinit File

The document provides an introduction and overview of the technologies used to develop a Helper Android application. It discusses Android, Java, XML and features of Android such as connectivity, media support, messaging, web browsing, multi-touch etc. It also provides introduction to Java and describes it as a simple, object-oriented programming language.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views56 pages

Vinit File

The document provides an introduction and overview of the technologies used to develop a Helper Android application. It discusses Android, Java, XML and features of Android such as connectivity, media support, messaging, web browsing, multi-touch etc. It also provides introduction to Java and describes it as a simple, object-oriented programming language.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 56

A SUMMER TRAINING REPORT

On
Helper app: Android Application

Submitted by

Vinit Kumar Rathore

The Study Hall College

Affiliated to

University of Lucknow

Course

Bachelors in Computer Application

Roll Number

202410040013

2022-2023

Page i
Certificate

Page ii
Acknowledgement

A summer project is a golden opportunity for learning and self-development. I consider myself
very lucky and honoured to have so many wonderful people lead me through in completion of
this project

The training opportunity I had with MSCC. was a great chance for learning and professional
development. Therefore, I consider myself as a very lucky individual as I was provided with an
opportunity to be a part of it. I am also grateful for having a chance to meet so many wonderful
people and professionals who led me though this trainingperiod.

Bearing in mind previous I am using this opportunity to express my deepest gratitude and
special thanks to the Mr. Mohit Tondon who in spite of being extraordinarily busy with his
duties, took time out to hear, guide and keep me on the correct path and allowing me to carry
out my project at their esteemed organization and extending during the training.

I express my deepest thanks to Mrs. Rakhi Tondon for taking part in useful decision & giving
necessary advices and guidance and arranged all facilities to make life easier. I choose this
moment to acknowledge his contribution gratefully.

It gives me great pleasure to express my gratitude and heart full thanks to all those who helped
me in completing this project successfully. Big thanks to the respected Dr. Neha Mahendra
head of department, for her constant support and guidance throughout the project. Her
dynamism, vision, sincerity, and motivation inspired us deeply. I would like to express my deep
and sincere gratitude to my project guide, Mr. Rohit Dixit who always encouraged and helped
me to make this project. I would also like to extend my heartfelt thanks towards my family and
friends for always being there as a firm pillar and also for being the best critic and support.

Vinit Kumar Rathore

Page
iii
Preface

The report has been prepared as part of my training project. In the Helper app we can get all
professionals in their field so we can connect or chat with them for their concern and help that is
purpose of helper. We can call the professionals for their more help.

Helper is generally a Android real-time chat application. A android real-time chat application
(Helper) makes it easy to communicate with people anywhere in the world by sending and
receiving messages in real time. With the help of firebase database or other databases.

In the application we can add multiple user for providing their professions, name, email,
password, mobile number.

To start Helper Android application users should get connected to internet where they can get
the chats and users disired information.

Vinit Kumar Rathore

Page iv
Contents

Certificate ........................................................................................................... ii

Acknowledgement .............................................................................................iii

Preface ............................................................................................................... iv

Introduction and Features of the Technology .................................................. 1

Introduction Of Project ................................................................................... 9

Objective and Scope of Project ........................................................................ 10

Feasibility Study ............................................................................................... 11

System Planning .............................................................................................. 12

Methodology Adopted...................................................................................... 14

System Implementation ................................................................................... 20

Hardware And Software Requirements ......................................................... 21

System Design................................................................................................... 22

Database Table Structure ................................................................................ 23

ER Diagram ..................................................................................................... 25

Data Flow Diagram .......................................................................................... 26

Logo of the application .................................................................................... 30

Testing .............................................................................................................. 35

Implementation ................................................................................................ 41

Future Scope .................................................................................................... 50

Reference .......................................................................................................... 50

Page v
Introduction and Features of the Technology

I would like introduce the technologies which are being used in this project.

 Android
 Java
 Xml
The above mentioned technologies are used in developing this android app. The
introduction and features of th technologies are as follows:-

Android

Android is an open source and Linux-based Operating System for mobile devices
such as smartphones and tablet computers. Android was developed by the Open
Handset Alliance, led by Google, and other companies.

Android offers a unified approach to application development for mobile devices


which means developers need only develop for Android, and their applications
should be able to run on different devices powered by Android.

The first beta version of the Android Software Development Kit (SDK) was released
by Google in 2007 where as the first commercial version, Android 1.0, was released
in September 2008.

On June 27, 2012, at the Google I/O conference, Google announced the next
Android version, 4.1 Jelly Bean. Jelly Bean is an incremental update, with the
primary aim of improving the user interface, both in terms of functionality and
performance.

The source code for Android is available under free and open source software
licenses. Google publishes most of the code under the Apache License version 2.0

Page 1
and the rest, Linux kernel changes, under the GNU GeneralPublic License version 2.

Benefits of Android app Development

● High ROI with Lower Costs. One of the key advantages of Android app
development is the easy availability of the Android SDK..

● Faster Deployment

● Target Multiple Platforms

● Versatility and Scalability

● Enhanced security

● Customization

● Android is open source

● Customizable UI

● Android apps easily gets approved

● Android apps are completely secured

Features of Android

Android is a powerful operating system competing with Apple 4GS and supports
great features. Few of themare listed below –

Sr Feature & Description

no.

Beautiful UI
1.
Android OS basic screen provides a beautiful and intuitive user interface.

Page 2
Connectivity
2.
GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE,
NFC

and WiMAX.

Media support
3.
H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1,
MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP.

Messaging
4.
SMS and MMS

Web browser
5.
Based on the open-source WebKit layout engine, coupled with Chrome's V8
JavaScript engine supporting HTML5 and CSS3.

Multi-touch
6.
Android has native support for multi-touch which was initially made available
in handsets such as the HTC Hero.

Page 3
7. Multi-tasking

User can jump from one task to another and same time various application can
run simultaneously

Resizable widgets
8.
Widgets are resizable, so users can expand them to show more content or
shrink them to save space.

Multi-Language
9.

Supports single direction and bi-directional text.

GCM
10.
Google Cloud Messaging (GCM) is a service that lets developers send short
message data to their users on Android devices, without needing a proprietary
sync solution.

Wi-Fi Direct
11.
A technology that lets apps discover and pair directly, over a high-bandwidth
peer-to-peer connection.

Android Beam
12.
A popular NFC-based technology that lets users instantly share, just by
touching two NFC-enabled phones together.

Page 4
Storage
13. SQLite, a lightweight relational database, is used for data storage purposes.

Java

JAVA was developed by James Gosling at Sun Microsystems Inc in the


year 1995, later acquired by Oracle Corporation. It is a simple programming
language. Java makes writing, compiling, and debugging programming easy. It
helps to create reusable code and modular programs. Java is a class-based, object-
oriented programming language and is designed to have as few implementation
dependencies as possible. A general-purpose programming language made for
developers to write once run anywhere that is compiled Java code can run on all
platforms that support Java. Java applications are compiled to byte code that can run
on any Java Virtual Machine. The syntax of Java is similar to c/c++.

Java Terminology
Before learning Java, one must be familiar with these common terms of Java.

1. Java Virtual Machine(JVM): This is generally referred to as JVM. There are


three execution phases of a program. They are written, compile and run the program.
 Writing a program is done by a java programmer like you and me.
 The compilation is done by the JAVAC compiler which is a primary Java
compiler included in the Java development kit (JDK). It takes the Java program
as input and generates bytecode as output.
 In the Running phase of a program, JVM executes the bytecode generated by the
compiler.

Page 5
Now, we understood that the function of Java Virtual Machine is to execute the
bytecode produced by the compiler. Every Operating System has a different JVM
but the output they produce after the execution of bytecode is the same across all the
operating systems. This is why Java is known as a platform-independent
language.
2. Bytecode in the Development process: As discussed, the Javac compiler of JDK
compiles the java source code into bytecode so that it can be executed by JVM. It is
saved as .class file by the compiler. To view the bytecode, a disassembler
like javap can be used.
3. Java Development Kit(JDK): While we were using the term JDK when we learn
about bytecode and JVM. So, as the name suggests, it is a complete Java
development kit that includes everything including compiler, Java Runtime
Environment (JRE), java debuggers, java docs, etc. For the program to execute in
java, we need to install JDK on our computer in order to create, compile and run the
java program.
4. Java Runtime Environment (JRE): JDK includes JRE. JRE installation on our
computers allows the java program to run, however, we cannot compile it. JRE
includes a browser, JVM, applet supports, and plugins. For running the java
program, a computer needs JRE.
5. Garbage Collector: In Java, programmers can’t delete the objects. To delete or
recollect that memory JVM has a program called Garbage Collector. Garbage
Collectors can recollect the objects that are not referenced. So Java makes the life of
a programmer easy by handling memory management. However, programmers
should be careful about their code whether they are using objects that have been
used for a long time. Because Garbage cannot recover the memory of objects being
referenced.
6. ClassPath: The classpath is the file path where the java runtime and Java
compiler look for .class files to load. By default, JDK provides many libraries. If
you want to include external libraries they should be added to the classpath.

Features of Java

Page 6
1. Platform Independent: Compiler converts source code to bytecode and then the
JVM executes the bytecode generated by the compiler. This bytecode can run on
any platform be it Windows, Linux, or macOS which means if we compile a
program on Windows, then we can run it on Linux and vice versa. Each operating
system has a different JVM, but the output produced by all the OS is the same after
the execution of bytecode. That is why we call java a platform-independent
language.
2. Object-Oriented Programming Language: Organizing the program in the
terms of collection of objects is a way of object-oriented programming, each of
which represents an instance of the class.
The four main concepts of Object-Oriented programming are:

 Abstraction
 Encapsulation
 Inheritance
 Polymorphism
3. Simple: Java is one of the simple languages as it does not have complex features
like pointers, operator overloading, multiple inheritances, and Explicit memory
allocation.
4. Robust: Java language is robust which means reliable. It is developed in such a
way that it puts a lot of effort into checking errors as early as possible, that is why
the java compiler is able to detect even those errors that are not easy to detect by
another programming language. The main features of java that make it robust are
garbage collection, Exception Handling, and memory allocation.
5. Secure: In java, we don’t have pointers, so we cannot access out-of-bound arrays
i.e it shows ArrayIndexOutOfBound Exception if we try to do so. That’s why
several security flaws like stack corruption or buffer overflow are impossible to
exploit in Java. Also java programs run in an environment that is independent of the
os(operating system) environment which makes java programs more secure .
6. Distributed: We can create distributed applications using the java programming
language. Remote Method Invocation and Enterprise Java Beans are used for
creating distributed applications in java. The java programs can be easily distributed

Page 7
on one or more systems that are connected to each other through an internet
connection.
7. Multithreading: Java supports multithreading. It is a Java feature that allows
concurrent execution of two or more parts of a program for maximum utilization of
the CPU.
8. Portable: As we know, java code written on one machine can be run on another
machine. The platform-independent feature of java in which its platform-
independent bytecode can be taken to any platform for execution makes java
portable.
9. High Performance: Java architecture is defined in such a way that it reduces
overhead during the runtime and at some time java uses Just In Time (JIT) compiler
where the compiler compiles code on-demand basics where it only compiles those
methods that are called making applications to execute faster.
10. Dynamic flexibility: Java being completely object-oriented gives us the
flexibility to add classes, new methods to existing classes and even create new
classes through sub-classes. Java even supports functions written in other languages
such as C, C++ which are referred to as native methods.
11. Sandbox Execution: Java programs run in a separate space that allows user to
execute their applications without affecting the underlying system with help of a
bytecode verifier. Bytecode verifier also provides additional security as its role is to
check the code for any violation of access.
12. Write Once Run Anywhere: As discussed above java application generates a
‘.class’ file which corresponds to our applications(program) but contains code in
binary format. It provides ease t architecture-neutral ease as bytecode is not
dependent on any machine architecture. It is the primary reason java is used in the
enterprising IT industry globally worldwide.
13. Power of compilation and interpretation: Most languages are designed with
purpose either they are compiled language or they are interpreted language. But java
integrates arising enormous power as Java compiler compiles the source code to
bytecode and JVM executes this bytecode to machine OS-dependent executable
code.

Page 8
XML

Extensible Markup Language (XML) is a markup language that defines a set of


rules for encoding documents in a format that is both human-readable and machine-
readable. The design goals of XML focus on simplicity, generality, and usability
across the Internet. It is a textual data format with strong support via Unicode for
different human languages. Although the design of XML focuses on documents, the
language is widely used for the representation of arbitrary data structures such as
those used in web services.

1. XML stands for extensible Markup Language


2. XML is a markup language like HTML
3. XML is designed to store and transport data
4. XML is designed to be self-descriptive
5. XML is designed to carry data emphasizing on what type of data it is.
XML tags are not predefined like HTML tags.
6. XML provides a framework for defining markup languages.

Introduction Of Project

Mobile applications can be one of the best ways to keep consumers engaged with a
brand as they are on the move. With the increase in demand for smartphones and
efficiency of wireless networks, the demand for mobile applications has increased
incredibly. Android is one of the most popular open source platforms that offer the
developer full access to the framework APIs so as to build innovative applications.
Our Project is “Helper” is an Android Application whichwill work on Smartphones.
Basically, the helper app will give some new trends to our generation people. This
project overall gives the easier way to find the desired people who want a
carpenter for repairing their houses. The main aim of this project is to build an
Android Application to help the homemaker or people who are not able to go
outside for the need of a carpenter, singer, wedding designer and other more
employees who are willing to find work.

Page 9
Helper App is an application designed primarily for use to help people in finding
carpenters orother employees who need work for their survival. This application
needs to first sign up withtheir username, email, profession and password. If you
have already signed up then your data will be stored on the server. So that we don't
need to sign up again and again, all we can do is login with an email or password.
After signing up we will go on the page where we see all the types of people who
are willing to work and their profession. There will be a search bar wherewe can
search for the specific profession and we can also chat with the chat box option and
talk to them easily.

Objective and Scope of Project

Mobile applications can be one of the best ways to keep consumers


engaged with a brand as they are on the move. With the increase in demand
for smartphones andefficiency of wireless networks the demand for mobile
applications has increased incredibly. Android is one of the most popular
open source platforms that offers the developers full access to the
framework APIs so as to build innovative applications

The main aim of this project is to build an Android application that helps
the users to order food from the specified restaurants and according to the
specifiedtastes The main features provided by the Helper application are
as follows:

 Users can sign up and sign in.

 Employees can sign up and sign in.

Page
10
 Provides the searching facilities based on various factors. Such as different
types ofemployees' professions.

 Provides phone number of the professionals.

Scope of project

The Helper app provides the users to access the data of employees who had shared
their data. Different employees shared their different types of data. It needs signup
or login to access thedata of different employees. It has a search bar to search
according to their needs.

Feasibility Study

A feasibility study is a high-level capsule version of the entire System analysis and
Design Process. The study begins by classifying the problem definition. Feasibility
is to determine if it's worth doing. Once an acceptance problem definition has been
generated, the analyst develops a logical model of the system. A search for
alternatives carefully. There are 3 partsto the feasibility study.

1. Operational Feasibility

2. Technical Feasibility

3. Economic Feasibility

Page
11
Operational Feasibility

Operational feasibility is the measure of how well a proposed system solves the
problems, and takes advantage of the opportunities identified during scope
definition and how it satisfies the requirements identified in the requirements
analysis phase of system development.

The operational feasibility assessment focuses on the degree to which the proposed
development project fits in with the existing business environment and objectives
with regard to development schedule, delivery date, corporate culture and existing
business processes.

To ensure success, desired operational outcomes must be imparted during design


and development. These include such design-dependent parameters as reliability,
maintainability, supportability, usability, reducibility, disposability, sustainability,
affordability and others. These parameters are required to be considered at the
early stages of design if desired operational behaviors are to be realized. A system
design and development requires appropriate and timely application of engineering
and management efforts to meet the previously mentioned parameters. A system
may serve its intended purpose most effectively when its technical and operating
characteristics are engineered into the design. Therefore, operational feasibility is a
critical aspect of systems engineering that needs to be an integral part of the ea

System Planning

Project Planning: An example of a software project plan is as follows:

Page
12
1) Within the company: How will the project be implemented? What
are the constraints (in terms of time, money, and personnel)? What
does it mean to havea market strategy?

For a successful software project, the following steps can be


followed:Select a project

• project's aims and objectives are as follows:-

o Understanding specification and requirement


o Methods of analysis, design and implementation
o Testing techniques
o Documentation

• Project milestones and deliverables

• Budget allocation o Exceeding limits within control

• Project estimated cost of time.

Other Specification

Advantages

• It’s fast, easy and comfortable.

• Less hassle for you.

• An online menu is simpler to manage.

• It’s just one click away.

Page
13
Methodology Adopted

Methodology used in this project is WaterFall method

I use this methodology because-:

The Waterfall process is adopted by project managers who are faced with
development projects that:

• Don’t have ambiguous requirements.


• Offer a clear picture of how things will proceed from the outset.
• Have clients who seem unlikely to change the scope of the project once it is
underway.

If a project manager prefers clearly defined processes, where cost, design, and
time requirements are known upfront, then the Waterfall method is the way
to go, as long as the project itself is conducive to those constraints.

About WaterFall model

The waterfall methodology is a project management approach that emphasizes a


linear progression from beginning to end of a project. This methodology, often used
by engineers, is front-loaded to rely on careful planning, detailed documentation, and
consecutive execution.
What is the Waterfall methodology?

The Waterfall methodology — also known as the Waterfall model — is a


sequential development process that flows like a waterfall through all
phases of a project (analysis, design, development, and testing, for
example), with each phase completely wrapping up before the next phase
begins.

Page
14
It is said that the Waterfall methodology follows the adage to “measure
twice, cut once.” The success of the Waterfall method depends on the amount
and quality of the work done on the front end, documenting everything in
advance, including the user interface, user stories, and all the features’
variations and outcomes.

With the majority of the research done upfront, estimates of the time needed for
each requirement are more accurate, and this can provide a more predictable
release date. With a Waterfall project, if parameters change along the way, it’s
harder to changecourse than it is with Agile methodology.

eBook: 20 Experts Share Secrets For Balancing Agile and Waterfall


Whitepaper: The Manager's Guide to Mixing Agile and Waterfall

What is Waterfall software?

Waterfall software helps project managers handle the task. As Waterfalls


are a relatively complex, phased approach, they require close attention and
coordination.

Waterfall software can be desktop or cloud-based. It helps you:


• Structure your processes

• Organize tasks

• Set up Gantt charts and schedules

• Monitor project progress

Page
15
5 common stages in a Waterfall process.

The Waterfall methodology follows a chronological process and works


based on fixed dates, requirements, and outcomes. With this method, the
individual execution teams aren’t required to be in constant communication
and, unless specific integrations are required, are usually self-contained.

Team members also tend to work independently and aren’t expected to


provide status reports as often as with the Agile approach. Usually, one
phase doesn’t begin until the previous one is finished.

Page
16
Using a software development project as an example, the Waterfall process
usuallyincludes stages that look like this:

Requirements.
The Waterfall methodology depends on the belief that all project
requirements can be gathered and understood upfront. The project manager
does their best to get a detailed understanding of the project sponsor’s
requirements. Written requirements, usually contained in a single
document, are used to describe each stage of the project, including the costs,
assumptions, risks, dependencies, success metrics, and timelines for
completion.

Design.

Here, software developers design a technical solution to the problems set out
by the product requirements, including scenarios, layouts, and data models.
First, a higher-level or logical design is created that describes the purpose
and scope of the project, the general traffic flow of each component, and the
integration points. Once this is complete, it is transformed into a physical
design using specific hardware and software technologies.

Implementation.

Once the design is complete, technical implementation starts. This might


be the shortest phase of the Waterfall process because painstaking
research and design have already been done. In this phase, programmers
code applications based on project requirements and specifications, with

Page
17
some testing and implementation taking place as well. If significant
changes are required during this stage, this may mean going back to the
design phase.

Verification or testing.

Before a product can be released to customers, testing needs to be done to


ensure the product has no errors and all of the requirements have been
completed, ensuring a good user experience with the software. The testing
team will turn to the design documents, personas, and user case scenarios
supplied by the product manager to create their test cases.

Deployment and maintenance.

Once the software has been deployed in the market or released to customers,
the maintenance phase begins. As defects are found and change requests
come in from users, a team will be assigned to take care of updates and
release new versions of the software.

Advantages of the Waterfall methodology.

The Waterfall methodology is a straightforward, well-defined project


management methodology with a proven track record. Since the
requirements are clearly laid out from the beginning, each contributor knows
what must be done when, and they can effectively plan their time for the
duration of the project.

Other benefits of the Waterfall method include:

Page
18
• Developers can catch design errors during the analysis and design
stages, helping them to avoid writing faulty code during the
implementation phase.

• The total cost of the project can be accurately estimated, as can


the timeline, after the requirements have been defined.

• With the structured approach, it is easier to measure progress according to


clearly

defined milestones. • Developers who join the project in progress can easily get
up to speed because everything they need to know should be in the requirements
document.

• Customers aren’t always adding new requirements to the project, delaying


production.

Disadvantages of the Waterfall methodology.

Like any development process, the strengths in one area might mean
weaknesses in the other. The Waterfall methodology’s insistence on upfront
project planning and commitment to a certain defined progress means that it
is less flexible, or agile, later in the game. Changes that come further in the
process can be time consuming, painful, and costly.

Other reasons the Waterfall methodology may not work include:

• Projects can take longer to deliver with this chronological approach


than withan iterative one, such as the Agile method.

• Clients often don’t fully know what they want at the front end,
opening the door to requests for changes and new features later in

Page
19
the process when they’re harder to accommodate.

• Clients are not involved in the design and implementation stages.

• Deadline creep — when one phase in the process is delayed, all the other phases are
delayed.

System Implementation

Helper is a Home service provider application. Home service provider app is a


common platform where customers and providers engage with each other.
Customers request for services to providers and providers will give the service
charges to the customers. Helper is the mediator.Helper provides us add serviceman
functionality. By this functionality we will add multiple servicemen for the service,
And after that client can see their profile and choose the most sss appropriate
serviceman, and then the client can chat with the serviceman about their problem.

Software Details

For developing application following are the Software


Requirements:-Operating System: Windows 11
Platform IDE: Android
Studio Database:
Firebase
Debugger: Android Dalvik Debug Monitor service

For running the application the following are the Software Requirements:

Operating System. Android 5.0 or higher


versionsalways

Page
20
Network Wi-Fi Internet or cellular Network 3

Hardware And Software Requirements

Hardware requirements for Server

Processor : Intel Core i5 (or above)


Speed : 3.4 GHz
Ram : 8GB DDR3

HDD : Space : 1TB

Mouse : 3 button scroll


mouse Keyboard : 104
keys keyboard Monitor :
15” color
Screen Resolution : 1024x768 pixels (32/64
bits)Graphics Card : Direct X 7 / 64 MB (or
above) Internet Connection : Any Internet
Network Internet Speed : 3.5 Mbps (or
above)
Network Card : Any Network interface or
modemPrinter : Any Printer (Dot matrix or
Lager)

Software Requirements

Development Environment : Android Studio


Database Used : Microsoft Sql Server 2008
Operating System : Windows 10

Page
21
Hardware requirements for user

Android Smartphone Ram:4gb

Processor speed: 2.4ghz Storage :64gb

Software requirements

Android Version : Lollipop (or Above)

System Design

Preliminary Investigation

The first step in the system development life cycle is the preliminary investigation to
determine the feasibility of the system. The purpose of this phase is to determine the
system requirements in current time. It can be possible to computerize these
processes so that it can be faster and more efficient to manage. Working of this
system described as-

Can make Resume, can be used given some templates, and resume can be
downloaded in the form of PDF.

Requirement Analysis

Requirement analysis is the most important phase in the system development phase
in the system development life cycle. In this phase all the requirements for the
software are determined and document them in a software requirement
specification document. This information is being then use to plan the basic project
approach and conduct feasibility study in economical, technical, operational, areas,

Page
22
In this phase both customer and developer plays an important role in requirement
analysis and specification. Customer mentions all his requirements from the system
and the developer actsas an interrogator and problem solver.

The whole process of developing the software is categorized in the following phases-

1. Planning and requirement analysis

2. Defining requirements

3. Designing product architecture

4. Coding

5. Testing

6. Maintenance

Initially the requirement gathering and documentation performed after the plan has
to be made upon them. Each requirement mentioned in the SRS document so that it
can be verified by theuser. Once all the requirements stated in SRS are approved by
the user the next phase starts in which the architecture of the system is developed
the next phase starts where the actual work of coding is started. After coding of
each module unit testing is performed by the developer. As all types of testing are
done and the system fulfills the requirements of the customer then it is ready to
deploy. As the last maintenance phase continuously occurs until the software exists
in the market.

Database Table Structure

The database schema is the structure of a database described in a formal language

Page
23
supported by the database management system (DBMS). The term "schema" refers
to the organization of data as a blueprint of how the database is constructed
(divided into database tables in the case of relational databases).

Data Structure of Firebase Authentication:-

Data Structure of Firebase Real-time Database:-

Page
24
ER Diagram

o ER model stands for an Entity-Relationship model. It is a high-level data


model. This model is used to define the data elements and relationship for a
specified system.
o It develops a conceptual design for the database. It also develops a very simple
and easy to design view of data.
o In ER modeling, the database structure is portrayed as a diagram called an
entity-relationship diagram.

Page
25
Data Flow Diagram

Introduction

A data flow diagram (DFD) is a visual representation of the information flow


through a process or system. DFDs help you better understand process or system
operation to discover potential problems, improve efficiency, and develop better
processes. They range from simple overviews to complex, granular displays of a
process or system.

i. Types of DFD

Data Flow Diagrams are either Logical or Physical.

● Logical DFD- Thi9s type of DFD concentrates on the system process and
flow of data in the system. For example in a Banking software system, how
data is moved betweendifferent entities.

Page
26
● Physical DFD- This type of DFD shows how the data flow is actually
implemented in the system. It is more specific and close to the
implementation.

ii. DFD Components


DFD can represent Source, destination, storage and flow of data using the
following set ofcomponents-

Data Flow

● Entities- Entities are source and destination of information data. Entities


are represented by a rectangle with their respective names.
● Process- Activities and action taken on the data are represented by Circle or
Round- edged rectangles.
● Data Storage- There are two variants of data storage – it can either be
represented as a rectangle with absence of both smaller sides or as an open-
sided rectangle with only one side missing.

● Data Flow- Movement of data is shown by pointed arrows. Data movement


is shownfrom the base of the arrow as its source towards the head of the
arrow as the destination.
DFD levels

A data flow diagram can dive into progressively more detail by using levels and
layers, zeroing in on a particular piece. DFD levels are numbered 0,1 or 2 and
occasionally go to even Level 3 or beyond. The necessary level of detail depends on
the scope of what you are trying to accomplish.

a. DFD 0.0 level

Page
27
DFD Level 0 is also called a Context Diagram. It’s a basic overview of the whole
system or process being analyzed or modeled. It’s designed to be an at-a-glance
view, showing the system as a single high-level process, with its relationship to
external entities. It should be easily understood by a wide audience, including
stakeholders, business analysts, data analysts and developers.

Zero level DFD

DFD 1 level

DFD Level 1 provides a more detailed breakout of pieces of the Context Level
Diagram. You will highlight the main functions carried out by the system, as you
break down the high- level process of the Context Diagram into its sub processes.

Page
28
Snapshots

Page
29
Logo of the application

Page
30
Flash Screen

Page
31
Login Interface

Page
32
SignUp Interface

Page
33
Helper Interface

Chat Interface

Page
34
Testing
T
Page
35
esting is vital for the success of any software. no system design is ever perfect.Testing
is also carried in two phases. The first phase is during software engineering that is
during the module creation. The second phase is after the

completion of software. This is system testing which verifies that the whole set of
programs hangs together.

Testing Scope:

Software testing is a critical element of software quality assurance and represents the
ultimate review of specification, design and code generation Once source codehas been
generated, software must be tested to uncover and correct as many errors as possible
before delivery to the customer. Our goal is to design a series of test cases that have a
high likelihood of finding errors. That's where software-testing techniques come into
the picture. These techniques provide systematic guidance for designing tests that

1. Exercise the internal logic of software components and

2. Exercise the input and output domains of the program to uncover errors in
program function, behavior and performance.

Testing of the software leads to the uncovering of errors in the software functional and
performance requirements are met. Testing also provides a good indication of software
reliability as software quality as a whole. The results of the different phases of testing
are evaluated and then compared with the expected results. If the errors are uncovered
they are debugged and corrected. A strategy approach to software testing has the
generic

Characteristics:

1. Testing begins at the module level and works "outwards towards the
integration of the entire computer based system.

2. Different testing techniques are appropriate Testing and


D
Page
36
ebugging at different points of time.

3. Testing and Debugging are different activities, but debugging must be


accommodated in the testing, strategy A strategy for the software testing must
accommodated low level tests that are necessary to verify that a small source
code segment is Pertbrining correctly according to the customer's requirements
and that of developer's expectations.

Testing Principle:
Testing is the process used to measure the quality of developed computer software
software is a Process designed to make computer code do what it was designed to do
and that does not do anything unintended. One of the primary causes of poor program
testing is the fact that most programmers begin with a false definition of the term
They might say testing Is the process demonstratingthat errors are not present.

Page
37
1. The purpose of testing is to show that a program performs its intended function
correctly.

2. "Testing is a process of establishing confidence that a program does what it is


supposed to do". This last statement is all based on false primes. At the start of
testing, a program should not be merely tested to show that it works. Rather the
test should start with the assumption that the program contains errors and the goal
is to find as many errors as possible.

White Box Testing

White box testing approaches focus on the program control structure Knowing the
internal working of the program. test can be conducted to ensure that internal
operations are performed According to specification and all internal components have
been exactly exercised It examines the logic of the program by testing everypath of the
program White box testing improves its quality through condition testing winch
attempts to find errors in the following categories:

1. Boolean operator error

2. Boolean variable error

3. Relational operator error

Complexity of test and uncovered error is limited by the constrained scope


established for unit testing The unit test is white box oriented, and the step can be
conducted in parallel for multiple components.

Black Box Testing

Black box testing This approach focuses on the functional requirements of the software
Knowing the specified function that a product has been designed to perform tests can
be conducted that demonstrate each function is fully operationalwhile at the same time
s
Page
38
earching for errors in each function. Black box testing attempts to find errors in the
following categories

1. Incorrect or missing unction

2. Interface errors
AX 124
3. Errors in database and external database access.

Testing involves the various text and invalid entries in the name
text box, trying to fill invalid entries in the flex grid, etc

Page
39
Test Case: N+1 Test Case: MTest
cases
Unit Testing

Sr no Test cases Expected Actual Result


Description Result

1. On load splash Take maximum pass


screen 5 sec
2. On load login Working and pass
page And login
clicking login successfully
button

3. On clicking Sign up page pass


signUp loads in 5 sec
button

4. Load sign up Register new pass


page And user
click on successfully
submit button

5. chatting is message pass


working delivered
successfully

Page
40
Implementation

Implementation is the execution or practice of a plan, a method or any design,


idea,model, specification, standard or policy for doing something. As
such,implementationistheactionthat must follow any preliminary thinking for
somethingto actually happen.

Analyzing
requirementInstallation
Configration
CustomizionTesting
Running
SystemIntegration
Delivery
Makechanges
Wehaveimplementedsomefunctionalityinourprojectsuchas
File Management System

Login
Pageactivity_logi

Page
41
n.xml

<?xmlversion="1.0"encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompatxmlns:an
droid="http://schemas.android.com/apk/res/android"xmlns:a
pp="http://schemas.android.com/apk/res-
auto"xmlns:tools="http://schemas.android.com/tools"android
:layout_width="match_parent"android:layout_height="matc
h_parent"android:background="@drawable/gradien

android:orientation="vertical"
android:padding="20sp"tools:
context=".login"
>

<LinearLayoutandroid:id="@+id/iner_
layout_1"android:layout_width="matc
h_parent"android:layout_height="wrap
_content"android:orientation="vertical
"android:paddingBottom="20sp">

<ImageViewandroid:id="@+id/
image"android:layout_width="2
00sp"android:layout_height="2
00sp"android:layout_gravity="c
enter"
android:src="@drawable/helperlogo"></ImageView>

<TextViewandroid:layout_width="wrap_content"android:layo
ut_height="wrap_content"android:layout_gravity="center"and
roid:fontFamily="serif"android:text="Welcome to
Helper"android:textColor="#F5EA5D31"android:textSize="3
0sp"android:textStyle="bold">

</TextView>

<TextViewandroid:layout_width="wra
p_content"android:layout_height="wra
p_content"android:layout_gravity="cen
ter"android:fontFamily="serif"android:
text="login to
continue."android:textColor="@color/b
lack"android:textSize="25sp"android:te
xtStyle="bold"></TextView>

<LinearLayoutandroid:id="@+id/iner_
layout_2"android:layout_width="matc
h_parent"android:layout_height="matc
h_parent"android:orientation="vertical
"android:paddingBottom="20sp">

<com.google.android.material.textfield.TextInputLayoutandroid:id

Page
42
="@+id/username_layout_id"android:layout_width="match_paren
t"android:layout_height="wrap_content">

<EditTextandroid:id="@
+id/gmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"

android:backgroundTint="#80F6D6CC"android:hint="Gmail"
android:inputType="textWebEmailAddress|text"/>
</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayoutandroid:la
yout_width="match_parent"android:layout_height="wrap_content
"app:passwordToggleEnabled="true"app:passwordToggleTint="#
F5EA5D31">

<EditTextandroid:layout_width="mat
ch_parent"android:layout_height="wra
p_content"android:background="@col
or/white"android:id="@+id/password"

android:backgroundTint="#80F6D6CC"
android:hint="password"android:inputTy
pe="textPassword"/>
</com.google.android.material.textfield.TextInputLayout>

<!-- <Button-->
<!-- android:layout_width="wrap_content"--><!--
android:layout_height="60sp"--><!--
android:backgroundTint="@color/white"--><!--
android:text="forgot password"--><!--
android:textColor="@color/black"--><!--
android:textSize="20sp" />-->

<Buttonandroid:id="@+id/login1_butto
n"android:layout_width="match_parent
"android:layout_height="45sp"android:
backgroundTint="#F5EA5D31"android:
text="login"android:textColor="@color/
black"android:textSize="15sp"android:t
extStyle="bold" />

<Buttonandroid:id="@+id/
resister"
android:layout_width="match_parent"android:l
ayout_height="45sp"android:background="@dr
awable/buttonshape"android:paddingTop="10d
p"android:backgroundTint="@color/orange"and
roid:text="resister"android:textColor="@color/
black"android:textSize="15sp"android:textStyle
="bold" />

Page
43
</LinearLayout>

</LinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat>

Login.java

package

com.example.helperapp2;importandr

oidx.annotation.NonNull;
importandroidx.appcompat.app.AppCompatActivity;

import
android.content.Intent;import
android.os.Bundle;
import
android.renderscript.ScriptGroup;import
android.view.View;
importandroid.widget.Toast;

importcom.example.helperapp2.databinding.ActivityLoginBinding
;importcom.google.android.gms.tasks.OnCompleteListener;import
com.google.android.gms.tasks.Task;
importcom.google.firebase.auth.AuthResult;imp
ortcom.google.firebase.auth.FirebaseAuth;publi
c class login extends AppCompatActivity
{ActivityLoginBinding binding;
FirebaseAuth
mAuth;Stringemail,pas
sword;

@Override
protected void onCreate(Bundle savedInstanceState)
{super.onCreate(savedInstanceState);
binding =
ActivityLoginBinding.inflate(getLayoutInflater());setContent
View(binding.getRoot());getSupportActionBar().hide();

mAuth=FirebaseAuth.getInstance();email
=binding.gmail.getText().toString();
password=binding.password.getText().toString();

Page
44
binding.resister.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewview){
startActivity(newIntent(getApplicationContext(),SignUp.class));

}
});

binding.login1Button.setOnClickListener(new View.OnClickListener()
{@Override
publicvoidonClick(Viewview){
email =
binding.gmail.getText().toString();password=bind
ing.password.getText().toString();

login(email,password);
}
});

}
privatevoidlogin(Stringemail,Stringpassword){

mAuth.signInWithEmailAndPassword(email,password)
.addOnCompleteListener(this,newOnCompleteListener<AuthResult>(){
@Override
publicvoidonComplete(@NonNullTask<AuthResult>task){if(tas
k.isSuccessful()) {
// Sign insuccess, update UIwith the signed-inuser's
informationstartActivity(new
Intent(login.this,HelperInterface.class));Toast.makeText(login.this, "login
successfully",Toast.LENGTH_SHORT).show();
} else{
//Ifsigninfails,displayamessagetotheuser.Toast.
makeText(login.this, "login
Failed",Toast.LENGTH_SHORT).show();
}
}
});

}
}

Sign Up Pageactivity_signup_xml

<?xmlversion="1.0"encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompatxmlns:an
droid="http://schemas.android.com/apk/res/android"xmlns:a
pp="http://schemas.android.com/apk/res-
auto"xmlns:tools="http://schemas.android.com/tools"android
:layout_width="match_parent"android:layout_height="matc

Page
45
h_parent"android:backgroundTint="@color/white"android:p
adding="20sp"
android:orientation="vertical"android:back
ground="@drawable/gradient"tools:context
=".SignUp">

<LinearLayoutandroid:id="@+id/iner_
layout_1"android:layout_width="matc
h_parent"android:layout_height="wrap
_content"android:orientation="vertical
"android:paddingBottom="20sp">

<ImageViewandroid:id="
@+id/image"android:layo
ut_width="200sp"android
:layout_height="150sp"an
droid:layout_gravity="ce
nter"android:src="@draw
able/helperlogo"></Image
View>
<TextViewandroid:layout_width="wra
p_content"android:layout_height="wra
p_content"android:layout_gravity="ce
nter"android:fontFamily="serif"androi
d:text="Signup"android:textColor="#F
5EA5D31"android:textSize="20sp"and
roid:textStyle="bold"/>
<LinearLayoutandroid:id="@+id/iner_
layout_2"android:layout_width="matc
h_parent"android:layout_height="matc
h_parent"android:orientation="vertical
"android:paddingBottom="20sp">

<com.google.android.material.textfield.TextInputLayoutandroid:id
="@+id/username_layout_id"android:layout_width="match_paren
t"android:layout_height="wrap_content">

<EditTextandroid:id="@+id/gmail_L"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:backgroundTint="#80F6D6CC"android:hint=
"Gmail"android:inputType="textWebEmailAddress|tex
t"/>
</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayoutandroid:id
="@+id/password_layout_id"android:layout_width="match_paren
t"android:layout_height="wrap_content"app:passwordToggleEnab
led="true"app:passwordToggleTint="#F5EA5D31">

<EditTextandroid:layout_width="match_pa
rent"android:layout_height="wrap_content"
android:background="@color/white"androi

Page
46
d:id="@+id/password"android:background
Tint="#80F6D6CC"android:hint="password
"android:inputType="textPassword"/>

</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayoutandroid:id
="@+id/password_layout_id1"android:layout_width="match_pare
nt"android:layout_height="wrap_content"app:passwordToggleTint
="#F5EA5D31"><EditTextandroid:layout_width="match_parent"
android:layout_height="wrap_content"android:background="@col
or/white"android:id="@+id/username"android:backgroundTint="#
80F6D6CC"android:hint="username"android:inputType="text"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayoutandroid:id
="@+id/password_layout_id2"android:layout_width="match_pare
nt"android:layout_height="wrap_content"app:passwordToggleTint
="#F5EA5D31">

<EditTextandroid:layout_width="match_pa
rent"android:layout_height="wrap_content"
android:background="@color/white"androi
d:id="@+id/mobile"android:backgroundTin
t="#80F6D6CC"android:hint="profession
"android:inputType="text"/>

</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayoutandroid:id
="@+id/password_layout_id3"android:layout_width="match_pare
nt"android:layout_height="wrap_content"app:passwordToggleTint
="#F5EA5D31">

<EditTextandroid:layout_width="match_pa
rent"android:layout_height="wrap_content"
android:background="@color/white"androi
d:id="@+id/profession"android:background
Tint="#80F6D6CC"android:hint="mobile
number"android:inputType="number"/>

</com.google.android.material.textfield.TextInputLayout>

<Buttonandroid:id="@+id/
resister"
android:layout_width="match_parent"android:l
ayout_height="40dp"android:background="@dr
awable/buttonshape"android:backgroundTint="
@color/white"android:text="resister"android:te
xtColor="@color/black"android:textSize="15sp
"android:textStyle="bold" />
<Buttonandroid:id="@+id/login1_butt
on"android:layout_width="match_par
ent"android:layout_height="40dp"and
roid:gravity="center"

Page
47
android:backgroundTint="#F5EA5D31"android:text="login"android:textColor="@color/black"a
ndroid:textSize="15sp"android:textStyle="bold" />

</LinearLayout>
</LinearLayout>

</androidx.appcompat.widget.LinearLayoutCompat>Sign.javapackage
com.example.helperapp2;importandroidx.annotation.NonNull;
importandroidx.appcompat.app.AppCompatActivity;
importandroid.content.Intent;i
mport
android.os.Bundle;importandr
oid.os.UserHandle;
import
android.renderscript.ScriptGroup;import
android.view.View;
importandroid.widget.Toast;

importcom.example.helperapp2.databinding.ActivitySignUpBindi
ng;importcom.google.android.gms.tasks.OnCompleteListener;imp
ortcom.google.android.gms.tasks.Task;
importcom.google.firebase.auth.AuthResult;i
mport
com.google.firebase.auth.FirebaseAuth;import
com.google.firebase.auth.FirebaseUser;
importcom.google.firebase.database.DatabaseReference;i
mportcom.google.firebase.database.FirebaseDatabase;

public class SignUp


extendsAppCompatActivity{ActivitySignUpBin
ding binding;
FirebaseAuth
mAuth;FirebaseDatabase
db;DatabaseReferencemDbr
ef;

String
email,password,professio,mobile,username;@Ovde
protected void onCreate(Bundle savedInstanceState)
{super.onCreate(savedInstanceState);
binding =
ActivitySignUpBinding.inflate(getLayoutInflater());setContent
View(binding.getRoot());getSupportActionBar().hide();

mAuth=FirebaseAuth.getInstance();
mDbref=FirebaseDatabase.getInstance().getReference("users");

binding.login1Button.setOnClickListener(new View.OnClickListener()
{@Override
publicvoidonClick(Viewview){
startActivity(newIntent(getApplicationContext(),login.class));}
});
binding.resister.setOnClickListener(newView.OnClickListener(){

Page48
@Override
publicvoidonClick(Viewview){
email =
binding.gmailL.getText().toString();profession=bind
ing.profession.getText().toString();password =
binding.password.getText().toString();username =
binding.username.getText().toString();mobile =
binding.mobile.getText().toString();signup();
}
});

//email,password,profession,mobile,username
//Stringprofession,Stringusername,Stringmobile,Stringemail,Stringpassword}private
void signup(){

mAuth.createUserWithEmailAndPassword(email,password)
.addOnCompleteListener(this,newOnCompleteListener<AuthResult>(){@
Override
publicvoidonComplete(@NonNullTask<AuthResult>task){if(tas
k.isSuccessful()) {
//Signinsuccess,updateUIwiththesigned-inuser'sinformation
HelperModel
helperModel=newHelperModel(FirebaseAuth.getInstance().getUid(),username,email,passwo
rd,profession,mobil e);
mDbref.child(FirebaseAuth.getInstance().getUid()).setValue(helperModel);
startActivity(new Intent(SignUp.this,HelperInterface.class));finish();} else{
// If sign in fails, display a message to the
user.Toast.makeText(SignUp.this, "user creation
failed",Toast.LENGTH_SHORT).show();
}
}
});

}
}

Limitations of Project
There are also certain limitations to the system. There is any option for the call or direct contact.
Firstly you have to sign up. Furthermore, server-side programming handles almost

all of the application's capabilities, including validation. It adds to the server's workload,
especially when the program receives a big number of users. Using client-side languages like
JavaScript or HTML 5 to validate data can help solve this problem. The order model has also
been developed.

Page49
The following is a list of restrictions that can be found in the Helper System:

● It is an online App. If you have internet connectivity then only you can use it.
● This is only for those who need work.
● This app has only chatting options for contacting anyone.

Future Scope

● In the future we are willing to fulfill the Database.

● As new ideas come into the brain, we are going to implement them and provide the
update soon to users.
● In future we are going to add more features as per the feedback received.
● We are going to upload our app on Google Play Store.

Reference

Lecture Videos

● Internshala video modules www.internshala.com

Websites:

● https://stackoverflow.com/
● https://developer.android.com
● https://www.qoura.com
● https:// www.w3schools.com
● https://Goalkicker.com

Page50
51

You might also like