All Projects → realdiganta → Hitup Messenger

realdiganta / Hitup Messenger

Licence: mit
Fully Functioning Messenger (Like Whatsapp) in Flutter

Programming Languages

dart
5743 projects

Projects that are alternatives of or similar to Hitup Messenger

Applozic Ios Sdk
iOS Real Time Chat & Messaging SDK
Stars: ✭ 104 (-30.67%)
Mutual labels:  mqtt, messenger, chat-application
messenger-demo
Laravel messenger demo app using rtippin/messenger. Private and group threads with real-time messaging, reactions, attachments, calling, chat bots, and more!
Stars: ✭ 109 (-27.33%)
Mutual labels:  messenger, chat-application
Channelize-iOS-Chat-SDK-Sample
Open-source JavaScript SDK to enable Real-time Messaging
Stars: ✭ 30 (-80%)
Mutual labels:  messenger, chat-application
Falconmessenger
🌟🌟🌟🌟🌟 Falcon Messenger is a Fast and Beautiful cloud-based messaging app. With iOS and IPadOS Support. Available on the App Store.
Stars: ✭ 310 (+106.67%)
Mutual labels:  messenger, chat-application
LAN-Messenger
Official open-source repository for LAN Messenger
Stars: ✭ 17 (-88.67%)
Mutual labels:  messenger, chat-application
Generation
⭐ A Private, Secure, End-to-End Encrypted Messaging app made in Flutter(With Firebase and SQLite) that helps you to connect with your connections without any Ads, promotion. No other third-party person, organization, or even Generation Team can't read your messages. 💝
Stars: ✭ 18 (-88%)
Mutual labels:  messenger, chat-application
Mercurius
Real-time Messenger for Laravel
Stars: ✭ 309 (+106%)
Mutual labels:  messenger, chat-application
Igdm
Desktop application for Instagram DMs
Stars: ✭ 1,880 (+1153.33%)
Mutual labels:  messenger, chat-application
Messenger
Open source, native iOS Messenger, with realtime chat conversations (full offline support).
Stars: ✭ 4,264 (+2742.67%)
Mutual labels:  messenger, chat-application
Chat
Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots
Stars: ✭ 8,238 (+5392%)
Mutual labels:  messenger, chat-application
Qiscus Sdk Android
Qiscus provide everything you need to power up your app with chats. And it's now made simple.
Stars: ✭ 175 (+16.67%)
Mutual labels:  mqtt, messenger
Ios
Tinodios: Tinode Messaging Client for iOS
Stars: ✭ 119 (-20.67%)
Mutual labels:  messenger, chat-application
Chatlayout
ChatLayout is an alternative solution to MessageKit. It uses custom UICollectionViewLayout to provide you full control over the presentation as well as all the tools available in UICollectionView. It supports dynamic cells and supplementary view sizes.
Stars: ✭ 184 (+22.67%)
Mutual labels:  messenger, chat-application
Whizzz-The-ChatApp
Whizzz is a real-time, one-to-one Android chat application made using Firebase, a beautiful user interface, and a push-notification feature.
Stars: ✭ 66 (-56%)
Mutual labels:  messenger, chat-application
Webapp
Tinode web chat using React
Stars: ✭ 156 (+4%)
Mutual labels:  messenger, chat-application
tmessage
CLI based messaging tool
Stars: ✭ 17 (-88.67%)
Mutual labels:  mqtt, chat-application
Mibew
Mibew Messenger - open-source live support application
Stars: ✭ 413 (+175.33%)
Mutual labels:  messenger, chat-application
Realtimechat
Open source, native iOS Messenger, with realtime chat conversations (full offline support).
Stars: ✭ 1,511 (+907.33%)
Mutual labels:  messenger, chat-application
Im service
golang im server
Stars: ✭ 1,694 (+1029.33%)
Mutual labels:  messenger, chat-application
Msgflo
Distributed Flow-Based Programming via message queues
Stars: ✭ 136 (-9.33%)
Mutual labels:  mqtt

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].