/FriendlyChat

An End-to-End Encryption based Online Chatting Android App

Primary LanguageJava

FriendlyChat

An End-to-End Encryption based Online Chatting Android App

Overview

Friendly Chat is an End-to-End Encryption based online chat app (just like Whatsapp). It uses the RSA cryptography algorithm to encode the text messages and the image URLs of the user before they are sent to the Firebase Firestore database. The sender uses the public key of the receiver, which is available on the Firebase database, to encrypt the messages. The targeted receiver can then use his/her private key to decrypt the messages locally on his/her device. Thus, the administrator (in this case, the Firebase administrator for Friendly Chat) has no knowledge of what messages are exchanged between its users. Thus, Friendly Chat users have full privacy in terms of communicating with their Friends.

Google Authentication

The user can sign in to the Friendly Chat App using their Google account. Friendly Chat uses the google account as the primary key to refer to any friend that an user might want to chat with.

Friends List

The FriendListActivity displays the list of all the friends that the user has added. More friends can be added by clicking on the Add friend floating action button. This opens up the AddFriendActivity where the user can enter the gmail address of the friend and the name field is optional. The new friend will be added only if the friend is currently using the Friendly Chat app.

Message Room

This is a screenshot of the message room in the devices of Rishita Burman and Apple pie. The name of the person with whom the user is chatting will be shown on the Action bar of the corresponding message room.

Messages created by the user appears the right aligned and in pink chat bubble and those received from the friend will appear left aligned and in turquoise bubble. Further, the timestamp is attached below every message.

Sending Images

Friends can share images with each other by selecting them from File Explorer. On clicking the image icon at the left corner of the message type bar, the Image Picker opens up. The user, then, can choose any valid image file to send to his/her friend.