Fully Functioning Messenger (Like Whatsapp) in Flutter

Overview

Logo

HitUp Messenger

A Fully Functioning Chat Messenger (like Whatsapp) built using Flutter.



Screenshot Screenshot Screenshot

About the project

  • Flutter for building the Android & IOS App.
  • Firestore database for storing user data.
  • Firebase Storage for storing images.
  • MQTT as messaging protocol hosted in AWS EC2.
  • SQLite for storing contacts & chats in Local Database.
  • OneSignal for Push Notifications.

Features

Super Fast Messaging using MQTT Protocol (MQTT is used by Facebook Messenger)

Architecture:

When you send a message from the app, the message first goes to the MQTT server. Then the MQTT server sends the message directly to the device of the client who is supposed to receive it. When received, the client stores the message in the local sqlite database first then shows it to the chat screen. (Firestore is in no way used to store or send text messages. Firestore is used only to store user & contacts data). To learn more about MQTT please refer here.


Phone Number Authentication Sign-in

Authentication is done using Firebase.

Screenshot Screenshot

Sending Images

Send & Receive Images (Snapchat style UI). The images are not stored in Gallery. Instead they are stored in the local sqlite database in bytes format.

Screenshot

Super Fast Loading of Messages (Using SQLite as Local DB to store messages)

Even when the client is offline, he/she can view the messages on opening the chat screen, because the messages are loaded directly from the local sqlite db. And that is the only place where the messages are stored. The MQTT server doesn't store old messages. The MQTT Server only stores the last message sent and then replaces it when a new message is sent.

Sending texts to Phone Contacts

On the Contacts Screen, you will get a list of all your phone contacts who are also using the messenger and can chat with them. (Just like sending messages to your contacts in Whatsapp)

Screenshot


Adding contacts using username. Sending & Receiving Friend Requests

You can also send friend request to someone using their username. On sending friend request, the other user will get a push notification & and a friend request. If he/she accepts the request then you will get an notification & will be able to chat with the user. (Same as the feature in Snapchat)

Screenshot

Block Contact

Screenshot

Realtime Push Notifications

Using OneSignal. User will get realtime push notifications (even when the app is closed) when

  • He/She receives a new message
  • He/She receives a friend request
  • Someone accepts their friend request

Notification



Change Profile Photo

Image Compression Before Sending

Emoji Support

Neumorphic UI

Invite Friends Feature


Other Important Information

Installation & Setup (Optional)

  1. Firebase

To change the firestore database, just replace the google-services.json in android/app to your own google-services.json file from your firebase account.

  1. MQTT Server

To transfer messages I am using an MQTT server which I have setup in a EC2 instance on AWS. For details on how to setup your own MQTT server please refer here : Setup MQTT Server on AWS EC2. Then change the serverAddress parameter in lib/functions/MQTTFunction.dart file, (connect() function) to the public address of your EC2 instance.


  1. OneSignal

First create an account in OneSignal. Then replace the app_id parameter in lib/functions/UserDataFunction.dart sendNotification() function with your own OneSignal app_id.

Motivation & Contribution

I want to build this messenger into the biggest open source messenger on the web with all functionalities from the top Messengers like Whatsapp, Telegram, Signal, Snapchat, etc. There a lot of features still to be added like end-to-end encryption, audio messages, audio/video calling, stories, etc. So, we are open to pull requests. Please contribute in any way you can, adding new features, finding or fixing bugs, adding to the documenation, better code commenting, etc.

Contributing

If you want to contribute to this project other than by coding, please contact me here [email protected]

License

MIT License

Supporters

Stargazers repo roster for @realdiganta/hitup-messenger Forkers repo roster for @realdiganta/hitup-messenger

You might also like...

Whats-link - App to open conversation without having to save the number in WhatsApp

Whats-link - App to open conversation without having to save the number in WhatsApp

Whats Link App feito para abrir conversa do WhtasApp sem salvar o nΓΊmero do dest

Feb 14, 2022

A fully functional Instagram clone written in Flutter using Firebase / Firestore

A fully functional Instagram clone written in Flutter using Firebase / Firestore

Fluttergram A working Instagram clone written in Flutter using Firebase / Firestore Demo Download the release APK to try out Fluttergram I update Flut

Jan 8, 2023

Fully functional Twitter clone built in flutter framework using Firebase realtime database and storage

Fully functional Twitter clone built in  flutter framework using Firebase realtime database and storage

Fwitter - Twitter clone in flutter A working Twitter clone written in Flutter using Firebase auth,realtime,firestore database and storage. Download Ap

Jan 8, 2023

This is a fully fledged Sudoku game written in Dart using Flutter.

This is a fully fledged Sudoku game written in Dart using Flutter.

This is a fully fledged Sudoku game written in Dart using Flutter.

Dec 29, 2022

A fully open source visual to-do list Flutter application.

A fully open source visual to-do list Flutter application.

A fully open source visual to-do list Flutter application.

Oct 24, 2021

A fully-functional e commerce app made in Flutter using Firebase.

A fully-functional e commerce app made in Flutter using Firebase.

Smart Shop πŸ›οΈ A fully-functional e commerce app made in Flutter using Firebase. How To Run This Project πŸƒβ€β™‚οΈ Clone the repository. Create project on

Sep 30, 2022

:star: Flutter-Firebase fully backend messaging app

:star: Flutter-Firebase fully backend messaging app

Orgonet ChatApp ⭐ Flutter-Firebase fully backend messaging app I made a backend full messaging app using firebase **download the file named orgone tv2

Nov 18, 2022

Fully customizable neumorphic containers for your flutter projects.

Fully customizable neumorphic containers for your flutter projects.

neumorphic_container Fully customisable Neumorphic Containers for your flutter projects. Getting Started In the pubspec.yaml of your flutter project,

Jul 13, 2022

A fully functional chat application built with Flutter and Stream

A fully functional chat application built with Flutter and Stream

🏐 SpikeChat A fully functional chat application built with Flutter and Stream! βœ… Join the chat room (If you have the secret passcode hehe) βœ… Send tex

Apr 30, 2022
Owner
Diganta Kalita
Diganta Kalita
Recyclomedia is a digital platform that aims to save the planet from pollution which is the major threat to the functioning of earth.

Recyclomedia Recyclopedia is a vintage inspired digital platform that aims to save the planet from the pollution which is the major threat to the func

Iconicto 38 Oct 8, 2022
ChatMe is a messenger app build with Flutter and the power of Firebase

flutter_chatme A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started i

Aditya Rohman 11 Oct 24, 2022
Famous FB Messenger Floating Chat head UI developed in Flutter.

Messenger Chat Head Tried to clone the famous Chat Heads by Facebook Messenger using Flutter. ?? Issues are reported in the bottom of README, feel fre

Muhammad Hamza 61 Dec 27, 2022
GChat is a chatting application developed using Flutter(Dart) and firebase for 2 users. Trying to Develop an application that does not sell your data with whatsapp rolling out its privacy policy updates.

Gchat - The Chatting Application A Flutter project for chatting. I used Android Studio and you can you any editor of your choice for ex: VS Code, Inte

Sanchaksh Kaul 6 Nov 6, 2022
WhatsApp UI Clone

WhatsAppUIClone It is a copy of the WhatsApp design. What's inside Chat list Chat detail screen Statuses page Story view search page Images related to

Umut Ocak 20 Jun 27, 2022
This is a clone of the WhatsApp UI...

whatsapp_ui_clone A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you starte

MUGI 1 Oct 25, 2021
Enhancing your WhatsApp experience.

WhishApp Enhancing your WhatsApp experience. Chat with unknown Number Status Saver Represent a name using emoji's (Coming soon) Sticker chat (Coming s

Prateek SU 5 Oct 16, 2022
Send WhatsApp Messages without saving contact

WHATSAPP DIRECT Send WhatsApp Messages without saving contact Installation PlayStore Link: https://play.google.com/store/apps/details?id=com.snapsid.w

Siddharth Chopra 1 Oct 2, 2022
Quickly generate a personalized WhatsApp link with a predefined message and share it with your audience on your Social Networks!

Quickly generate a personalized WhatsApp link with a predefined message and share it with your audience on your Social Networks!

Sanskar Tiwari 11 Aug 28, 2021
This app is used to download whatsapp status photo and videos

This app is used to download whatsapp status photo and videos. you can upload this app in playstore as well. there are lot's of application available like WhatsApp Story Saver, Story Downloader for whatsapp.

Akram Chauhan 51 Nov 28, 2022