Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/prathameshpatil-01/chat_app-flutter
This Flutter app leverages Firebase for authentication, storage, and real-time database. It provides a seamless chat experience with support for multimedia messages, group chats, and video calls. The app also features dark and light themes, enhancing user customization.
https://github.com/prathameshpatil-01/chat_app-flutter
chat chat-application chatapp chatting clone-app firebase flutter riverpod whatsapp whatsapp-chat whatsapp-clone-app whatsapp-clone-flutter
Last synced: about 1 month ago
JSON representation
This Flutter app leverages Firebase for authentication, storage, and real-time database. It provides a seamless chat experience with support for multimedia messages, group chats, and video calls. The app also features dark and light themes, enhancing user customization.
- Host: GitHub
- URL: https://github.com/prathameshpatil-01/chat_app-flutter
- Owner: PrathameshPatil-01
- Created: 2023-10-24T13:46:47.000Z (about 1 year ago)
- Default Branch: createScreens
- Last Pushed: 2023-11-29T15:14:24.000Z (12 months ago)
- Last Synced: 2024-10-14T05:41:37.314Z (about 1 month ago)
- Topics: chat, chat-application, chatapp, chatting, clone-app, firebase, flutter, riverpod, whatsapp, whatsapp-chat, whatsapp-clone-app, whatsapp-clone-flutter
- Language: Dart
- Homepage:
- Size: 84 MB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Flutter Chat App
A feature-rich chat application built using **Flutter** with **Firebase** integration and utilizes **Riverpod** for state management. This app allows users to authenticate with their mobile number, enabling them to chat with their contacts, share emojis, GIFs, images, videos, and audio recordings. It also supports group chat functionality, along with both person-to-person and group video calling. Users can set profile pictures, view online/offline status, and see real-time message timestamps. Additionally, users can add statuses, similar to WhatsApp.
---
## Demo
---
## Table of Contents
- [Flutter Chat App](#flutter-chat-app)
- [Demo](#demo)
- [Table of Contents](#table-of-contents)
- [Features](#features)
- [Screenshots](#screenshots)
- [Repository Structure](#repository-structure)
- [Planned Enhancements](#planned-enhancements)
- [Tech Stack](#tech-stack)
- [Installation](#installation)
- [Contributions](#contributions)---
## Features
- **Firebase Authentication:** Secure and efficient mobile number authentication to onboard users.
- **Firebase Storage:** Store and retrieve images, videos, and audio files.
- **Firestore Database:** Real-time chat functionality and user data storage.
- **Contact Import:** Connect with your mobile contacts who are also using the app.
- **Emojis & GIFs:** Express yourself with a wide range of emojis and share GIFs in your chats.
- **Image & Video Sharing:** Share images and videos with ease.
- **Audio Recordings:** Record and send audio messages in chats.
- **Group Chat:** Create and join group chats with multiple participants.
- **Video Calling:** Engage in person-to-person or group video calls.
- **Profile Pictures:** Set your profile picture for others to see.
- **Online/Offline Status:** Know when your contacts are online or offline.
- **Real-Time Message Status:** See when messages are sent or received in real-time.
- **Status Updates:** Share your current status, just like WhatsApp.
- **Dark & Light Themes:** Choose between dark and light themes for a personalized experience.
- **Search Functionality:** Easily find and start conversations with your contacts.---
## Screenshots
| ![Screen](screenshots/l1.png) | ![Screen](screenshots/l2.png) | ![Screen](screenshots/l3.png) |
| :---------------------------: | :---------------------------: | :---------------------------: |
| **Login Screen** | **OTP Screen** | **Create Profile** |
| ![Screen](screenshots/d1.png) | ![Screen](screenshots/d2.png) | ![Screen](screenshots/d3.png) |
---| ![Screen](screenshots/l4.png) | ![Screen](screenshots/l5.png) | ![Screen](screenshots/l6.png) |
| :---------------------------: | :---------------------------: | :---------------------------: |
| **Home Screen** | **Search Screen** | **Pop Menus** |
| ![Screen](screenshots/d4.png) | ![Screen](screenshots/d5.png) | ![Screen](screenshots/d6.png) |
---| ![Screen](screenshots/l7.png) | ![Screen](screenshots/l8.png) | ![Screen](screenshots/l9.png) |
| :---------------------------: | :---------------------------: | :---------------------------: |
| **Select Contacts** | **Create Group** | **Settings Screen** |
| ![Screen](screenshots/d7.png) | ![Screen](screenshots/d8.png) | ![Screen](screenshots/d9.png) |
---| ![Screen](screenshots/l10.png) | ![Screen](screenshots/l11.png) | ![Screen](screenshots/l12.png) |
| :----------------------------: | :----------------------------: | :----------------------------: |
| **Status Screen** | **Add Status** | **Status Updated** |
| ![Screen](screenshots/d10.png) | ![Screen](screenshots/d11.png) | ![Screen](screenshots/d12.png) |
---| ![Screen](screenshots/l13.png) | ![Screen](screenshots/l14.png) | ![Screen](screenshots/l15.png) |
| :----------------------------: | :----------------------------: | :----------------------------: |
| **Chat Screen** | **Creating Group** | **Group Created** |
| ![Screen](screenshots/d13.png) | ![Screen](screenshots/d14.png) | ![Screen](screenshots/d15.png) |
---| ![Screen](screenshots/vc1.png) | ![Screen](screenshots/vc2.png) | ![Screen](screenshots/vc3.png) |
| :----------------------------: | :----------------------------: | :----------------------------: |
| **Video Call Screen** | **Video Call Screen** | **Video Call Screen** |---
## Repository Structure
- **common**
- _enums_
- _providers_
- _repositories_
- _utils_
- _widgets_
- **config**
- **features**
- _auth_
- _controller_
- _repository_
- _screens_
- _call_
- _controller_
- _repository_
- _screens_
- _chat_
- _controller_
- _repositories_
- _screens_
- _widgets_
- _group_
- _controller_
- _repository_
- _screens_
- _widgets_
- _landing_
- _screens_
- _search_
- _screen_
- _select_contacts_
- _controller_
- _repository_
- _screens_
- _settings_
- _screen_
- _status_
- _controller_
- _repository_
- _screens_
- **models**---
## Planned Enhancements
This app serves as a foundation for further development, with future updates expected to introduce additional features, optimizations, and UI/UX improvements. Planned enhancements include:
- **Message Reactions**: Users will have the ability to react to messages with emojis.
- **Voice Messages**: Implementation of voice messaging capabilities for added versatility in communication.
- **Notification Integration**: Push notifications will be integrated to alert users of new messages or call requests.
- **Message Editing/Deleting**: Users will have the ability to edit or delete messages within a specified timeframe.
- **User Authentication Enhancements**: Implementation of additional authentication methods for enhanced security.
- **Multi-Language Support**: Localization features will be added to accommodate users from different linguistic backgrounds.
---
## Tech Stack
The app leverages a variety of technologies to provide a rich and interactive user experience:
- **Flutter**: The cross-platform framework for building mobile applications.
- **Firebase**: Firebase Authentication, Firebase Storage, and Firestore for user management, storage, and real-time database functionality.
- **Agora Video Calling**: Integrated for high-quality video calls, supporting both one-on-one and group video calling.
- **Riverpod**: A state management library for Flutter, ensuring a well-structured and efficient app architecture.
---
## Installation
1. **Clone the Repository**:
```
git clone https://github.com/PrathameshPatil-01/CHAT_APP-FLUTTER.git
```2. **Install Dependencies**:
```
flutter pub get
```3. **Configure Firebase**:
- Create a new project on the [Firebase Console](https://console.firebase.google.com/).
- Follow the instructions to set up Firebase in your Flutter project by adding the necessary configuration files.
- Run the commands:
- npm install -g firebase-tools
- dart pub global activate flutterfire_cli
- flutterfire configure
- Enable Authentication
- Add Firestore & Storage Rules
- Create Android & iOS Apps4. **Run the App**:
```bash
flutter pub get
open -a simulator (to get iOS Simulator)
flutter run
```---
## Contributions
Contributions are welcome! If you'd like to enhance the app or add new features, feel free to submit a pull request.