You are on page 1of 12


Minor Project

Synopsis on:
Friendly Chat Application

Prof. Sanjay Bohara Priya Jain

Rajiv Gandhi Proudyogiki Vishwavidyalaya
Student Introduction

 Name Priya Jain

 Roll No. 0705CA163D12

 Email address

 Branch MCA

 Session 2016-17

 Proposed Project Topic Friendly Chat Application

 College/Department Shree Sai Institute of technology
Ratlam(M.P)/Computer Science

Project on:-
Friendly Chat Application

Messaging apps now have more global users than traditional social networks—
which means they will play an increasingly important role in the distribution of
digital journalism in the future. Drawing upon our interviews and case studies,
we identify a number of opportunities and challenges for organizations using—
or hoping to use—messaging apps for news.
Friendly Chat App is used basically for chatting purpose with the remote clients
or users on Internet. Online Chat Application project in Android, relatives allow
its users to chat with their friend circles and send invitation to their other
friends. This Application can also allow its users to select chat display name,
profile as per their choice and chat with other persons. To start chatting, users
will have to first register with this new app and
Friendly Chat App is an app that allows users to send and receive text and
photos in real time across platforms.
In short Friendly Chat App is the Clone of WhatsApp.

Needs or (Why Choose WhatsApp):
In Instant messaging apps have changed the way we communicate using our
smartphones. It’s only natural that people try to replicate their success. But why
do so many messengers fail and end up in oblivion?

How messengers like WhatsApp achieve its glory?
WhatsApp is the most well-known instant messenger out there. From the very
beginning WhatsApp’s creators envisioned their app as a completely ad-free
environment. Moreover, they managed to make the messenger extremely
popular without spending much on its promotion.

If you expect to replicate the success of WhatsApp nowadays, you need to take
into account initial conditions and any differentiating factors. So let’s outline the
key factors that caused the insane popularity of this messenger.

 Being the first of its kind :- The majority of messengers and VoIP
services like Skype were desktop-oriented. WhatsApp was the pioneer that
chose the mobile-first approach.
 Affordable alternative to SMS services :- Unlike Skype which is mainly
aimed at eliminating the cost of international voice calls, WhatsApp
targeted SMS. WhatsApp became extremely popular by charging only
$0,99 a year before becoming completely free in 2016.

 Word of mouth :- The creators spent next to nothing on promotion,
relying instead on word of mouth. According to On Device Research over
50% of the messenger users install a particular app to be closer to their
friends who already use the app. A little more than one third of them
download a new app because of its exclusive features. This was one of the
reasons for WhatsApp’s success and one of the main barriers that prevent
new messengers from taking off.

 Putting users first :-The messenger’s creators were adamant opponents of
in-app advertisements. Instead of using an additional monetization avenue
they opted for better user experience. Users responded with their love for
the app that had no such annoying feature.
 Consistent app improvements :-WhatsApp started as a very simple
texting app. Ever since inception it has been adding features like the
ability to make audio and video calls; send pictures, multimedia, and PDF

It may be not the most feature-rich app out there but WhatsApp is in a constant
state of self-improvement.

WhatsApp’s success was a combination of unique historical conditions, luck, and
hard work. In our times the world is just too different, so launching an exact
clone of WhatsApp would be a recipe for failure. So let’s move on and find out
the do’s and don’ts for building a modern messenger.

What features are must-haves for a modern messenger?
In addition to the obvious functionality (texting), people find it important to call
through the messenger app, send photos and be confident that it is secure. I
believe the statistics give you a good reason to take care of these in your MVP.

 UX/UI design first: The look and feel of your app is the very first thing
that influences user satisfaction. 94% of people base their first
impressions on the aesthetics. 75% of users judge the apps
trustworthiness based on its design. This is why you’ll only have one
chance at making your app memorable and pleasant to use.

 Robust backend: To store pictures and other multimedia, the messenger
uses Firebase server . The server is created for high-load systems and web
applications with dynamic content. It is well-known for its capability to
seamlessly handle a large number of concurrent processes.

 Push notifications: These handy messages can be used in a lot of ways.
In most cases push notifications serve as a direct communications link
between the messenger providers and its users.
 Encryption: In the western world the app’s security has become the top
feature that influences the choice of a messenger.

Key Points:

 Sync data using the Firebase Realtime Database.
 Manage Identity and Sign In with Firebase Authentication

 Store and access files using Firebase Storage.

 OTP verification.

 Notification with the help of FCM.

 Configure an application with Firebase Remote Config.

 Allow users to send invitations to install with Firebase Invites.

 Track application usage flows with Firebase Analytics.

 Display ads with AdMob.

 Module:

1. Admin

2. User

What you need:-
Android is a Linux based operating system it is designed primarily for touch
screen mobile devices such as smart phones and tablet computers. The operating
system have developed a lot in last 15 years starting from black and white
phones to recent smart phones or mini computers. One of the most widely used
mobile OS these days is android. The android is software that was founded in
Palo Alto of California in 2003.
One of the most widely used mobile OS these days is ANDROID. Android is a
software bunch comprising not only operating system but also middleware and
key applications. Android Inc was founded in Palo Alto of California, U.S. by
Andy Rubin, Rich miner, Nick sears and Chris White in 2003. Later Android
Inc. was acquired by Google in 2005. After original release there have been
number of updates in the original version of Android.

Java 8:-
Android applications are developed using the Java language. As of now, that’s
really your one of the option for native applications. Java is a very popular
programming language developed by Sun Microsystems (now owned by
Oracle). Developed long after C and C++, Java incorporates many of the
powerful features of those powerful languages while addressing some of their
drawbacks. Still, programming languages are only as powerful as their libraries.
These libraries exist to help developers build applications.
Android relies heavily on these Java fundamentals. The Android SDK includes
many standard Java libraries (data structure libraries, math libraries, graphics
libraries, networking libraries and everything else you could want) as well as
special Android libraries that will help you develop awesome Android

XML :-
XML stands for extensible Markup Language.XML was designed to store and
transport data.XML was designed to be both human- and machine-readable.
The advantage to declaring your UI in XML is that it enables you to better
separate the presentation of your application from the code that controls its
behavior. Your UI descriptions are external to your application code, which
means that you can modify or adapt it without having to modify your source
code and recompile. For example, you can create XML layouts for different
screen orientations, different device screen sizes, and different languages.
Additionally, declaring the layout in XML makes it easier to visualize the
structure of your UI, so it's easier to debug problems. As such, this document
focuses on teaching you how to declare your layout in XML. If you're interested
in instantiating View objects at runtime, refer to the ViewGroup and View class
In general, the XML vocabulary for declaring UI elements closely follows the
structure and naming of the classes

Firebase Realtime Database:-
Store and sync data with our NoSQL cloud database. Data is synced across all
clients in realtime, and remains available when your app goes offline.
The Firebase Realtime Database is a cloud-hosted database. Data is stored as
JSON and synchronized in realtime to every connected client. When you build
cross-platform apps with our iOS, Android, and JavaScript SDKs, all of your
clients share one Realtime Database instance and automatically receive updates
with the newest data.
Key capabilities:
 Realtime
 Offline
 Accessible from Client Devices

The Firebase Realtime Database lets you build rich, collaborative applications
by allowing secure access to the database directly from client-side code. Data is
persisted locally, and even while offline, realtime events continue to fire, giving
the end user a responsive experience. When the device regains connection, the
Realtime Database synchronizes the local data changes with the remote updates
that occurred while the client was offline, merging any conflicts automatically.
The Realtime Database provides a flexible, expression-based rules language,
called Firebase Realtime Database Security Rules, to define how your data
should be structured and when data can be read from or written to. When
integrated with Firebase Authentication, developers can define who has access
to what data, and how they can access it.
The Realtime Database is a NoSQL database and as such has different
optimizations and functionality compared to a relational database. The Realtime
Database API is designed to only allow operations that can be executed quickly.
This enables you to build a great realtime experience that can serve millions of
users without compromising on responsiveness.

Android Studio:-
To program in most languages, you need a piece of software called an IDE or
‘Integrated Development Environment’. The most common IDE for Android
development is Android Studio, which comes direct from Google itself.

An IDE is what gives you the main UI where you’ll enter your code (you can’t
just start typing into notepad). It also highlights things you get wrong, offers
suggestions and lets you run and test your creations conveniently. It creates the
files you need, it provides basic layouts and generally it saves you a lot of time
and effort.
What’s great about Android Studio is that it is designed specifically for Android
development (unlike the second most popular option, Eclipse). This means that
when you download the software, you’ll also get a lot of the other bits you need
including the Android SDK (a selection of tools including the Android platform
itself) and the Android Virtual Device, which is an emulator you can test your
apps on. When you go through the installation, make sure you leave the boxes
ticked to confirm that you want these additional components. You could
manually add them later, but this will just complicate matters.
As mentioned, there are some alternatives to Android Studio. Eclipse is an older
IDE that can be used for developing other things too (such as iOS apps) and that
is a bit more flexible overall. It’s also a much more fiddly to get started with
though and not nearly as beginner-friendly. Another personal favorite of mine is
Basic4Android. Basic4Android is an IDE that lets you code Android apps with
the BASIC programming language. It makes things easier in a number of other
ways too and is focused on ‘rapid development’.

Android Emulator:
The emulator available in the Android SDK is not just a tool that allows you to
easily test applications without having to install it to a real device, or even
having one. With the proper configuration it is possible to test situations which
are hardly reproduced on a physical one.

System Requirements for Developer Machine:-

 Windows
 Microsoft® Windows® 7/8/10 (32- or 64-bit)
 3 GB RAM minimum, 8 GB RAM recommended; plus 1 GB for the
Android Emulator
 2 GB of available disk space minimum,
 4 GB Recommended (500 MB for IDE + 1.5 GB for Android SDK and
emulator system image)
 1280 x 800 minimum screen resolution
 For accelerated emulator: Intel® processor with support for Intel® VT-x,
Intel® EM64T (Intel® 64), and Execute Disable (XD) Bit functionality

 Mac
 Mac® OS X® 10.10 (Yosemite) or higher, up to 10.12 (macOS Sierra)
 3 GB RAM minimum, 8 GB RAM recommended; plus 1 GB for the
Android Emulator
 2 GB of available disk space minimum,
 4 GB Recommended (500 MB for IDE + 1.5 GB for Android SDK and
emulator system image)
 1280 x 800 minimum screen resolution

 Linux
 GNOME or KDE desktop
 Tested on Ubuntu® 14.04 LTS, Trusty Tahr (64-bit distribution capable of
running 32-bit applications)
 64-bit distribution capable of running 32-bit applications
 GNU C Library (glibc) 2.19 or later
 3 GB RAM minimum, 8 GB RAM recommended; plus 1 GB for the
Android Emulator
 2 GB of available disk space minimum,
 4 GB Recommended (500 MB for IDE + 1.5 GB for Android SDK and
emulator system image)
 1280 x 800 minimum screen resolution
 For accelerated emulator: Intel® processor with support for Intel® VT-x,
Intel® EM64T (Intel® 64).

System Requirements for Client Machine:

 Run on a real device:
Require Android 4.4 or above vesions
Connect your device to your development machine with a USB cable.
Then, Enable USB debugging on your device by going to Settings >
Developer options.
 Run on an emulator:
Once the emulator is booted up, click the app module in the Project
window and then select Run > Run (or click Run in the toolbar).In the
Select Deployment Target window, select the emulator and click OK.