Mentors

  • Srujan Bharadwaj
  • Aryaman M

Members

  • Vaishali S
  • Hamna Muslihuddeen
  • Palgun
  • Mallika Rao

Introduction

This project is an android chat application. The app has features such as DMs, group chat and sending media. We used java for development and git for version control. Learning the technologies will help in the long term. We also got to experience the workflow of a project and also got to develop native android apps from scratch

Theory

This chat app was built using native Android Studio which implements Java for back end development and XML for the user interface/user graphics. This chat app lets users login using an OTP, create new chats or group chats with users of this application who are in their contacts and send text or media messages.

Technology Used

  • Android Studio
  • GitHub / Git
  • Firebase
  • Glide Image Viewer

Authentication

We used the in built authenticate via phone number feature provided in firebase. It checks for re-captcha also at the time of authentication.

img


Getting User List

The app compares the list of users of the app taken from firebase to the current user’s contact list on their phone and displays only the list of people who are present in both the lists. The contacts are then stored in the database under an unique User-Id through which they can be accessed.

img


Starting New Chat

The user can start a new personal chat or a group chat with his contacts. All the chats are stored in a Firebase database under an unique chat-id. The chat-id will be linked to both the user-ids.

img


Sending Messages

All the messages of a certain chat are stored under the unique chat-id. The list of all the old messages to be displayed are obtained from the database.

img


Sending Media

The user can send single or multiple media items from their phone gallery. This app uses Glide Image Viewer to display the media elements. The media elements are also given their own id and stored under the particular chat-id.

Future Plans

  • Add voice and video calls
  • Add notifications
  • Add last seen or last read features
  • Add pre scheduled messages