You are on page 1of 23

ABSTRACT

The “skype clone videoTable of


calling androidContents
app “ is our final year project and is
successfully developed by us in the guidance of Mr. Ashim kr. Mahato (Assit. Proff
of Ramgarh engineering college, Department of Computer Science and engineering).
We inspired by Mr. Bhaskar Das Contents
S.L. (Head of the Department ofPage
Computer
No Sc. &
Engg.) , who always motivated us to do our best and we always follow their
guidelines . 1. Abstract 1

In this project, our theoritical knowledge like OOP concept, core java programming,
2. Introduction
API, Cloud based computing,
2
Designing the User interfaces using XML, Realtime
Database, AI based machine OTP authentication, various network calls and much
concepts are implemented.
3. Literature Survey 3-6
We all were working in the project with equal participation. In this Report we have
included all the
4. biblography, chapter-wise definations, result,
7 - 18 future-scope and
conclusion.
Proposed Work

The purpose of5.the project is to well


Result understanding about the19concepts
& Discussions - 21 of computer
science world and to gain the capability to implement those things to solve real world
problems.
6. Conclusion References 22 -
There is no any entrepreneurship purpose of developing the project.

The project is only focusing on the concept of theory as implemented in the practical.

We will see further the tools and technologies, those are used to developed this
awesome hand-on project. The sketch of communication, the Black box and white
box testing, some bugs and many more.

You open the app, send request to other and after accepting the request, you can talk
with cloud based video calling.

Instead of Queue data structure, we used Stack. So multiple calls are overlapped
some times.

Reference: Coding cafe.

1
1. ABSTRACT
In this project report, we are going to have an android app, that is named as Skype
Clone video calling android app. We have used cloud based firebase no-sql Realtime
database with AI based machine authentication, OpenTok API for video calling. This
API token and session id will be valid for only 1 month, after that we have to pay 10$
/month.

The theme of this project is not for entrepreneurship , it’s theme only to clear as much
as possible the concepts of computer science theory in terms of practical
implementation to solve some real world problems. Like we studied OOP concept
and java programming but how we can implement it in real application, we studied
about API but how we can use API in real application and so many so forth. We
studied DBMS but without sql we can also handle database that is realtime databases.
We studied computer network but how in real application any network call is done.
How we can implement network security like SHA-1 or MD-5 algorithm in our
application and so many so forth.

To design the user interface, we have used XML, and Android Studio IDE for
complete app development. In the backend code java programming language is used.
We are having more options for backend, like kotlin, Dart, javascript ES6 etc. But
java is little flexible and practisized language.

The naming word Skype Clone is come from the Skype video calling app. The
various tools and technoligies are used to develope this application. We will see them
further.

In place of Stack data structure we must be used Queue data structure to prevent the
overlapping multiple calls.

Now from Introduction of the report to the conclusion and References, we will be in
very great journy.

Reference: Coding Cafe

1
2. INTRODUCTION

We are glad to introduce our project, “Skype Clone video calling android app”.

This app is brainwave of skype. So it’s name is Skype Clone. It is simple and hands-
on mobile application that anyone can use it easily. You can video call to your friends
via this app without any extra charges, only good internet connection is required.
Your all credentials are safe due to the Google firebase realtime tree structured no-
SQL database. The video call stream is performed on the opentalk cloud via it’s
Application Programming Interface.

You just have to install the app then open it, and make sure your data or internet
connection must be on. Now first register yourself by giving your contact credential
and you will be logged in same as like you do in what’s app. Yes here the one time
password will be sent by the firebase to your mobile machine and will be auto
veryfied by AI based authentication if your SIM is in the same device.

Now set your profile and save. You will see that people those already registerd in this
app are shown. You can send them friend request just like facebook and wait for the
confirmation. If the person confirms your request then now you both are friends on
the Skype Clone Video Calling android app and you both now video call to each-
other.

You cannot take screen shots of this app like jio TV app for security purposes.
This app idea is come from the skype video calling app.

2
3. LITERATURE SURVEY
1. Study of Application-level Caching :

The android applications that we use every day on our smartphone requires the
internet connection to communicate with the web services hosted on the web servers,
this process contains some communication latency and it also cost for internet-based
services. To reduce this latency the developers can use the cache in their applications.
This paper deals with the study of how developers can deal with the handling of
caching logic in their applications, to improve performance and scalability of their
applications.

2. Mobile Web Service Provisioning and Performance Evaluation of Mobile


Host via depandencies:

Giving web administrations from smartphones is the current trend, this happened
because of smartphones are utilized practically every region, where today's client
utilizes versatile smartphones for mobile banking, messaging, emailing, looking area
and searching information. smartphones are progressed as far as processing power,
memory and with an embedded camera, different sensors and same time parallel
headway in the remote system and web advancements. Because of these progressions
empowers the versatile smartphones to fill in as a web provider rather than web
benefit consumer. Hosting web services on the portable host is not new but rather in
most recent one decade scientists chipping away at versatile web benefit
provisioning. This paper deals with the exploration work in the cellular domain to the
present era mobile platform advances and guidelines, for example, Android OS and
REST. This paper manages mobile host adaptability and exploratory outcome
examination for what number of simultaneous client’s access to the mobile host as
video call streaming.

3. Design of a Mobile App :

As the sale of mobile devices grow exponentially, the usage of mobile apps has also
grown exponentially over the past few years. This paper introduces the design of
smart mobile app for video chat. One of the main features of this app is that it makes
use of local Internet speed as much as it can. The Xtenssible Mark-up Language is
used to create it’s user interface.

3
4. Privacy-aware:

Giving private information is a very questionable and generally faced off topic. The
data about people as well as about organizations, data should to be kept private. With
a specific end goal to fulfill the necessities of both people and organizations, relating
security insurance mechanisms must be executed. For instance, frameworks which
help clients during their procedure in a location require client
related data, for example, the list, sensitivity or financial bank data and also
information from the retailer, similar to the item range and costs mobile number. This
paper presents an idea for decoupling both data sources from people and
organizations implemented in a registering situation, which among others permits
Mobile registration without the transmission of private information. The executed
model has been exhibited at a huge
reasonable for potential clients keeping in mind the end goal to get important
feedback.

5. Performance Analysis:

Smart android devices and API services are turning out to be extremely mainstream.
As smart android devices and remote advances keep on rapidly growing over a
limited ability to focus period, the web administration's innovation perceives smart
mobile computing as a range to which it ought to extend. Web service can
significantly build the usefulness of smart android devices to collaborate with its
surroundings. In this paper, the execution is examined for two of the most vital
methodologies utilized for building and actualizing Web services for an android
based smartphone (i.e. SOAP-based Web services and RESTful Web services). REST
services are recognized by unique Uniform Resource Identifier (URI) and got to and
controlled utilizing an arrangement of predefined techniques: GET, POST, PUT,
DELETE on the opposite side, SOAP is the XML-based protocol for the
decentralized, distributed environment, that utilizes the power of the Internet. The
trial comes about demonstrate that RESTful web services outperform SOAP web
services.

6. Implementation of Location based Services in Android using GPS:

Area based Services offer many points of interest to the mobile clients get a chance to
recover the data about their present area and process that information to get more
helpful data close to their area.

4
7. Understand Firebase Realtime Database Rules:

Firebase Realtime Database Security Rules determine who has read and write access
to your database, how your data is structured, and what indexes exist. These rules live
on the Firebase servers and are enforced automatically at all times. Every read and
write request will only be completed if your rules allow it. By default, your rules do
not allow anyone access to your database. This is to protect your database from abuse
until you have time to customize your rules or set up authentication.

8. Core java object oriented paradigm concept:

Yes, we took a look at java fully object oriented programming. Hence it is widely
used in the backend of android app development as well XML is used to create the
front end. We also having options for DART, KOTLIN etc programming languages
but there will be more stuff where-as java is already available to do all the backend
task in android. There are lots of tools and technologies which are used, we will see
them in further chapters.

We have researched more practical concepts of OOP in w3school as well as “let us


java” book that is writen by Y.S.kannetkar.

9. Third party dependancies (Libraries ):

In this report it must be included that we are using various third party dependancies to
make the work easier. We have researched various third party libraries in Google and
as well as youtube. The video stream depends upon opentok third party library which
is paid, since we have developed this app 3 months ago so its 1 month trial version is
expired now. To re-activate the token and session id of the API we have to pay 10$ /-
month.

10. Research about Integrated Developement Environment:

We have researched android studio IDE that is one of the best IDE to developing
android app. We also have the alternatives like IntelliIJ IDE etc. But Android Studio
is complete package to develope android app. In Google documentation, we have
researched about it.

5
11. Android framework:

Android is one of an Open source platforms. It is created by Google and owned by


Open Handset Alliance. It is designed with goal “accelerate innovation in mobile” As
such android has taken over a field of mobile innovation. It is definitely free and open
platform that differs hardware from software that runs on it. It results for much more
devices be running the same application. Also it gives possibility of friendlier
environment for developers and consumers. Android it is complete software package
for a mobile device. Since the beginning android team offers the developing kit (tool
and frameworks) for creating mobile applications quick and easy as possible. In some
cases you do not specially need an android phone but you are very welcome to have
one. It can work right out of the box, but of course users can customize it for their
particular needs. For manufactures it is ready and free solution for their devices.
Except specific drivers android community provides everything else to create their
devices.

The actual history of Android starts when Google has had purchased and Android inc.
in 2005. But the development did not start immediately. The actual progress on
android platform starts when 2007 Open Handsets Alliance has announced the
Android as Open Source platform and year later the Android SDK 1.0. In the same
2008 the G1 phone was produced by HTC and was retailed within the T-Mobile
carrier. In the next two years came out 4 versions of Android. In 2010 there were at
least 60 devices 7 running android and it becomes second after Blackberry the best
spread mobile platform

There are several methods which can support developing process of any project such
as:  Waterfall  Prototyping  Incremental development  Spiral development 
Rapid application development  Agile software development  Object oriented 
Top-down programming  Unified process (CMS 2008 )  System testing. But for
our needs, due to limited time of this project, only two are the most suitable: rapid
application developing and like part of it prototyping and also system testing.

6
4. PROPOSED WORK
Rapid application development method :

This method is directed by producing high quality system in most efficient time costs.
Also it allows to divide project into smaller parts and develop them separately. It’s
basic idea to produce high quality system quickly by use of interactive Prototyping. It
emphasizes on satisfaction the business requirements. It sets strict deadlines and if
project slips the schedule, the emphasis is set to reducing requirements and not on
changing deadlines. The prototypes are giving to the user for evaluation.

System testing in this thesis work will be represented by Specification-based testing.


Testing efforts to rich certain level of perfection by detecting all the faults which are
in implementation The best way to perform any testing is to select test case that
satisfy certain criteria. These criteria are depending on the nature of application and
the scope.

Cloud computing : Web services In the past years, due to the rapid development of
mobile frameworks, the need for storing and sharing information throughout different
devices has grown. All the process from installing to running most of applications is
maintained by using different web sources and services. Insofar as there was need for
such product, many companies have established cloud and other mobile services.
Companies like Amazon, Google and Parse would offer their web services for modest
payment or in some case for free. Cloud computing is based on the idea that large
information sources can provide data to any application which will call for it. The
clients of cloud can be smartphones, tablets, and mobile Internet devices. In the case
of cloud application design we do not need any more to use storage capabilities of
device. Only what is mater are network bandwidth and display capabilities. We will
present one kind of web services on example of the source Basically it is the same
hosting service, but there are major differences which are making this kind unique
and most convenient for developers use. Parse would offer their version of Parse
SDK. This is an empty project that has needed classes to process cloud objects and
push them to the web service. On that level of integration it will be very convenient
for programmer to use them. That will help to save time cost which would take
normal database integration. Of course Parse is one of the commercial services but it
has also free option which is limited by the number of requests, pushes per month and
also mobile traffic per second.

7
Development:

In this section we will design and implement layout with help of XML programming
language and Eclipse programming environment. Also we will add Java classes and
method to make program match requirements.

Reviewing the requirements:

As was stated in the product there are several needs for the application prototype.
During this thesis process we will create prototype which will host only part of the
stated requirements. For the prototype functionality are most important input, output
and connection to the firebase realtime service.

Structure of an Android project:

The structure of android project is mostly the same, but also may differ depending on
the project needs and IDE tool. We will describe basic structure while using the ADT.
When programmer uses ADT the project structure is generated automatically. Even
further, ADT is also generating the ready- made application “Hello word”. The GUI
version of ADT is the easiest way to create an Android project but the advance
programmer can be also using the set of tools which can be run in terminal session.
The terminal tool called “ant” can debug the Android project and create sample
structure even if developer uses any other programming tool like Android Studio or
IntelliIj IDE.

Project folder structure:

Basic Android project would have six directories such as: assets, bin, gen, libs, res,
src. Also there are some files in project root directory such as: AndroidManifest.xml,
11 licenses, project.properties and other files. (Android Developers, 2013) The most
important for the developers are “res” and “src” directories. “res” directory contains
all the current project resources such as: images, layouts, custom strings and other
values. Images are stored in different directories depending on their size that
application can automatically choose right image depending on the device
specifications. Layouts are store in the “layout” folder. Basically layout file example
would be an XML file which would specify elements and their position in current
view. Also it is possible to code custom strings and colors so the parser can display
them in application. It is recommended approach to store them in values directory
rather than hard code to the actual code or XML file. It would make easy further
development at translating the application to other languages. The other important
directory is “src”. This directory would usually consist of Java files which are adding
functionality to the application. Then developer would create classes as separated
8
Java files. If the class is created in GUI ADT environment the tool would generate
automatically the statement in “AndroidManifest” file. If other programming
environment is used, user must specify any new class activity by hard coding the
“AndroidManifest” file.

Android manifest file usually would be placed to the root directory of the project and
state required version of android, needed permissions and all activities which are run
within the application.

Designing of the layouts:

On the requirements base will be designed four different views. The idea of layout
was brought from one of the discussing forums and tested in our project.

First view -
This view will consist of country code for the user and phone number with a continue
button. The button will give user choice to proceed to the new view depending on his
choice. First option will be – to authentication successful. This option will be handled
by Firebase. The second option will be – if internet off or wrong phone number then
it will make a toast something went wrong.

9
List ideas view-

This view will list all the ideas. The single idea representation will consist of an
image and tree text views. Text views will display information about idea such as
name, short description and state of application.

Implementing the layouts:

As was stated before, android application uses XML layout for displaying its content.
XML document would consist of several tags with given properties. The parent tag
would state type of view which is the main for the document. Also it is allowed to use
several views inside of one main view. Like any other XML tag, this tag is given
several properties which will define its identification, style, onclick action, etc.
Identification is one of the important part of the tag. By defining the “id” programmer
can use it in the Java code. Styles can be hard coded in the statement or linked to
separate file which will specify style for this element. Action properties can call the
event action.

Designing and implementing:

The classes and functions Java programming language is used in android


development. All the activities are organized in classes and triggered by certain
events. Every android application has its starting activity. In the default project it
would be main activity class but since we are using SDK from Parse.com our starting
activity differs from the default one.

10
In the implementation part, we were coding with java and xml. In such places where
third party dependencies are needed, we have used them, like Picasso for image
processing and Firebase for realtime database and AI based machine authentication.
We have used the opentok API for video call where we have only one month free
subscription for the session id and the API token. Now if we want to extend the token
validity then we have to pay about 10$ /- month.

In further, there will be screen shots attachments of the development process, and at
last the real application screenshots will also be attached.

11
12
13
So till all the java code is over. Now lets go further. We do not see xml code, it is ui
part.

14
DATABASE MANAGEMENT SYSTEM

A database management system (DBMS) is system software for creating and


managing databases. The DBMS provides users and programmers with a
systematic way to create, retrieve, update and manage data.

A DBMS makes it possible for end users to create, read, update and delete
data in a database. The DBMS essentially serves as an interface between the
database and end users or application programs, ensuring that data is
consistently organized and remains easily accessible.

The DBMS manages three important things: the data, the database engine
that allows data to be accessed, locked and modified -- and the database
schema, which defines the database’s logical structure. These three
foundational elements help provide concurrency, security, data integrity and
uniform administration procedures. Typical database administration tasks
supported by the DBMS include change management, performance
monitoring/tuning and backup and recovery. Many database management
systems are also responsible for automated rollbacks, restarts and recovery
as well as the logging and auditing of activity.

15
Data Organization in Firebase Real-time Database

Structure of Database
Creating a well-structured database requires quite a bit of forethought. It means we
need to plan for how data is going to be saved and later retrieved to make that process
as easy as possible.
In Firebase Real-time database, data is stored as JSON objects. We can think of the
database as a cloud-hosted JSON tree. There are no tables and records, which means
it is a NoSQL database. Data stored can be represented as certain native types in the
database that correspond to available JSON types to help us write more maintainable
code. When we add data to the JSON tree, it becomes a node in the existing JSON
structure with an associated key. We can provide our own keys, such as user IDs or
names, or they can be provided to us using push() function.
Let's see an example to understand how the data looks like in Firebase Realtime
Database for JSON trees. Let's consider the example of storing data for a chat
application. This chat application allows users to store the basic profile and contact
list. The user profile would be located on a path such as Users/$uid. User is a node in
it and will have a sort of primary key associated with an ID. So, we can access each
one uniquely.{
"Users":{
"Student":{
"name":"Shubham Rastogi",
"contacts":{"Faculty":true}, 16
},
"Faculty":{?},
"Staff":{?}
}
}

Everything which is under Users would be a specific node to the Users, and we
would access them using a reference like Users.Students, Users.Mstudent, and
Users.Tsudent etc. This is the basic tree structure, and what it looks like and what we
notice is that it has a lot of nesting. In Cloud, Firestore does not have as much
nesting, and nesting can cause some performance issues.
So, in the above example, Student is a node under Users. Name and contacts are
nodes under Student and Faculty, and Staff is under Users.
"greatGrandmas": {

"$great_grandma_key": {
"name": "Jane Smith",
"birthDate": "1970-01-01"
}
}

"grandmas": {
"$great_grandma_key": {
"$grandma_key": {
"name": "Jane Smith",
"birthDate": "1970-01-01"
}
}
}

"moms": {
"$great_grandma_key": {
"$grandma_key": {
"$mom_key": {
"name": "Jane Smith",
"birthDate": "1970-01-01"
}
}
}
}

17
Generating and debugging the unsigned android package kit (.apk):

After the successfully coding and realtime testing in devce via android debuger and
installing the app-debug.apk file, we go for the black box testing.

We found that if more than one calls are coming to the same user at atime then the
app layout overlapped on one-another. This is due to the Stack data structure, instead
of Stack we should use Queue data structured. So in future scope we will give some
uncomplete feature topic.

Congratulations! Our Skype clone video calling app is successfully builded.

18
5. RESULT AND DISCUSSIONS:
We already have seen the backend coding and the successfully build app. Now the
time is to look all the layouts of this app and step wise be discussed.

This is the first interface for the new user or the logged out user in skype clone app.
Here user have to selectet their country code then enter the phone number, and press
continue, make sure your internet connection must be on. Else it will give you error.

One time password will be sent to your device, if your number and app is in same
device then it will auto detect the OTP.
19
If your number is in different divice then you have to enter your opt manually as
shown in the above right.

20
In Bottom Navigation bar menu, you can see the Home button, which is directing to
your contacts, means those people are in the list who accepted your friend request or
you accepted their friend request.

On the right hand, the search bar appears, where you can fined those people by
filtering their name who are registered in skype clone app. It is filtering the name by
the first letter to the next.

Left most is the setting profile, next is about us, and right most is the video streaming
live shots. Due to api token expiration, streaming is not showing.

In the whole work, android studio and firebase connection is established by the
graddle configuration.

The notification menu lets you know who sent you friend request and just another
button is the Log out button.

21
6. CONCLUSION & REFERENCES
Conclusion:

1. The report is extremely focusing only on the basic and mendatory concepts of
computer science world as well as latest technologies.

2. We learnt to build user interface with xml, we also learnt the real
implementationof Java programming J2ME (Mobile Edition).

3. Having pretty much concept of network calls as well as security algorithms


with API and various libraries..

4. The most banificial thing is that we our-selves developed the complete android
app as apk file and installed in our own devices.

5. We theoritecally studied about realtime database, but here we have used it and
is very very quick responser with Artificial intelligence based machine otp
authentication.

6. And last but not least, we are having pretty good knowledge about Android
development world. So in further we are ready to take challanges to build new
android app as real world problem solving approch.

References:

• Let us java by Y. S. Kannetker


• W3School.com
• Coding Cafe
• Let us c by Y. S. Kannetker
• Extreamly thanks to Google.com
• Wikkipedia
• stackoverflow
• Internshala
• Udemy

Thank-you

You might also like